Bearbeiten

Confidential Computing auf Plattformen für das Gesundheitswesen

Azure Kubernetes Service (AKS)

Dieser Artikel veranschaulicht eine Lösung, die im Rahmen von Azure Confidential Computing (ACC) zur Verfügung steht, mit der Daten während ihrer Verwendung verschlüsselt werden können.

Aufbau

Abbildung der Verwendung von Confidential Computing für die Plattform aus dem Gesundheitswesen: Die Plattform umfasst ein Krankenhaus, den Anbieter einer medizinischen Plattform und einen Diagnoseanbieter.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Die Abbildung zeigt einen Entwurf der Architektur. Für das gesamte System gilt Folgendes:

  • Die Netzwerkkommunikation wird während der Übertragung TLS-verschlüsselt.
  • Azure Monitor überwacht die Leistung der Komponenten, und Azure Container Registry (ACR) verwaltet die Container der Lösung.

Workflow

Diese Lösung beinhaltet die folgenden Einzelschritte:

  1. Ein Angestellter eines lokalen Krankenhauses öffnet ein Webportal. Bei der gesamten Web-App handelt es sich um eine statische Azure Blob Storage-Website.
  2. Der Angestellte gibt Daten im Webportal des Krankenhauses ein. Das Webportal stellt eine Verbindung zu einer Flask-basierten und in Python geschriebenen Web-API her, die von einem erfolgreichen Anbieter für medizinische Plattformen entwickelt wurde. Ein vertraulicher Knoten in der Confidential-Computing-Software SCONE schützt die Patientendaten. SCONE wird innerhalb eines AKS-Clusters ausgeführt, für den die Software Guard Extensions (SGX) aktiviert wurden, die dafür sorgen, dass der Container in einer Enclave ausgeführt wird. Die Web-API bietet einen Beweis, dass die vertraulichen Daten und der App-Code verschlüsselt und in einer Trusted Execution Environment isoliert werden. Das bedeutet, keine Personen, Prozesse oder Protokolle können auf die Klartextdaten oder den Anwendungscode zugreifen.
  3. Der Client der Web-App des Krankenhauses fordert an, dass ein Nachweisdienst (Azure Attestation) diesen Beweis überprüft, und erhält ein signiertes Nachweistoken, das von anderen Apps überprüft werden kann.
  4. Wenn für die Web-API weitere Komponenten (z. B. ein Redis-Cache) erforderlich sind, kann sie das Nachweistoken übergeben, um zu überprüfen, ob die Daten und der Anwendungscode eine sichere Enclave bisher nicht verlassen haben. Sehen Sie sich zur Überprüfung Schritt 6 an.
  5. Die Web-API kann auch Remotedienste verwenden, z. B. ein Machine Learning-Modell, das von einer dritten Partei (Diagnoseanbieter) gehostet wird. Dabei werden weiterhin Nachweistoken als Beweis übergeben, dass die erforderlichen Enclaves sicher sind. Die Web-API könnte auch versuchen, Nachweistoken für die Infrastruktur des Diagnoseanbieters zu empfangen und überprüfen.
  6. Die Remoteinfrastruktur akzeptiert das Nachweistoken der Web-API der medizinischen Plattform und überprüft es mithilfe eines öffentlichen Zertifikats, das im Azure Attestation-Dienst zu finden ist. Wenn das Token überprüft wurde, kann mit nahezu absoluter Sicherheit gesagt werden, dass die Enclave sicher ist und dass weder Daten noch Anwendungscode außerhalb der Enclave verfügbar gemacht wurden.
  7. Der Diagnoseanbieter ist sich sicher, dass die Daten nicht verfügbar gemacht wurden, und er sendet sie an seine eigene Enclave auf einem ONNX-Runtimeserver (Open Neural Network Exchange). Ein KI-Modell interpretiert die medizinischen Bilder und gibt Diagnoseergebnisse zurück an die vertrauliche Web-API-App der medizinischen Plattform. Dort kann die Software dann mit Patientendaten interagieren und/oder mit anderen Krankenhausmitarbeitern in Kontakt treten.

