Vertrauliche Container auf Azure Kubernetes Service (AKS) mit Intel SGX-Enklaven

Mit vertraulichen Containern können Sie vorhandene unveränderte Containeranwendungen der meisten gängigen Programmiersprachen-Runtimes (Python, Node, Java usw.) in der Intel SGX-basierten Trusted Execution Environment (TEE) ausführen. Für dieses Paketerstellungsmodell sind in der Regel weder Quellcodeänderungen noch eine Neukompilierung erforderlich, und es ist die schnellste Methode für die Ausführung in Intel SGX-Enklaven. Ein typischer Bereitstellungsprozess für die Ausführung Ihrer Standard-Docker-Container erfordert einen Open-Source-SGX-Wrapper oder eine Azure-Partnerlösung. In diesem Paketerstellungs- und Ausführungsmodell wird jede Containeranwendung in der vertrauenswürdigen Grenze (Enklave) und mit einer hardwarebasierten, von Intel SGX CPU erzwungenen Isolation geladen. Jeder Container, der in einer Enklave ausgeführt wird, erhält seinen eigenen Arbeitsspeicher-Verschlüsselungsschlüssel, der von der Intel SGX-CPU bereitgestellt wird. Dieses Modell funktioniert gut für fertige Containeranwendungen, die auf dem Markt erhältlich sind, oder für benutzerdefinierte Apps, die derzeit auf universellen Knoten ausgeführt werden. Um einen vorhandenen Docker-Container auszuführen, benötigen Anwendungen auf vertraulichen Computerknoten eine Intel Software Software Guard Extensions (SGX)-Wrappersoftware, um die Containerausführung innerhalb der Grenzen spezieller CPU-Anweisungssätze zu unterstützen. SGX erstellt eine direkte Ausführung an die CPU, um das Gastbetriebssystem (Os), das Hostbetriebssystem oder den Hypervisor aus der Vertrauensgrenze zu entfernen. Dieser Schritt reduziert die gesamte Oberflächenangriffsfläche und Sicherheitsrisiken, und erreicht gleichzeitig die Isolation auf Prozessebene innerhalb eines einzelnen Knotens.

Der gesamte Prozess für die Ausführung unveränderter Container umfasst Änderungen an der Art, wie Ihr Container heute gepackt wird, wie unten beschrieben.

Diagram of confidential container conversion, with new steps for enabling Intel SGX and AKS.

Die SGX-Wrappersoftware, die zum Ausführen von Standardcontainern benötigt wird, wird von Azure-Softwarepartnern oder OSS-Lösungen (Open-Source Software) bereitgestellt.

Grundvoraussetzungen für Partner

Entwickler können Softwareanbieter je nach Features, je nach Diensten zur Integration in Azure und je nach Toolunterstützung auswählen.

Wichtig

Bei Azure-Softwarepartnern werden häufig zusätzlich zu Ihrer Azure-Infrastruktur Lizenzierungsgebühren fällig. Prüfen Sie daher die Bestimmungen für jede einzelne Partnersoftware.

Fortanix

Fortanix verfügt über Portal- und CLI-Funktionen (Command Line Interface), um ihre Containeranwendungen in SGX-fähige vertrauliche Container zu konvertieren. Sie müssen die Anwendung nicht ändern oder neu kompilieren. Fortanix bietet die Flexibilität, eine vielzahl von Anwendungen auszuführen und zu verwalten. Sie können vorhandene Anwendungen, neue native Enclave-Anwendungen und vorgepackte Anwendungen verwenden. Beginnen Sie mit der Enclave Manager-Benutzeroberfläche oder den REST-APIsvon Fortanix. Erstellen Sie vertrauliche Container mithilfe der Fortanix-Schnellstartanleitung für AKS.

Diagram of Fortanix deployment process, showing steps to move applications to confidential containers and deploy.

SCONE (Scontain)

SCONE-Sicherheitsrichtlinien (Scontain) generieren Zertifikate, Schlüssel und Geheimnisse. Nur Dienste mit Nachweis für eine Anwendung sehen diese Anmeldeinformationen. Anwendungsdienste stellen automatisch über TLS einen Nachweis füreinander her. Sie müssen die Anwendungen oder TLS nicht ändern. Weitere Informationen finden Sie in der Flask-Anwendungsdemovon SCONE.

