Share via


Bizalmas virtuális gépek bizalmas számítástechnikai beépülő modulja

Az Azure Kubernetes Service (AKS) egy beépülő modult biztosít az Azure bizalmas számítástechnikai virtuális gépekhez (VM-ekhez). A beépülő modul egy confcomdémonkészlet. A beépülő modul csak az Intel Software Guard Extensions (SGX) bizalmas virtuális gépekhez fut egy AKS-fürtben. Ez a beépülő modul az AKS-fürt szintjén van regisztrálva. A beépülő modul használatával egyszerűen kezelheti a bizalmas csomópontokat. Mielőtt hozzákezdene, engedélyezze az AKS-fürt beépülő modulját.

Intel SGX-eszköz beépülő modul az AKS-hez

Az SGX-eszköz beépülő modul implementálja a Kubernetes-eszköz beépülő modul felületét az Enclave Page Cache (EPC) memóriájához. Ezzel a beépülő modulval az EPC-memória egy másik erőforrástípussá válik a Kubernetesben. A felhasználók a többi erőforráshoz hasonlóan korlátozhatják az EPC-t. Az ütemezési függvényen kívül az eszköz beépülő modulja SGX-eszközillesztő-engedélyeket rendel a bizalmas számítási feladatok tárolóihoz. Elérhető az EPC memóriaalapú üzembe helyezésének (kubernetes.azure.com/sgx_epc_mem_in_MiB) mintája.

PSW SGX-ajánlatsegítővel

A távoli igazolást használó enklávé-alkalmazásoknak idézőjelet kell létrehozniuk. Az idézet titkosítási bizonyítékot nyújt az alkalmazás identitásáról és állapotáról, valamint az enklávé gazdagépkörnyezetéről. Az idézőjelek létrehozása az Intel bizonyos megbízható szoftverösszetevőire támaszkodik, amelyek az SGX platform szoftverösszetevőinek (PSW/DCAP) részei. Ez a PSW csomópontonként futó démonkészletként van csomagolva. A PSW-t akkor használhatja, ha igazolási árajánlatot kér az enklávé alkalmazásoktól. Az AKS által biztosított szolgáltatás használata segít jobban fenntartani a PSW és a gazdagép más SW-összetevői közötti kompatibilitást. Olvassa el az alábbi funkció részleteit.

A távoli igazolást használó enklávéalkalmazások generált árajánlatot igényelnek. Ez az idézet az alkalmazás identitásának, állapotának és futó környezetének titkosítási bizonyítékát tartalmazza. A generációhoz olyan megbízható szoftverösszetevők szükségesek, amelyek az Intel PSW-jének részét képezik.

Áttekintés

Megjegyzés:

Ez a funkció csak speciális Intel SGX-hardvert használó DCsv2/DCsv3 rendszerű virtuális gépekhez szükséges.

