AWS Germany – Amazon Web Services in Deutschland
Confidential computing – eine Perspektive von AWS
von David Brown übersetzt durch Desiree Brunner
Kunden auf der ganzen Welt – von Regierungen und stark regulierten Branchen bis hin zu kleinen Unternehmen und Start-ups – vertrauen Amazon Web Services (AWS) ihre sensibelsten Daten und Anwendungen an. Bei AWS hat die Sicherheit und Vertraulichkeit der Workloads unserer Kunden oberste Priorität, und wir unterstützen sie dabei, ihre Datenschutz- und Datenhoheit-Anforderungen zu erfüllen. Unsere Investitionen in Sicherheitstechnologien und strenge Betriebspraktiken erfüllen und übertreffen sogar die anspruchsvollsten Anforderungen unserer Kunden an vertrauliche Datenverarbeitungen und Datenschutz. Im Laufe der Jahre haben wir viele langfristige Investitionen in speziell entwickelte Technologien und Systeme getätigt, um die Sicherheits- und Vertraulichkeitsstandards für unsere Kunden kontinuierlich zu erhöhen.
Seit 2020 hat das Interesse an dem Begriff „confidential computing“ (zu Deutsch „vertrauliches Computing“) in der Branche und in Gesprächen mit unseren Kunden zugenommen. Wir haben festgestellt, dass dieser Begriff auf verschiedene Technologien angewendet wird, die sehr unterschiedliche Probleme lösen, was zu Verwirrung darüberführt, was er tatsächlich bedeutet. Mit unserem Grundsatz, für unsere Kunden zu innovieren, möchten wir Ihnen unsere Sichtweise auf vertrauliche Berechnungen vorstellen.
Bei AWS definieren wir confidential computing als die Verwendung spezialisierter Hardware und zugehöriger Firmware, um Kunden-Code und -daten während der Verarbeitung vor externen Zugriff zu schützen. Confidential computing hat zwei unterschiedliche Dimensionen in Bezug auf Sicherheit und Datenschutz. Die wichtigste Dimension, die wir am häufigsten von Kunden als ihre Hauptanliegen hören, ist der Schutz von Kunden-Code und -daten vor dem Betreiber der zugrunde liegenden Cloud-Infrastruktur. Die zweite Dimension besteht darin, dass Kunden entweder ihre eigenen Workloads in vertrauenswürdigere und weniger vertrauenswürdige Komponenten aufteilen oder ein System entwerfen können. Dieses System ermöglicht es Parteien, die einander nicht oder nicht vollständig vertrauen können, in enger Zusammenarbeit Systeme zu erstellen, während die Vertraulichkeit des Codes und der Daten jeder Partei gewahrt bleibt.
In diesem Beitrag erkläre ich, wie das AWS Nitro-System die Anforderungen der ersten Dimension intrinsisch erfüllt, indem es diese Schutzmaßnahmen für Kunden bereitstellt, die Nitro-basierte Amazon Elastic Compute Cloud (Amazon EC2)-Instances verwenden, ohne dass Code- oder Workload-Änderungen auf Seiten des Kunden erforderlich sind. Ich erkläre auch, wie AWS Nitro Enclaves eine Möglichkeit bietet, vertraute Toolsets und Programmiermodelle zur Erfüllung der Anforderungen der zweiten Dimension zu verwenden. Bevor wir ins Detail gehen, werfen wir einen genaueren Blick auf das Nitro-System.
Was ist das Nitro-System?
Das Nitro-System, die zugrunde liegende Plattform für alle modernen Amazon EC2-Instances, ist ein großartiges Beispiel dafür, wie wir im Namen unserer Kunden erfunden und innoviert haben, um zusätzliche Vertraulichkeit und Datenschutz für ihre Anwendungen bereitzustellen. Seit über zehn Jahren erfinden wir den EC2-Virtualisierungsstapel kontinuierlich neu, indem wir immer mehr Virtualisierungsfunktionen auf dedizierte Hardware und Firmware verschoben haben, und das Nitro-System ist das Ergebnis dieser kontinuierlichen und anhaltenden Innovation. Das Nitro-System besteht aus drei Hauptkomponenten: den Nitro-Karten, dem Nitro-Sicherheitschip und dem Nitro-Hypervisor. Die Nitro-Karten sind dedizierte Hardwarekomponenten mit Rechenleistung, die I/O-Funktionen ausführen, wie die Nitro-Karte für das Amazon Virtual Private Cloud (Amazon VPC), die Nitro-Karte für den Amazon Elastic Block Store (Amazon EBS) und die Nitro-Karte für den Amazon EC2-Instance-Speicher.
Die Nitro-Karten werden von Annapurna Labs, unserem eigenen Tochterunternehmen für Siliziumentwicklung, entworfen, gebaut und getestet, und ermöglichen es uns, wesentliche Virtualisierungsfunktionen von den EC2-Servern – der zugrunde liegenden Host-Infrastruktur, auf der EC2-Instances ausgeführt werden – zu verlagern. Wir haben das Nitro-System mit einem hardwarebasierten Root of Trust mithilfe des Nitro-Sicherheitschips entwickelt, was es uns ermöglicht, das System kryptografisch zu messen und zu validieren. Dies bietet ein wesentlich höheres Maß an Vertrauen als mit herkömmlicher Hardware oder Virtualisierungssystemen erreicht werden kann. Der Nitro-Hypervisor ist ein leichtgewichtiger Hypervisor, der die Speicher- und CPU-Zuweisung verwaltet und Leistungen bietet, die von Bare-Metal nicht zu unterscheiden sind (vor Kurzem haben wir es in unserem Blogpost zur Leistung von Bare-Metal-Instances mit dem AWS Nitro-System verglichen).
Der Nitro-Ansatz für confidential computing
Das Nitro-System bietet drei Hauptarten von Schutzmaßnahmen. Die ersten beiden Schutzmaßnahmen bilden die Schlüsseldimension confidential computing – den Schutz der Kunden vor dem Cloud-Betreiber und vor der Cloud-Systemsoftware – und die dritte verstärkt die zweite Dimension – die Aufteilung der Kunden-Workloads in vertrauenswürdigere und weniger vertrauenswürdige Elemente. Im Zuge des AWS Digital Sovereignty Pledge wird die besondere Rolle das AWS Nitro Systems verdeutlicht.
- Schutz vor Cloud-Betreibern: Bei AWS gestalten wir unsere Systeme so, dass die Vertraulichkeit der Workloads zwischen Kunden und auch zwischen Kunden und AWS gewährleistet ist. Das Nitro-System wurde so konzipiert, dass kein Operator darauf zugreifen kann. Mit dem Nitro-System gibt es keine Möglichkeit für ein System oder eine Person, sich bei EC2-Servern (der zugrunde liegenden Host-Infrastruktur) anzumelden, den Speicher von EC2-Instances zu lesen oder auf Daten zuzugreifen, die auf Instance-Speicher und verschlüsselten EBS-Volumes gespeichert sind. Wenn ein AWS-Operator, einschließlich derjenigen mit den höchsten Privilegien, Wartungsarbeiten am EC2-Server durchführen muss, kann dies nur über eine streng begrenzte Reihe von authentifizierten, autorisierten und überwachten administrativen APIs erfolgen. Keine dieser APIs hat die Fähigkeit, auf Kundendaten auf dem EC2-Server zuzugreifen. Da diese technologischen Beschränkungen in das Nitro-System selbst eingebaut sind, kann kein AWS-Operator diese Kontrollen und Schutzmaßnahmen umgehen. Für zusätzliche Verteidigung in der Tiefe gegen physische Angriffe auf der Speicherschnittstellenebene bieten wir die Speicherverschlüsselung auf verschiedenen EC2-Instances an. Heute ist die Speicherverschlüsselung standardmäßig auf allen AWS Graviton2- und AWS-Graviton3-basierten Instances (T4g, M7g, C7g, C7gn, R7g, X2gd, Im4gn, Is4gen, G5g) und Intel-basierten M6i-Instances und M7a-Instances aktiviert, die Total Memory Encryption (TME) verwenden. EC2-Plattformen basierend auf den AMD Milan- und Genoa-Prozessoren unterstützen Secure Memory Encryption (SME). AWS Nitro System unterstützt ebenfalls die vorherige Generationen EC2-Instances.
- Schutz vor AWS-Systemsoftware: Das einzigartige Design des Nitro-Systems verwendet eine hardwarebasierte Speicherisolation auf niedriger Ebene, um den direkten Zugriff auf den Kundenspeicher zu beseitigen und gleichzeitig die Notwendigkeit für einen Hypervisor auf Bare-Metal-Instances zu eliminieren.
-
- Für virtualisierte EC2-Instances (wie in Abbildung 1 gezeigt) arbeitet der Nitro-Hypervisor mit den zugrunde liegenden Hardware-Virtualisierungssystemen zusammen, um virtuelle Maschinen zu erstellen, die voneinander isoliert sind und auch vom Hypervisor selbst isoliert sind. Netzwerk-, Speicher-, GPU- und Beschleunigerzugriffe verwenden SR-IOV, eine Technologie, die Instances ermöglichen, sicher über eine vom Hypervisor erstellte Durchgangsverbindung direkt mit Hardwaregeräten zu interagieren. Andere EC2-Funktionen, wie Instance-Snapshots und Ruhemodus, werden alle von dedizierten Agenten erleichtert, die eine end-to-end-Speicherverschlüsselung verwenden, auf die AWS-Operatoren keinen Zugriff haben.
- Auf Bare-Metal-EC2-Instances (wie in Abbildung 2 gezeigt) läuft kein Hypervisor auf dem EC2-Server, und Kunden erhalten dedizierten und exklusiven Zugriff auf das gesamte zugrunde liegende Systems Mainboard. Bare-Metal-Instances sind für Kunden konzipiert, die Zugriff auf die physischen Ressourcen für Anwendungen wünschen, die von Hardware-Funktionen auf niedriger Ebene profitieren, wie beispielsweise Performance Counter und Intel® VT, die nicht immer in virtualisierten Umgebungen verfügbar oder vollständig unterstützt sind. Dies gilt auch für Anwendungen, die direkt auf der Hardware ausgeführt werden sollen oder für die Lizenzen und Unterstützung für den Einsatz in nicht-virtualisierten Umgebungen vorgesehen sind. Bare-Metal-Instances bieten die gleichen Speicher-, Netzwerk- und anderen EC2-Funktionen wie virtualisierte Instances, da das Nitro-System alle Systemfunktionen, die normalerweise von der Virtualisierungsebene bereitgestellt werden, auf isolierte und unabhängige Weise mithilfe dedizierter Hardware und speziell entwickelter System-Firmware implementiert. Wir haben genau diese Technologie verwendet, um Amazon EC2 Mac-Instances zur Verfügung zu stellen. Da das Nitro-System über einen unabhängigen Bus arbeitet, können wir Nitro-Karten direkt an die Apple Mac mini-Hardware anschließen, ohne weitere physische Modifikationen vornehmen zu müssen.
- Schutz sensibler Berechnungen und Datenkomponenten vor den eigenen Betreibern und Software der Kunden: Nitro-Enklave bietet die zweite Dimension confidential computing. Nitro-Enklave ist eine gehärtete und stark isolierte Rechenumgebung, die von einer Kunden-EC2-Instance aus gestartet und mit ihr verbunden wird. Standardmäßig besteht keine Möglichkeit für Benutzer (selbst nicht für einen Root- oder Admin-Benutzer) oder für auf der Kunden-EC2-Instance ausgeführte Software, auf die Enklave interaktiv zuzugreifen. Nitro-Enklave verfügt über kryptografische Attestierungsfähigkeiten, die es Kunden ermöglichen zu überprüfen, dass alle in ihre Enklave bereitgestellte Software validiert und nicht manipuliert wurde. Eine Nitro-Enklave bietet den gleichen Schutz vor dem Cloud-Betreiber wie eine normale Nitro-basierte EC2-Instance, ermöglicht jedoch Kunden, ihre eigenen Systeme in Komponenten mit unterschiedlichem Vertrauensniveau aufzuteilen. Eine Nitro-Enklave bietet ein Mittel zum Schutz besonders sensibler Elemente von Kunden-Code und Daten nicht nur vor AWS-Operatoren, sondern auch vor den eigenen Betreibern des Kunden und anderer Software.
Da das Hauptziel von Nitro-Enklave darin besteht, sich gegen die eigenen Benutzer und Software der Kunden auf ihren EC2-Instances zu schützen, betrachtet eine Nitro-Enklave die EC2-Instance als außerhalb ihrer Vertrauensgrenze liegend. Daher teilt eine Nitro-Enklave keinen Speicher oder CPU-Kerne mit der Kunden-Instance. Um die Angriffsfläche erheblich zu reduzieren, verfügt eine Nitro-Enklave auch nicht über eine IP-Netzwerkverbindung und bietet keinen dauerhaften Speicher. Wir haben Nitro-Enklave so konzipiert, dass es eine Plattform ist, die für alle Entwickler ohne fortgeschrittene Kenntnisse der Kryptografie oder der Mikroarchitektur von CPUs leicht zugänglich ist, sodass diese Entwickler schnell und einfach Anwendungen zum Verarbeiten sensibler Daten erstellen können. Gleichzeitig haben wir uns darauf konzentriert, ein vertrautes Entwicklererlebnis zu schaffen, sodass das Entwickeln des vertrauenswürdigen Codes, der in einer Nitro-Enklave ausgeführt wird, genauso einfach ist wie das Schreiben von Code für jede Linux-Umgebung.
Zusammenfassung
Zusammenfassend ermöglicht der einzigartige Ansatz des Nitro-Systems zur Virtualisierung und Isolation unseren Kunden, sensible Datenverarbeitung jederzeit vor AWS-Operatoren und -Software abzusichern und zu isolieren. Es bietet die wichtigste Dimension confidential computing als intrinsische, standardmäßig aktivierte Schutzmaßnahme vor der Systemsoftware und den Cloud-Betreibern und optional über Nitro-Enklave sogar vor der eigenen Software und den eigenen Betreibern der Kunden.
Was kommt als Nächstes?
Wie bereits erwähnt, stellt das Nitro-System unser über zehnjähriges Unterfangen dar, die Standards für Sicherheit und Vertraulichkeit von Rechenworkloads in der Cloud kontinuierlich zu erhöhen. Es hat uns ermöglicht, mehr für unsere Kunden zu tun, als mit Standardtechnologie und -hardware möglich ist. Aber wir werden in den kommenden Monaten weitere Fähigkeiten für vertrauliche Berechnungen hinzufügen.
Wenn Sie Feedback zu diesem Beitrag haben, hinterlassen Sie Kommentare im Kommentarbereich unten.
Möchten Sie mehr Inhalte zu AWS-Sicherheit, Neuigkeiten und Feature-Ankündigungen? Folgen Sie uns auf X (vormals Twitter).