Megosztás a következőn keresztül:


Rövid útmutató: AKS-fürt üzembe helyezése bizalmas számítási Intel SGX-ügynökcsomópontokkal az Azure CLI használatával

Ebben a rövid útmutatóban az Azure CLI használatával fog üzembe helyezni egy Azure Kubernetes Service-fürtöt (AKS) enklávéérzékeny (DCsv2/DCSv3) virtuálisgép-csomópontokkal. Ezután egy egyszerű „Helló világ!” alkalmazás alkalmazást fog futtatni egy enklávéban. Fürtöt is kiépítheti, és bizalmas számítási csomópontokat vehet fel az Azure Portalról, de ez a rövid útmutató az Azure CLI-re összpontosít.

Az AKS egy felügyelt Kubernetes-szolgáltatás, amely lehetővé teszi a fejlesztők vagy fürt operátorok számára a fürtök gyors üzembe helyezését és kezelését. További információkért olvassa el az AKS-bevezetést és a bizalmas AKS-csomópontok áttekintését.

A bizalmas számítási csomópontok funkciói a következők:

  • Linux-tárolókat támogató Linux-feldolgozó csomópontok.
  • 2. generációs virtuális gép (VM) Ubuntu 18.04 virtuálisgép-csomópontokkal.
  • Intel SGX-kompatibilis PROCESSZOR, amely segít a tárolók titkosítással védett enklávéban való futtatásában a titkosított lapgyorsítótár (EPC) memóriájával. További információkért lásd az Azure bizalmas azure-számítástechnikára vonatkozó gyakori kérdéseket.
  • Az Intel SGX DCAP illesztőprogram előre telepítve van a bizalmas számítási csomópontokon. További információkért lásd az Azure bizalmas azure-számítástechnikára vonatkozó gyakori kérdéseket.

Feljegyzés

A DCsv2/DCsv3 virtuális gépek speciális hardvert használnak, amely a régió rendelkezésre állását biztosítja. További információkért tekintse meg az elérhető termékváltozatokat és a támogatott régiókat.

Előfeltételek

Ehhez a rövid útmutatóhoz a következőkre van szükség:

  • Legalább nyolc DCsv2/DCSv3/DCdsv3 mag érhető el az előfizetésben.

    Alapértelmezés szerint nincs előre hozzárendelt kvóta az Azure-előfizetésekhez tartozó Intel SGX virtuálisgép-méretekhez. Az alábbi utasításokat követve kérheti a virtuálisgép-magkvótát az előfizetéseihez.

AKS-fürt létrehozása enklávéérzékeny bizalmas számítási csomópontokkal és Intel SGX-bővítményekkel

Az alábbi utasításokat követve hozzon létre egy AKS-fürtöt, amelyen engedélyezve van az Intel SGX bővítmény, adjon hozzá egy csomópontkészletet a fürthöz, és ellenőrizze, hogy mit hozott létre a Hello World enklávéalkalmazással.

AKS-fürt létrehozása rendszercsomópontkészlettel és AKS Intel SGX Addonnal

Feljegyzés

Ha már rendelkezik olyan AKS-fürttel, amely megfelel a korábban felsorolt előfeltételeknek, ugorjon a következő szakaszra egy bizalmas számítási csomópontkészlet hozzáadásához.

Az Intel SGX AKS Addon "confcom" elérhetővé teszi az Intel SGX-eszközillesztőket a tárolók számára, hogy elkerülje a pod yaml módosításait.

Először hozzon létre egy erőforráscsoportot a fürthöz az az group create paranccsal. Az alábbi példa létrehoz egy myResourceGroup nevű erőforráscsoportot az eastus2 régióban:

az group create --name myResourceGroup --location eastus2

Most hozzon létre egy AKS-fürtöt, amelyen engedélyezve van a bizalmas számítási bővítmény az az aks create paranccsal:

az aks create -g myResourceGroup --name myAKSCluster --generate-ssh-keys --enable-addons confcom

A fenti parancs üzembe helyez egy új AKS-fürtöt, amely nem bizalmas számítási csomópontból álló rendszercsomópont-készlettel rendelkezik. A bizalmas számítási Intel SGX-csomópontok nem ajánlottak a rendszercsomópontok készleteihez.