Komponenten

  • Azure Blob Storage liefert statische Inhalte wie HTML-, CSS- und JavaScript-Code sowie Bilddateien direkt aus einem Speichercontainer.

  • Azure Attestation ist eine einheitliche Lösung, die remote die Vertrauenswürdigkeit einer Plattform überprüft. Azure Attestation überprüft außerdem remote die Integrität der Binärdateien, die auf der Plattform ausgeführt werden. Verwenden Sie Azure Attestation, um für Vertrauen zur vertraulichen Anwendung zu sorgen.

  • Azure Kubernetes Service vereinfacht das Bereitstellen eines Kubernetes-Clusters.

  • Vertrauliche Computingknoten werden auf einer bestimmten Reihe von VMs gehostet, die vertrauliche Workloads in AKS in einer hardwarebasierten vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE) ausführen können. Dabei wird es Code auf Benutzerebene ermöglicht, private Arbeitsspeicherregionen zu belegen, die als Enclaves bezeichnet werden. Für vertrauliche Computingknoten werden sowohl vertrauliche Container als auch für Enclaves geeignete Container unterstützt.

  • Die SCONE-Plattform ist eine Independent Software Vendor-Lösung (ISV) von Scontain (Azure-Partner).

  • Bei Redis handelt es sich um einen Open-Source-In-Memory-Datenstrukturspeicher.

  • Secure Container Environment (SCONE) unterstützt die Ausführung vertraulicher Anwendungen in Containern, die in einem Kubernetes-Cluster ausgeführt werden.

  • Bei Confidential Inferencing ONNX Runtime Server Enclave (ONNX RT – Enclave) handelt es sich um einen Host, der den ML-Host daran hindert, sowohl auf die Rückschlussanforderung als auch auf die entsprechende Antwort zuzugreifen.

Alternativen

  • Sie können Fortanix anstelle von SCONE verwenden, um vertrauliche Container bereitzustellen, die mit Ihrer containerisierten Anwendung verwendet werden können. Fortanix bietet Ihnen die Flexibilität, die Sie zum Ausführen und Verwalten einer Vielzahl unterschiedlichster Anwendungen benötigen. Das schließt auch bereits vorhandene Anwendungen, neue Enclave-native Anwendungen sowie vorab gepackte Anwendungen ein.

  • Graphene ist ein einfaches Open-Source-Gastbetriebssystem. Graphene kann eine einzelne Linux-Anwendung in einer isolierten Umgebung ausführen. Dabei entstehen Vorteile ähnlich der Ausführung unter einem vollständigen Betriebssystem. Graphene unterstützt verschiedene Tools für das Konvertieren vorhandener Docker-Containeranwendungen in Graphene Shielded Containers-Instanzen (GSC).

Szenariodetails

Wenn Organisationen zusammenarbeiten, teilen sie Informationen miteinander. Die meisten Parteien möchten anderen Parteien jedoch keinen Zugriff auf alle Datenbereiche erteilen. Es gibt Methoden, um Daten sowohl im Ruhezustand als auch während der Übertragung zu schützen. Das Verschlüsseln von Daten während ihrer Verwendung stellt jedoch verschiedene Herausforderungen.

Indem Confidential Computing und Container verwendet werden, bietet diese Lösung eine Möglichkeit für eine vom Anbieter gehostete Anwendung, sicher mit einem Krankenhaus und einem Diagnosedrittanbieter zusammenarbeiten zu können. Azure Kubernetes Service (AKS) hostet Confidential-Computing-Knoten. Azure Attestation sorgt für Vertrauen zum Diagnoseanbieter. Indem diese Azure-Komponenten verwendet werden, isoliert die Architektur die vertraulichen Daten der Krankenhauspatienten, während bestimmte freigegebene Daten in der Cloud verarbeitet werden. Der Zugriff auf die Krankenhausdaten durch den Diagnoseanbieter ist in diesem Fall nicht möglich. Im Rahmen dieser Architektur kann die vom Anbieter gehostete Anwendung auch die Vorteile erweiterter Analysen nutzen. Der Diagnoseanbieter stellt diese Analysemöglichkeiten als Confidential-Computing-Dienste von Machine-Learning-Anwendungen (ML) zur Verfügung.

Mögliche Anwendungsfälle

