Den här artikeln tar upp vanliga frågor om Intel SGX-baserade konfidentiala beräkningsnoder i Azure Kubernetes Service (AKS). Om du har ytterligare frågor kan du skicka ett e-postmeddelande acconaks@microsoft.comtill .
Produkt
Är de konfidentiella beräkningsnoderna i AKS tillgängliga för produktionsanvändning?
Ja, för Intel SGX-enklavernoder.
Kan jag aktivera accelererat nätverk med Azures konfidentiella databehandlings-AKS-kluster?
Ja, DCSv3 VM-noder stöder accelererat nätverk. DCSv2 Virtuella datorer gör det inte.
Vilken version av Intel SGX-drivrutinsversionen finns på AKS-avbildningen för konfidentiella noder?
För närvarande installeras azure confidential computing DCSv2/DCSv3 VMs med Intel SGX DCAP 1.33.2
Kan jag mata in efterinstallationsskript/anpassa drivrutiner till noderna som tillhandahålls av AKS?
Nej. AKS-Engine-baserade konfidentiella databehandlingsnoder stöder konfidentiella beräkningsnoder som tillåter anpassade installationer och har fullständig kontroll över ditt Kubernetes-kontrollplan.
Kan jag köra ACC-noder med andra vanliga AKS-SKU:er (skapa ett heterogent nodpoolskluster)?
Ja, du kan köra olika nodpooler i samma AKS-kluster, inklusive ACC-noder. Överväg att lägga till nodväljare eller tillämpa EPC-gränser för att rikta in dina enklaverprogram på en specifik nodpool. Mer information om snabbstart för konfidentiella noder finns här.
Kan jag köra Windows-noder och Windows-containrar med ACC?
Nej, inte just nu. Kontakta produktteamet på acconaks@microsoft.com om du har Windows-noder eller containerbehov.
Kan jag fortfarande schemalägga och köra containrar som inte är enklaver på konfidentiala beräkningsnoder?
Ja. De virtuella datorerna har också ett vanligt minne som kan köra standardcontainerarbetsbelastningar. Överväg säkerhets- och hotmodellen för dina program innan du bestämmer dig för distributionsmodellerna.
Vad är den virtuella datorns SKU som jag bör välja för konfidentiella beräkningsnoder?
Kan jag etablera AKS med DCSv2-nodpooler via Azure Portal?
Ja. Azure CLI kan också användas som ett alternativ som beskrivs här.
Vilken Ubuntu-version och vm-generering stöds?
18.04 på Gen 2.
Vilka är de kända aktuella begränsningarna för produkten?
- Stöder endast Ubuntu 18.04 Gen 2 VM-noder
- Inget stöd för Windows-noder eller Stöd för Windows-containrar
- EPC Memory based Horizontal Pod Autoscaling stöds inte. CPU och vanlig minnesbaserad skalning stöds.
- Dev Spaces på AKS för konfidentiella appar stöds inte för närvarande
Kan jag etablera AKS med DCSv2/DCSv3-nodpooler via Azure Portal?
Ja. Azure CLI kan också användas som ett alternativ som beskrivs här.
Utveckling och distribution
Kan jag ta med mina befintliga containerbaserade program och köra dem på AKS med Azure Confidential Computing?
Ja, du kommer att ta med SGX-omslutningsprogramvara för att köras i en Intel SGX-enklav, gå igenom sidan med konfidentiella containrar för mer information om plattformsaktiverare.
Ska jag använda en Docker-basavbildning för att komma igång med enklaverprogram?
Olika aktiverare (ISV:er och OSS-projekt) tillhandahåller sätt att aktivera konfidentiella containrar. Mer information och enskilda referenser till implementeringar finns på sidan konfidentiella containrar.
Begrepp för konfidentiell container
Vad är attestering och hur kan vi göra attestering av appar som körs i enklaver?
Attestering är en process för att visa och validera att en programvara har instansierats korrekt på den specifika maskinvaruplattformen. Det säkerställer också att dess bevis är verifierbara för att ge garantier för att det körs på en säker plattform och inte har manipulerats. Läs mer om hur attestering görs för enklaverappar.
Vad händer om min containerstorlek är mer än tillgängligt EPC-minne?
EPC-minnet gäller för den del av programmet som är programmerad att köras i enklaven. Den totala storleken på containern är inte rätt sätt att jämföra den med det maximala tillgängliga EPC-minnet. Faktum är att DCSv2-datorer med SGX tillåter maximalt VM-minne på 32 GB där din ej betrodda del av programmet skulle använda. Men om containern förbrukar mer än tillgängligt EPC-minne kan prestandan för den del av programmet som körs i enklaven påverkas.
För att bättre hantera EPC-minnet i arbetsnoderna bör du överväga hanteringen av EPC-minnesbaserade gränser via Kubernetes. Följ exemplet nedan som referens.
Kommentar
I följande exempel hämtas en offentlig containeravbildning från Docker Hub. Vi rekommenderar att du konfigurerar en pull-hemlighet för att autentisera med ett Docker Hub-konto i stället för att göra en anonym pull-begäran. För att förbättra tillförlitligheten när du arbetar med offentligt innehåll importerar och hanterar du avbildningen i ett privat Azure-containerregister. Läs mer om hur du arbetar med offentliga avbildningar.
apiVersion: batch/v1
kind: Job
metadata:
name: sgx-test
labels:
app: sgx-test
spec:
template:
metadata:
labels:
app: sgx-test
spec:
containers:
- name: sgxtest
image: oeciteam/sgx-test: 1.0
resources:
limits:
sgx.intel.com/sgx_epc_mem_in_MiB: 10 # This limit will automatically place the job into confidential computing node. Alternatively, you can target deployment to node pools
restartPolicy: Never
backoffLimit: 0
Vad händer om min enklav förbrukar mer än maximalt tillgängligt EPC-minne?
Totalt tillgängligt EPC-minne delas mellan enklaverprogrammen på samma virtuella datorer eller arbetsnoder. Om ditt program använder EPC-minne mer än tillgängligt kan programmets prestanda påverkas. Därför rekommenderar vi att du ställer in tolerans per program i din yaml-distributionsfil för att bättre hantera det tillgängliga EPC-minnet per arbetsnoder enligt exemplen ovan. Du kan också alltid välja att flytta upp på vm-storlekarna för arbetsnodpoolen eller lägga till fler noder.
Varför kan jag inte göra förgreningar () och exec för att köra flera processer i mitt enklavprogram?
För närvarande har virtuella Datorer med konfidentiell databehandling i Azure DCsv2 SKU stöd för ett enda adressutrymme för programmet som körs i en enklav. En process är en aktuell begränsning som är utformad för hög säkerhet. Konfidentiella containeraktiverare kan dock ha alternativa implementeringar för att övervinna den här begränsningen.
Måste jag montera drivrutinsvolymerna i min distributions yaml?
Nej. Produkten tillhandahåller ACC Add On som innehåller (confcom) hjälper dig med detta. Läs mer om distributionsinformationen här.
Kan vi ändra den aktuella Intel SGX DCAP-diver-versionen på AKS?
Nej. Om du vill utföra anpassade installationer rekommenderar vi att du väljer distributioner av AKS-Engine Confidential Computing Worker Nodes .
Läses endast signerade och betrodda avbildningar in i enklaven för konfidentiell databehandling?
Inte internt under enklavens initiering, men ja genom attesteringsprocessens signatur kan verifieras. Referens här.
Går det att signera containrar för att skydda kodintegritet i konfidentiella containrar?
Med konfidentiella containrar kan du signera enklaverkoden men inte själva Docker-containern. Med enklaverkod (vilket vanligtvis är din kärnprogramkod i Java, Python osv.) kan du verifiera genom attestering av MRSIGNER-informationen för enklavens kod innan du kan lita på koden och körningsmiljön via attesteringsflödet.
Nästa steg
Mer information om konfidentiella containrar finns på sidan konfidentiella containrar.