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.
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.
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.
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
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
- Vertrouwelijke gegevensberichten voor referentiearchitectuur voor gezondheidszorg en voorbeeld met vertrouwelijke Intel SGX-containers.
- Vertrouwelijke verwerking van big data met Apache Spark op AKS met Vertrouwelijke Intel SGX-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.