Confidential Computing wird in vielen Branchen wie folgt genutzt, um die eigenen Daten zu schützen:

  • Schützen von Finanzdaten
  • Schützen von Patientendaten
  • Ausführen von Machine-Learning-Prozessen für vertrauliche Daten
  • Ausführen von Algorithmen für verschlüsselte Datasets aus mehreren Quellen
  • Schützen von Containerdaten und Codeintegrität

Überlegungen

Diese Überlegungen setzen die Säulen des Azure Well-Architected Framework um, das eine Reihe von Leitprinzipien enthält, die zur Verbesserung der Qualität eines Workloads verwendet werden können. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Confidential-Computing-VMs in Azure sind in den Größen der D-Familie (2. Generation) für universelle Zwecke verfügbar. Diese Größen werden allgemein als D-Reihe v2 oder DCsv2-Reihe bezeichnet. In diesem Szenario werden VMs der DCs_v2-Reihe mit Intel SGX mit Betriebssystemimages (Gen2) verwendet. In bestimmten Regionen können Sie jedoch nur bestimmte Größen bereitstellen. Weitere Informationen finden Sie unter Quickstart: Bereitstellen eines virtuellen Azure Confidential Computing-Computers im Marketplace und Verfügbare Produkte nach Region.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Verwenden Sie den Azure-Preisrechner, um die Kosten für eine Umsetzung dieses Szenarios zu ermitteln. Dabei werden alle Azure-Dienste vorkonfiguriert.

Für die auf der Abbildung dargestellte medizinische SaaS-Plattform von Contoso steht ein Beispielkostenprofil zur Verfügung. Sie enthält die folgenden Komponenten:

  • Systemknotenpool und SGX-Knotenpool: keine Datenträger, kurzlebige Datenträger
  • AKS-Lastenausgleich
  • Azure Virtual Network: nominal
  • Azure Container Registry
  • Speicherkonto für Single-Page-Webanwendung (SPA)

Das Profil beinhaltet die folgenden Komponenten nicht:

  • Azure Attestation Service: kostenlos

  • Azure Monitor-Protokolle: nutzungsbasiert

  • ISV-Lizenz für SCONE

  • Die folgenden Compliancedienste sind für Lösungen erforderlich, die vertrauliche Daten verarbeiten:

    • Microsoft Defender für Cloud und Microsoft Defender für Kubernetes
    • Azure DDoS Protection: Netzwerkschutz
    • Azure Firewall
    • Azure Application Gateway und Azure Web Application Firewall
    • Azure-Schlüsseltresor

Bereitstellen dieses Szenarios

Die Bereitstellung in diesem Szenario umfasst die folgenden allgemeinen Schritte:

  • Stellen Sie den vertraulichen Rückschlussserver auf einem vorhandenen AKS-Cluster mit SGX-Aktivierung bereit. Auf GitHub finden Sie unter dem Projekt Confidential ONNX Inference Server weitere Informationen zu diesem Schritt.

  • Konfigurieren Sie Azure Attestation-Richtlinien.

  • Stellen Sie einen AKS-Clusterknotenpool mit SGX-Aktivierung bereit.

  • Beantragen Sie Zugriff auf kuratierte vertrauliche Anwendungen namens SconeApps. SconeApps sind in einem privaten GitHub-Repository verfügbar, das aktuell nur für kommerzielle Kunden über SCONE Standard Edition verfügbar ist. Rufen Sie die SCONE-Website auf, und wenden Sie sich direkt an das Unternehmen, um Zugriff auf diese Dienstebene zu erhalten.

  • Installieren Sie SCONE-Dienste auf Ihrem AKS-Cluster, und führen Sie sie dort aus.

  • Installieren und testen Sie die Flask-basierte Anwendung auf Ihrem AKS-Cluster.

  • Stellen Sie den Webclient bereit, und greifen Sie darauf zu.

Bei diesen Schritten liegt der Fokus auf den Enclavecontainern. Eine geschützte Infrastruktur würde über diese Implementierung hinaus gehen und Complianceanforderungen beinhalten, z. B. zusätzliche gemäß HIPAA erforderliche Schutzmaßnahmen.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Nächste Schritte