SCONE kann die meisten vorhandenen Binärdateien in Anwendungen konvertieren, die in Enclaves ausgeführt werden. Darüber hinaus schützt SCONE interpretierte Sprachen wie Python, da sowohl Datendateien als auch Python-Codedateien verschlüsselt werden. Sie können SCONE-Sicherheitsrichtlinien verwenden, um verschlüsselte Dateien vor unberechtigtem Zugriff, Änderungen und Rollbacks zu schützen. Weitere Informationen finden Sie in der SCONE-Dokumentation zur Verwendung von SCONE mit einer vorhandenen Python-Anwendung.

Diagram of SCONE workflow, showing how SCONE processes binary images.

Sie können SCONE auf Azure Confidential Computing-Knoten mit AKS bereitstellen, indem Sie diesem SCONE-Beispiel für die AKS-Anwendungsbereitstellung folgen.

Anjuna

Anjuna stellt SGX-Plattformsoftware bereit, mit der Container unverändert in AKS ausgeführt werden können. Weitere Informationen finden Sie in der Dokumentation zu Funktionen und Beispielanwendungenvon Anjuna.

Beginnen Sie mit einer Redis Cache-Beispielanwendung und einer benutzerdefinierten Python-Anwendung hier.

Diagram of Anjuna's process, showing how containers are run on Azure confidential computing.

Grundvoraussetzungen für OSS

Hinweis

Azure Confidential Computing und Microsoft sind diesen Projekten und Lösungen nicht direkt zugeordnet.

Gramine

Gramine ist ein einfaches Gastbetriebssystem zur Ausführung einer einzelnen Linux-Anwendung mit minimalen Hostanforderungen. Gramine kann Anwendungen in einer isolierten Umgebung ausführen. Es gibt Toolunterstützung für das Konvertieren vorhandener Docker-Container in SGX-bereite Container.

Weitere Informationen finden Sie in Gramines Beispielanwendung und -bereitstellung in AKS

Occlum

Occlum ist ein arbeitsspeichersicheres Multiprozess-Bibliotheksbetriebssystem (LibOS) für Intel SGX. Damit können ältere Anwendungen mit nur geringfügigen oder ganz ohne Änderungen am Quellcode unter SGX ausgeführt werden. Occlum schützt die Vertraulichkeit von Benutzerworkloads auf transparente Weise und erlaubt gleichzeitig eine einfache Migration per Lift & Shift zu vorhandenen Dockeranwendungen.

Weitere Informationen finden Sie unter Occlums Bereitstellungsanweisungen und Beispiel-Apps auf AKS.

Marblerun

Marblerun ist ein Orchestrierungsframework für vertrauliche Container. Es erleichtert die Ausführung und Skalierung vertraulicher Dienste auf SGX-fähigem Kubernetes. Marblerun übernimmt Standardaufgaben wie das Überprüfen der Dienste in Ihrem Cluster, Verwalten der zugehörigen Geheimnisse und Herstellen von Enclave-to-Enclave-mTLS-Verbindungen zwischen ihnen. Marblerun stellt außerdem sicher, dass Ihr Cluster vertraulicher Container einem Manifest entspricht, das in einfachem JSON-Code definiert ist. Sie können das Manifest mit externen Clients per Remotenachweis überprüfen.

Kurz gesagt, erweitert Marblerun die Vertraulichkeits-, Integritäts- und Überprüfbarkeitseigenschaften einer einzelnen Enclave auf einen Kubernetes-Cluster.

Marblerun unterstützt vertrauliche Container, die mit Graphene, Occlum und EGo erstellt wurden, mit Beispielen für jedes SDK. Das Framework wird in Kubernetes zusammen mit Ihren vorhandenen cloudnativen Tools ausgeführt. Es gibt eine CLI und Helm-Diagramme. Auch Confidential Computing-Knoten werden in AKS unterstützt. Befolgen Sie die Anleitung von Ergrun, um Zulauf in AKS bereitzustellen.

Referenzarchitekturen für vertrauliche Container

Setzen Sie sich mit uns in Verbindung

Haben Sie Fragen zu Ihrer Implementierung? Möchten Sie ein Enabler für vertrauliche Container werden? Senden Sie eine E-Mail an acconaks@microsoft.com.

Nächste Schritte