Dela via


Konfidentiella containrar i Azure Kubernetes Service (AKS) med Intel SGX-enklaver

Konfidentiella containrar hjälper dig att köra befintliga oförändrade containerprogram för de vanligaste programmeringsspråken (Python, Node, Java osv.) i Intel SGX-baserade Trusted Execution Environment (TEE). Den här paketeringsmodellen behöver vanligtvis inga ändringar eller omkompilering av källkod och är den snabbaste metoden att köra i Intel SGX-enklaver. En vanlig distributionsprocess för att köra dina docker-standardcontainrar kräver en SGX-omslutning med öppen källkod eller Azure-partnerlösning. I den här paketerings- och körningsmodellen läses varje containerprogram in i den betrodda gränsen (enklaven) och med en maskinvarubaserad isolering som framtvingas av Intel SGX CPU. Varje container som körs i en enklav får en egen minneskrypteringsnyckel som levereras från Intel SGX-processorn. Den här modellen fungerar bra för containerprogram utanför hyllan som är tillgängliga på marknaden eller anpassade appar som för närvarande körs på noder för generell användning. För att köra en befintlig Docker-container kräver program på konfidentiella beräkningsnoder en SGX-omslutningsprogramvara (Intel Software Guard Extensions) för att hjälpa containerkörningen inom gränserna för en särskild CPU-instruktionsuppsättning. SGX skapar en direkt körning till processorn för att ta bort gästoperativsystemet (OS), värdoperativsystemet eller hypervisor-programmet från förtroendegränsen. Det här steget minskar de övergripande områdena för ytangrepp och sårbarheter samtidigt som du uppnår isolering på processnivå inom en enda nod.

Den övergripande processen för att köra oförändrade containrar innebär ändringar i hur containern paketeras i dag enligt beskrivningen nedan.

Diagram över konvertering av konfidentiella containrar med nya steg för att aktivera Intel SGX och AKS.

SGX-omslutningsprogramvaran som behövs för att köra standardcontainrar erbjuds av Azure-programvarupartner eller OSS-lösningar (Open Source Software).

Partneraktiverare

Utvecklare kan välja programvaruleverantörer baserat på deras funktioner, integrering med Azure-tjänster och stöd för verktyg.

Viktigt!

Azure-programvarupartner omfattar ofta licensavgifter utöver din Azure-infrastruktur. Kontrollera alla partnerprogramvillkor oberoende av varandra.

Fortanix

Fortanix har funktioner för portal- och kommandoradsgränssnitt (CLI) för att konvertera sina containerbaserade program till SGX-kompatibla konfidentiella containrar. Du behöver inte ändra eller kompilera om programmet. Fortanix ger flexibiliteten att köra och hantera en bred uppsättning program. Du kan använda befintliga program, nya enklaverbaserade program och förpaketerade program. Börja med Fortanix UI för Enclave Manager eller REST-API:er. Skapa konfidentiella containrar med hjälp av Fortanix snabbstartsguide för AKS.

Diagram över Distributionsprocessen för Fortanix, som visar steg för att flytta program till konfidentiella containrar och distribuera.

SCONE (Scontain)

SCONE-säkerhetsprinciper (Scontain) genererar certifikat, nycklar och hemligheter. Endast tjänster med attestering för ett program ser dessa autentiseringsuppgifter. Programtjänster utför automatiskt attestering för varandra via TLS. Du behöver inte ändra programmen eller TLS. Mer förklaring finns i SCONE:s Flask-programdemo.

SCONE kan konvertera de flesta befintliga binärfiler till program som körs i enklaver. SCONE skyddar även tolkade språk som Python genom att kryptera både datafiler och Python-kodfiler. Du kan använda SCONE-säkerhetsprinciper för att skydda krypterade filer mot obehörig åtkomst, ändringar och återställningar. Mer information finns i SCONE:s dokumentation om hur du använder SCONE med ett befintligt Python-program.

Diagram över SCONE-arbetsflödet som visar hur SCONE bearbetar binära bilder.

Du kan distribuera SCONE på Azures konfidentiella databehandlingsnoder med AKS efter den här SCONE-exempeldistributionen av AKS-program.

Anjuna

Anjuna tillhandahåller SGX-plattformsprogram för att köra oförändrade containrar på AKS. Mer information finns i Anjunas dokumentation om funktioner och exempelprogram.

Kom igång med ett Redis Cache-exempel och ett anpassat Python-program här

Diagram över Anjunas process som visar hur containrar körs på konfidentiell azure-databehandling.

OSS-aktiverare

Kommentar

Konfidentiell databehandling i Azure och Microsoft är inte direkt kopplade till dessa projekt och lösningar.

Gramine

Gramine är ett lätt gästoperativsystem som utformats för att köra ett enda Linux-program med minimala värdkrav. Gramine kan köra program i en isolerad miljö. Det finns verktygsstöd för konvertering av befintliga Docker-containrar till SGX-redo containrar.

Mer information finns i Gramines exempelprogram och distribution på AKS

Occlum

Occlum är ett minnessäkert biblioteksoperativsystem för flera processer (LibOS) för Intel SGX. Operativsystemet gör det möjligt för äldre program att köras på SGX med små eller inga ändringar i källkoden. Occlum skyddar transparent konfidentialiteten för användararbetsbelastningar samtidigt som det möjliggör en enkel "lift and shift" till befintliga Docker-program.

Mer information finns i Occlums distributionsinstruktioner och exempelappar på AKS.

Marmorkörning

Marblerun är ett orkestreringsramverk för konfidentiella containrar. Du kan köra och skala konfidentiella tjänster på SGX-aktiverade Kubernetes. Marblerun tar hand om exempeluppgifter som att verifiera tjänsterna i klustret, hantera hemligheter åt dem och upprätta enklaver-till-enklaver-mTLS-anslutningar mellan dem. Marblerun ser också till att klustret med konfidentiella containrar följer ett manifest som definierats i enkel JSON. Du kan verifiera manifestet med externa klienter via fjärrattestering.

Det här ramverket utökar egenskaperna för konfidentialitet, integritet och verifierbarhet för en enskild enklav till ett Kubernetes-kluster.

Marblerun stöder konfidentiella containrar som skapats med Graphene, Occlum och EGo, med exempel för varje SDK. Ramverket körs på Kubernetes tillsammans med dina befintliga molnbaserade verktyg. Det finns ett CLI- och helm-diagram. Marblerun stöder även konfidentiella databehandlingsnoder på AKS. Följ Marbleruns guide för att distribuera Marblerun på AKS.

Referensarkitekturer för konfidentiella containrar

Kontakta oss

Har du frågor om implementeringen? Vill du bli en aktiverare för konfidentiella containrar? Skicka ett e-postmeddelande till acconaks@microsoft.com.

Nästa steg