Az Intel két igazolási módot támogat az ajánlatgenerálás futtatásához. A típus kiválasztásához tekintse meg az [igazolási típus eltérései] (#attestation típuskülönbségek) című témakört.

  • in-proc: az enklávéalkalmazás folyamatában üzemelteti a megbízható szoftverösszetevőket. Ez a módszer akkor hasznos, ha helyi igazolást végez (egy virtuálisgép-csomóponton 2 enklávé alkalmazás között)

  • out-of-proc: az enklávéalkalmazáson kívüli megbízható szoftverösszetevőket üzemelteti. Ez egy előnyben részesített módszer a távoli igazolások végrehajtásakor.

Az SGX-alkalmazások az Open Enclave SDK használatával vannak létrehozva, alapértelmezés szerint in-proc igazolási módot használnak. Az SGX-alapú alkalmazások lehetővé teszik a beszerzésen kívüli üzemeltetést, és további üzemeltetést igényelnek. Ezek az alkalmazások az alkalmazáson kívül teszik elérhetővé a szükséges összetevőket, például az Architektúra Enklávé Service Managert (AESM).

Erősen ajánlott ezt a funkciót használni. Ez a funkció növeli az enklávéalkalmazások üzemidejét az Intel Platform frissítései vagy a DCAP-illesztőprogramok frissítései során.

Igazolási típus eltérései

A PSW ajánlatgenerálási összetevőinek frissítésére nincs szükség minden tárolóalapú alkalmazáshoz.

A nem beszerezett tárolók esetén a tárolótulajdonosoknak nem kell kezelniük a tárolón belüli frissítéseket. A tárolótulajdonosok ehelyett a megadott felületre támaszkodnak, amely meghívja a központosított szolgáltatást a tárolón kívül.

Az elavult PSW-összetevők miatt a hibák nem okoznak problémát. Az idézőjel-létrehozás magában foglalja a megbízható SW-összetevőket – Idéző enklávé (QE) & kiépítési tanúsítvány enklávéja (PCE), amelyek a megbízható számítási alap (TCB) részét képezik. Ezeknek a SW-összetevőknek naprakésznek kell lenniük az igazolási követelmények fenntartásához. A szolgáltató kezeli az összetevők frissítéseit. Az ügyfeleknek soha nem kell az igazolási hibákkal foglalkozniuk, mert elavult megbízható SW-összetevők vannak a tárolójukban.

A beszerzésen kívüli szolgáltatás jobban használja az EPC-memóriát. In-proc igazolás módban minden enklávé alkalmazás példányosítja a QE és a PCE másolatát a távoli igazoláshoz. A nem beszerezett tárolók nem üzemeltetik ezeket az enklávékat, és nem használnak enklávé memóriát a tárolókvóta alapján.

A Kernel kényszerítése ellen is vannak garanciák. Amikor az SGX-illesztőprogramot linuxos kernelbe streamelik, az enklávé magasabb jogosultságokkal rendelkezik. Ez a jogosultság lehetővé teszi, hogy az enklávé meghívja a PCE-t, ami megszakítja az in-proc módban futó enklávéalkalmazást. Alapértelmezés szerint az enklávék nem kapják meg ezt az engedélyt. Ha ezt a jogosultságot egy enklávéalkalmazásnak adja, módosítani kell az alkalmazás telepítési folyamatát. A beszerzésen kívüli kéréseket kezelő szolgáltatás szolgáltatója gondoskodik arról, hogy a szolgáltatás telepítve legyen ezzel a jogosultsággal.

Nem kell ellenőriznie a PSW és a DCAP visszamenőleges kompatibilitását. A szolgáltató ellenőrzi a PSW idézőjelgenerálási összetevőinek frissítéseit a visszamenőleges kompatibilitás érdekében. Ez a lépés előre kezeli a kompatibilitási problémákat, és kezeli őket, mielőtt frissítéseket helyez üzembe a bizalmas számítási feladatokhoz.

Nem beszerezhetőségi igazolás bizalmas számítási feladatokhoz

A beszerzésen kívüli igazolási modell bizalmas számítási feladatokhoz használható. Az ajánlatkérés és az idézőjel létrehozása külön történik, de ugyanazon a fizikai gépen. Az idézőjelek létrehozása központosított módon történik, és az összes entitás idézőjelekre vonatkozó kéréseit szolgálja ki. Megfelelően határozza meg az interfészt, és tegye a felületet felderíthetővé bármely entitás számára, hogy árajánlatokat kérjen.

Diagram of quote requestor and quote generation interface.

Az absztrakt modell bizalmas számítási feladatokra vonatkozik. Ez a modell a már elérhető AESM szolgáltatást használja. Az AESM tárolóba van helyezve, és démonkészletként van üzembe helyezve a Kubernetes-fürtön. A Kubernetes garantálja az AESM-szolgáltatástároló egyetlen példányát, amely podba van csomagolva, és minden ügynökcsomóponton üzembe helyezhető. Az új SGX-idézőjel démonkészlet függőségben van a sgx-device-plugin démonkészlettel, mivel az AESM szolgáltatástároló EPC-memóriát kérne a sgx-device-plugin QE és a PCE-enklávék elindításához.

Minden tárolónak a létrehozás során a környezeti változó SGX_AESM_ADDR=1 beállításával be kell jelentkeznie a nem beszerezett idézőjelek létrehozására. A tárolónak tartalmaznia kell a csomagot libsgx-quote-exis, amely a kérést az alapértelmezett Unix tartományi szoftvercsatornára irányítja

Az alkalmazások a korábbiakhoz hasonlóan továbbra is használhatják az in-proc igazolást. Az alkalmazáson belül azonban nem használhatja egyszerre az in-proc és az out-of-proc alkalmazást. A beszerzésen kívüli infrastruktúra alapértelmezés szerint elérhető, és erőforrásokat használ fel.

Megjegyzés:

Ha Intel SGX burkolószoftvert (OSS/ISV) használ a nem módosított tárolók futtatásához, a hardverrel való igazolási interakciót általában a magasabb szintű alkalmazások kezelik. Tekintse meg a szolgáltatónkénti igazolási implementációt.

Minta implementáció

Alapértelmezés szerint ez a szolgáltatás nincs engedélyezve a "confcom" bővítményt tartalmazó AKS-fürthöz. Frissítse a bővítményt az alábbi paranccsal

az aks addon update --addon confcom --name " YourAKSClusterName " --resource-group "YourResourceGroup " --enable-sgxquotehelper

A szolgáltatás üzembe helyezését követően használja az alábbi Docker-mintát egy Open Enclave-alapú alkalmazáshoz a folyamat ellenőrzéséhez. Állítsa be a SGX_AESM_ADDR=1 környezeti változót a Docker-fájlban. Vagy állítsa be a változót az üzembehelyezési fájlban. Kövesse ezt a mintát a Docker-fájl és az üzembehelyezési YAML részleteihez.

Megjegyzés:

Az Intel libsgx-quote-ex csomagját be kell csomagolni az alkalmazástárolóba, hogy a nem beszerezhető igazolás megfelelően működjön. Az alábbi utasításokban találhatók a részletek.

# Refer to Intel_SGX_Installation_Guide_Linux for detail
FROM ubuntu:18.04 as sgx_base
RUN apt-get update && apt-get install -y \
    wget \
    gnupg

# Add the repository to sources, and add the key to the list of
# trusted keys used by the apt to authenticate packages
RUN echo "deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu bionic main" | tee /etc/apt/sources.list.d/intel-sgx.list \
    && wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key add -
# Add Microsoft repo for az-dcap-client
RUN echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main" | tee /etc/apt/sources.list.d/msprod.list \
    && wget -qO - https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

FROM sgx_base as sgx_sample
RUN apt-get update && apt-get install -y \
    clang-7 \
    libssl-dev \
    gdb \
    libprotobuf10 \
    libsgx-dcap-ql \
    libsgx-quote-ex \
    az-dcap-client \
    open-enclave
WORKDIR /opt/openenclave/share/openenclave/samples/attestation
RUN . /opt/openenclave/share/openenclave/openenclaverc \
    && make build
# this sets the flag for out of proc attestation mode, alternatively you can set this flag on the deployment files
ENV SGX_AESM_ADDR=1 

CMD make run

Ehelyett állítsa be a nem procedúra igazolási módot az üzembehelyezési YAML-fájlban az alábbiak szerint:

apiVersion: batch/v1
kind: Job
metadata:
  name: sgx-test
spec:
  template:
    spec:
      containers:
      - name: sgxtest
        image: <registry>/<repository>:<version>
        env:
        - name: SGX_AESM_ADDR
          value: 1
        resources:
          limits:
            kubernetes.azure.com/sgx_epc_mem_in_MiB: 10
        volumeMounts:
        - name: var-run-aesmd
          mountPath: /var/run/aesmd
      restartPolicy: "Never"
      volumes:
      - name: var-run-aesmd
        hostPath:
          path: /var/run/aesmd

Az üzembe helyezésnek sikeresnek kell lennie, és lehetővé kell tenni, hogy az alkalmazások távoli igazolást hajtsanak végre az SGX Quote Helper szolgáltatással.

Következő lépések