Delen via


Vertrouwelijke containers in Azure Kubernetes Service (AKS) met Intel SGX-enclaves

Vertrouwelijke containers helpen u bij het uitvoeren van bestaande, ongewijzigde containertoepassingen van de meest voorkomende runtimes voor programmeertalen (Python, Node, Java enzovoort) in de Op Intel SGX gebaseerde Trusted Execution Environment (TEE). Dit verpakkingsmodel heeft doorgaans geen broncodewijzigingen of -hercompilatie nodig en is de snelste methode om te worden uitgevoerd in Intel SGX-enclaves. Voor het uitvoeren van uw standaard-Docker-containers is een opensource-SGX Wrapper of Azure Partner Solution vereist. In dit verpakkings- en uitvoeringsmodel wordt elke containertoepassing geladen in de vertrouwde grens (enclave) en met een hardware-gebaseerde isolatie die wordt afgedwongen door Intel SGX CPU. Elke container die in een enclave wordt uitgevoerd, ontvangt een eigen geheugenversleutelingssleutel die wordt geleverd door de Intel SGX-CPU. Dit model werkt goed voor de kant-en-klare containertoepassingen die beschikbaar zijn in de markt of aangepaste apps die momenteel worden uitgevoerd op knooppunten voor algemeen gebruik. Als u een bestaande Docker-container wilt uitvoeren, hebben toepassingen op confidential computing-knooppunten een SGX-wrappersoftware (Intel Software Guard Extensions) nodig om de containeruitvoering binnen de grenzen van de speciale CPU-instructieset te helpen. SGX maakt een directe uitvoering naar de CPU om het gastbesturingssysteem (OS), het hostbesturingssysteem of de hypervisor van de vertrouwensgrens te verwijderen. Met deze stap worden de algemene kwetsbaarheid voor kwetsbaarheid en beveiligingsproblemen verminderd en wordt isolatie op procesniveau binnen één knooppunt bereikt.

Het algehele proces voor het uitvoeren van ongewijzigde containers omvat wijzigingen in de wijze waarop uw container vandaag wordt verpakt, zoals hieronder wordt beschreven.

Diagram van de conversie van vertrouwelijke containers, met nieuwe stappen voor het inschakelen van Intel SGX en AKS.

De SGX-wrappersoftware die nodig is om standaardcontainers uit te voeren, worden aangeboden door Azure-softwarepartners of OSS-oplossingen (Open Source Software).

Partner-enablers

Ontwikkelaars kunnen softwareproviders kiezen op basis van hun functies, integratie met Azure-services en ondersteuning voor hulpprogramma's.

Belangrijk

Azure-softwarepartners omvatten vaak licentiekosten boven op uw Azure-infrastructuur. Controleer alle partnersoftwarevoorwaarden onafhankelijk.

Fortanix

Fortanix heeft portal- en CLI-ervaringen (Command Line Interface) om hun toepassingen in containers te converteren naar vertrouwelijke containers die geschikt zijn voor SGX. U hoeft de toepassing niet te wijzigen of opnieuw te compileren. Fortanix biedt de flexibiliteit om een brede set toepassingen uit te voeren en te beheren. U kunt bestaande toepassingen, nieuwe enclaveeigen toepassingen en vooraf verpakte toepassingen gebruiken. Begin met de enclavebeheerinterface of REST API's van Fortanix. Maak vertrouwelijke containers met behulp van de quickstartgids voor AKS van Fortanix.

Diagram van het Fortanix-implementatieproces, met stappen voor het verplaatsen van toepassingen naar vertrouwelijke containers en implementeren.

SCONE (Scontain)

SCONE-beveiligingsbeleid (Scontain) genereert certificaten, sleutels en geheimen. Alleen services met attestation voor een toepassing zien deze referenties. Toepassingsservices doen automatisch attestation voor elkaar via TLS. U hoeft de toepassingen of TLS niet te wijzigen. Zie de flask-toepassingsdemo van SCONE voor meer uitleg.