Bizalmas számítási képességekkel rendelkező felhasználói csomópontkészlet hozzáadása az AKS-fürthöz

Futtassa a következő parancsot egy három csomópontból álló Standard_DC4s_v3 méretű felhasználói csomópontkészlet hozzáadásához az AKS-fürthöz. A támogatott DCsv2/DCsv3 termékváltozatok és régiók listájából választhat egy másik nagyobb méretű termékváltozatot.

az aks nodepool add --cluster-name myAKSCluster --name confcompool1 --resource-group myResourceGroup --node-vm-size Standard_DC4s_v3 --node-count 2

A parancs futtatása után a DCsv3-nal rendelkező új csomópontkészletnek láthatónak kell lennie a DaemonSets (SGX-eszköz beépülő modul) bizalmas számítási bővítményeivel.

A csomópontkészlet és a bővítmény ellenőrzése

Szerezze be az AKS-fürt hitelesítő adatait az az aks get-credentials paranccsal:

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

kubectl get pods A paranccsal ellenőrizze, hogy a csomópontok megfelelően lettek-e létrehozva, és hogy az SGX-hez kapcsolódó Démonkészletek futnak-e DCsv2 csomópontkészleteken:

kubectl get pods --all-namespaces
kube-system     sgx-device-plugin-xxxx     1/1     Running

Ha a kimenet megegyezik az előző kóddal, az AKS-fürt most már készen áll a bizalmas alkalmazások futtatására.

Az alkalmazás enklávéban való teszteléséhez nyissa meg a Központi „Helló világ!” alkalmazás szakaszt egy izolált enklávé alkalmazásszakaszból. Vagy az alábbi utasításokat követve további csomópontkészleteket adhat hozzá az AKS-hez. (Az AKS támogatja az SGX-csomópontkészletek és a nem SGX-csomópontkészletek keverését.)

Bizalmas számítási csomópontkészlet hozzáadása egy meglévő AKS-fürthöz

Ez a szakasz feltételezi, hogy már futtat egy AKS-fürtöt, amely megfelel az ebben a rövid útmutatóban korábban felsorolt előfeltételeknek.

A bizalmas számítási AKS-bővítmény engedélyezése a meglévő fürtön

Futtassa a következő parancsot a bizalmas számítási bővítmény engedélyezéséhez:

az aks enable-addons --addons confcom --name MyManagedCluster --resource-group MyResourceGroup

DCsv3 felhasználói csomópontkészlet hozzáadása a fürthöz

Feljegyzés

A bizalmas számítási képesség használatához a meglévő AKS-fürtnek legalább egy csomópontkészletet kell rendelkeznie, amely egy DCsv2/DCsv3 virtuálisgép-termékváltozaton alapul. A DCs-v2/Dcs-v3 virtuálisgép-termékváltozatokkal kapcsolatos további információkért tekintse meg a rendelkezésre álló termékváltozatokat és a támogatott régiókat.

Csomópontkészlet létrehozásához futtassa a következő parancsot:

az aks nodepool add --cluster-name myAKSCluster --name confcompool1 --resource-group myResourceGroup --node-count 2 --node-vm-size Standard_DC4s_v3

Ellenőrizze, hogy létrejött-e az új, confcompool1 nevű csomópontkészlet:

az aks nodepool list --cluster-name myAKSCluster --resource-group myResourceGroup

Ellenőrizze, hogy a DaemonSets bizalmas csomópontkészleteken fut-e

Jelentkezzen be a meglévő AKS-fürtbe a következő ellenőrzés végrehajtásához:

kubectl get nodes

A kimenetnek az AKS-fürt újonnan hozzáadott confcompool1 készletét kell megjelenítenie. Más Démonkészletek is megjelenhetnek.

kubectl get pods --all-namespaces
kube-system     sgx-device-plugin-xxxx     1/1     Running

Ha a kimenet megegyezik az előző kóddal, az AKS-fürt most már készen áll a bizalmas alkalmazások futtatására.

„Helló világ!” alkalmazás üzembe helyezése izolált enklávéalkalmazásból

Most már készen áll egy tesztalkalmazás üzembe helyezésére.

