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.
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.
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.
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
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
- Konfidentiella datameddelanden för referensarkitektur för hälso- och sjukvård och exempel med konfidentiella Intel SGX-containrar.
- Konfidentiell stordatabearbetning med Apache Spark på AKS med konfidentiella Intel SGX-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.