SCONE kan de meeste bestaande binaire bestanden converteren naar toepassingen die in enclaves worden uitgevoerd. SCONE beveiligt ook geïnterpreteerde talen zoals Python door zowel gegevensbestanden als Python-codebestanden te versleutelen. U kunt SCONE-beveiligingsbeleid gebruiken om versleutelde bestanden te beveiligen tegen onbevoegde toegang, wijzigingen en terugdraaiacties. Zie de documentatie van SCONE voor meer informatie over het gebruik van SCONE met een bestaande Python-toepassing.

Diagram van DE SCONE-werkstroom, waarin wordt getoond hoe BINAIRE AFBEELDINGEN van SCONE worden verwerkt.

U kunt SCONE implementeren op Azure Confidential Computing-knooppunten met AKS na de implementatie van deze SCONE-voorbeeldtoepassing van AKS.

Anjuna

Anjuna biedt SGX-platformsoftware voor het uitvoeren van ongewijzigde containers op AKS. Zie de documentatie van Anjuna over functionaliteit en voorbeeldtoepassingen voor meer informatie.

Ga hier aan de slag met een voorbeeld van Redis Cache en een aangepaste Python-toepassing

Diagram van het proces van Anjuna, waarin wordt getoond hoe containers worden uitgevoerd op Azure Confidential Computing.

OSS-enablers

Notitie

Azure Confidential Computing en Microsoft zijn niet rechtstreeks gekoppeld aan deze projecten en oplossingen.

Gramine

Gramine is een lichtgewicht gastbesturingssystemen, ontworpen om één Linux-toepassing met minimale hostvereisten uit te voeren. Gramine kan toepassingen uitvoeren in een geïsoleerde omgeving. Er is ondersteuning voor hulpprogramma's voor het converteren van bestaande Docker-container naar SGX-compatibele containers.

Zie de voorbeeldtoepassing en implementatie van Gramine op AKS voor meer informatie

Occlum

Occlum is een geheugenveilig, multi-process library OS (LibOS) voor Intel SGX. Met het besturingssysteem kunnen verouderde toepassingen worden uitgevoerd op SGX met weinig tot geen wijzigingen aan de broncode. Occlum beschermt op transparante wijze de vertrouwelijkheid van gebruikersworkloads, terwijl u een eenvoudige 'lift and shift' to bestaande Docker-toepassingen toestaat.

Zie de implementatie-instructies en voorbeeld-apps van Occlum op AKS voor meer informatie.

Marblerun

Marblerun is een indelingsframework voor vertrouwelijke containers. U kunt vertrouwelijke services uitvoeren en schalen op Kubernetes met SGX-functionaliteit. Marblerun zorgt voor standaardtaken, zoals het verifiëren van de services in uw cluster, het beheren van geheimen voor deze services en het tot stand brengen van enclave-naar-enclave mTLS-verbindingen ertussen. Marblerun zorgt er ook voor dat uw cluster met vertrouwelijke containers voldoet aan een manifest dat is gedefinieerd in eenvoudige JSON. U kunt het manifest verifiëren met externe clients via externe attestation.

Dit framework breidt de vertrouwelijkheid, integriteit en controleerbaarheidseigenschappen van één enclave uit naar een Kubernetes-cluster.

Marblerun ondersteunt vertrouwelijke containers die zijn gemaakt met Graphene, Occlum en EGo, met voorbeelden voor elke SDK. Het framework wordt uitgevoerd op Kubernetes naast uw bestaande cloudhulpprogramma's. Er zijn CLI- en Helm-grafieken. Marblerun biedt ook ondersteuning voor confidential computing-knooppunten op AKS. Volg de handleiding van Marblerun voor het implementeren van Marblerun op AKS.

Referentiearchitecturen voor vertrouwelijke containers

Contact opnemen

Hebt u vragen over uw implementatie? Wilt u een enabler worden voor vertrouwelijke containers? Een e-mail verzenden naar acconaks@microsoft.com.

Volgende stappen