Hozzon létre egy hello-world-enclave.yaml nevű fájlt, és illessze be a következő YAML-jegyzékbe. Ezt a mintaalkalmazás-kódot az Open Enclave projektben találja. Ez az üzembe helyezés feltételezi, hogy üzembe helyezte a confcom bővítményt.

Feljegyzés

Az alábbi példa egy nyilvános tárolórendszerképet kér le a Docker Hubról. Javasoljuk, hogy állítson be egy lekéréses titkos kulcsot a hitelesítéshez egy Docker Hub-fiókkal a névtelen lekéréses kérések helyett. A nyilvános tartalommal végzett munka megbízhatóságának javítása érdekében importálja és kezelje a rendszerképet egy privát Azure-tárolóregisztrációs adatbázisban. További információ a nyilvános rendszerképek használatával kapcsolatban.

apiVersion: batch/v1
kind: Job
metadata:
  name: oe-helloworld
  namespace: default
spec:
  template:
    metadata:
      labels:
        app: oe-helloworld
    spec:
      containers:
      - name: oe-helloworld
        image: mcr.microsoft.com/acc/samples/oe-helloworld:latest
        resources:
          limits:
            sgx.intel.com/epc: "10Mi"
          requests:
            sgx.intel.com/epc: "10Mi"
        volumeMounts:
        - name: var-run-aesmd
          mountPath: /var/run/aesmd
      restartPolicy: "Never"
      volumes:
      - name: var-run-aesmd
        hostPath:
          path: /var/run/aesmd
  backoffLimit: 0

Másik lehetőségként elvégezheti a csomópontkészlet-kijelölés üzembe helyezését is a tárolótelepítésekhez az alábbiak szerint

apiVersion: batch/v1
kind: Job
metadata:
  name: oe-helloworld
  namespace: default
spec:
  template:
    metadata:
      labels:
        app: oe-helloworld
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: agentpool
                operator: In
                values:
                - acc # this is the name of your confidential computing nodel pool
                - acc_second # this is the name of your confidential computing nodel pool
      containers:
      - name: oe-helloworld
        image: mcr.microsoft.com/acc/samples/oe-helloworld:latest
        resources:
          limits:
            sgx.intel.com/epc: "10Mi"
          requests:
            sgx.intel.com/epc: "10Mi"
        volumeMounts:
        - name: var-run-aesmd
          mountPath: /var/run/aesmd
      restartPolicy: "Never"
      volumes:
      - name: var-run-aesmd
        hostPath:
          path: /var/run/aesmd
  backoffLimit: 0

Most a kubectl apply paranccsal hozzon létre egy mintafeladatot, amely egy biztonságos enklávéban nyílik meg, ahogyan az alábbi példakimenetben látható:

kubectl apply -f hello-world-enclave.yaml
job "oe-helloworld" created

A következő parancsok futtatásával ellenőrizheti, hogy a számítási feladat sikeresen létrehozott-e megbízható végrehajtási környezetet (enklávét):

kubectl get jobs -l app=oe-helloworld
NAME       COMPLETIONS   DURATION   AGE
oe-helloworld   1/1           1s         23s
kubectl get pods -l app=oe-helloworld
NAME             READY   STATUS      RESTARTS   AGE
oe-helloworld-rchvg   0/1     Completed   0          25s
kubectl logs -l app=oe-helloworld
Hello world from the enclave
Enclave called into host to print: Hello World!

Az erőforrások eltávolítása

Az ebben a rövid útmutatóban létrehozott bizalmas számítási csomópontkészlet eltávolításához használja a következő parancsot:

az aks nodepool delete --cluster-name myAKSCluster --name confcompool1 --resource-group myResourceGroup

Az AKS-fürt törléséhez használja a következő parancsot:

az aks delete --resource-group myResourceGroup --cluster-name myAKSCluster

Következő lépések

  • Python, Node vagy más alkalmazások futtatása bizalmas tárolókon keresztül ISV/OSS SGX burkolószoftverrel. Tekintse át a bizalmas tárolómintákat a GitHubon.

  • Enklávéérzékeny alkalmazásokat futtathat az enklávéval tisztában lévő Azure-tárolóminták használatával a GitHubon.