Wie Amazon EMR AWS KMS nutzt - AWS Key Management Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wie Amazon EMR AWS KMS nutzt

Wenn Sie einen Amazon-EMR-Cluster verwenden, können Sie den Cluster zum Verschlüsseln von Daten im Ruhezustand konfigurieren, bevor Sie sie in einem persistenten Speicher ablegen. Sie können ruhende Daten im EMR-Dateisystem (EMRFS) und/oder auf den Speicher-Volumes von Cluster-Knoten verschlüsseln. Sie können Data-at-Rest mit einem AWS KMS key verschlüsseln. In den folgenden Themen wird erläutert, wie ein Amazon-EMR-Cluster einen KMS-Schlüssel zum Verschlüsseln von Daten im Ruhezustand verwendet.

Wichtig

Amazon EMR unterstützt nur symmetrische KMS-Schlüssel. Sie können keinen asymmetrischen KMS-Schlüssel verwenden, um Data-at-Rest in einem Amazon-EMR-Cluster zu verschlüsseln. Informationen zur Feststellung, ob ein KMS-Schlüssel symmetrisch oder asymmetrisch ist, finden Sie unter Erkennen asymmetrischer KMS-Schlüssel.

Amazon-EMR-Cluster verschlüsseln auch Daten während der Übertragung, was bedeutet, dass der Cluster Daten vor der Übertragung über das Netzwerk verschlüsselt. Sie können einen KMS-Schlüssel verwenden, um Daten während der Übertragung zu verschlüsseln. Weitere Information erhalten Sie unter Verschlüsselung von Daten während der Übertragung im Amazon-EMR-Management-Handbuch.

Weitere Informationen über alle in Amazon EMR verfügbaren Verschlüsselungsoptionen finden Sie unter Verschlüsselungsoptionen im Amazon-EMR-Management-Handbuch.

Verschlüsseln von Daten auf dem EMR-Dateisystem (EMRFS)

Amazon-EMR-Cluster verwenden zwei verteilte Dateisysteme:

  • Das Hadoop Distributed File System (HDFS). Die HDFS-Verschlüsselung verwendet keinen KMS-Schlüssel in AWS KMS.

  • Das EMR File System (EMRFS). Das EMRFS ist eine Implementierung von HDFS, das es Amazon-EMR-Clustern ermöglicht, Daten in Amazon Simple Storage Service (Amazon S3) zu speichern. EMRFS unterstützt vier Verschlüsselungsoptionen, wovon zwei einen KMS-Schlüssel in AWS KMS verwenden. Weitere Informationen über alle in Amazon EMR verfügbaren Verschlüsselungsoptionen finden Sie unter Verschlüsselungsoptionen im Amazon-EMR-Management-Handbuch.

Die zwei EMRFS-Verschlüsselungsoptionen, die einen KMS-Schlüssel verwenden, um die folgenden von Amazon S3 angebotenen Verschlüsselungsfunktionen zu nutzen:

Wenn Sie einen Amazon-EMR-Cluster konfigurieren, um Daten auf EMRFS mit SSE-KMS oder CSE-KMS zu verschlüsseln, wählen Sie den KMS-Schlüssel in , den Amazon S3 oder der Amazon-EMR-Cluster verwenden soll. Für SSE-KMS können Sie den Von AWS verwalteter Schlüssel für Amazon S3 mit dem Alias aws/s3 oder einen von Ihnen erstellten symmetrischen kundenverwalteten Schlüssel auswählen. Für CSE-KMS müssen Sie einen von Ihnen erstellten symmetrischen kundenverwalteten Schlüssel auswählen. Wenn Sie einen kundenverwalteten Schlüssel auswählen, müssen Sie sicherstellen, dass der Amazon-EMR-Cluster über die Berechtigung zur Nutzung des KMS-Schlüssels verfügt. Weitere Information erhalten Sie unter Verschlüsselung von Daten mit AWS KMS keys im Amazon-EMR-Management-Handbuch.

Für beide, SSE-KMS und CSE-KMS, ist der von Ihnen gewählte KMS-Schlüssel der Stammschlüssel in einem Envelope-Verschlüsselungs-Workflow. Die Daten werden mit einem eindeutigenDatenschlüsseldas ist unter dem KMS-Schlüssel verschlüsseltAWS KMSaus. Die verschlüsselten Daten und eine verschlüsselte Kopie des Datenschlüssels werden zusammen als einzelnes verschlüsseltes Objekt in einem S3-Bucket verschlüsselt. Weitere Informationen dazu finden Sie in den folgenden Themen.

Prozess für das Verschlüsseln von Daten auf EMRFS mit SSE-KMS

Wenn Sie für einen Amazon-EMR-Cluster für die Verwendung von SSE-KMS konfigurieren, läuft der Verschlüsselungsprozess folgendermaßen ab:

  1. Der Cluster sendet Daten zu Amazon S3 zur Speicherung in einem S3-Bucket.

  2. Amazon S3 sendet eine GenerateDataKey Anforderung an AWS KMS, in der die Schlüssel-ID des KMS-Schlüssels angegeben wird, den Sie bei der Konfiguration des Clusters für die Verwendung von SSE-KMS ausgewählt haben. Die Anforderung enthält Verschlüsselungskontext; weitere Informationen finden Sie unter Verschlüsselungskontext.

  3. AWS KMS generiert einen eindeutigen Datenverschlüsselungsschlüssel (Datenschlüssel) und sendet dann zwei Kopien dieses Datenschlüssels an Amazon S3. Eine Kopie ist unverschlüsselt (Klartext) und die andere Kopie ist mit dem KMS-Schlüssel verschlüsselt.

  4. Amazon S3 verschlüsselt die in Schritt 1 erhaltenen Daten mit dem Klartext-Datenschlüssel und entfernt diesen Klartext-Datenschlüssel anschließend schnellstmöglich aus dem Arbeitsspeicher.

  5. Amazon S3 speichert die verschlüsselten Daten und eine verschlüsselte Kopie des Datenschlüssels zusammen als einzelnes verschlüsseltes Objekt in einem S3-Bucket.

Die Entschlüsselung funktioniert wie folgt:

  1. Der Cluster fordert ein verschlüsseltes Datenobjekt von einem S3-Bucket an.

  2. Amazon S3 extrahiert den verschlüsselten Datenschlüssel aus dem S3-Objekt und sendet dann den verschlüsselten Datenschlüssel an AWS KMS mit einer Decrypt-Anforderung. Die Anforderung enthält einen Verschlüsselungskontext.

  3. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mit dem gleichen KMS-Schlüssel, der für die Verschlüsselung verwendet wurde, und sendet dann den entschlüsselten (Klartext-) Datenschlüssel an Amazon S3.

  4. Amazon S3 verwendet den Klartext-Datenschlüssel, um die verschlüsselten Daten zu entschlüsseln, und entfernt den Klartext-Datenschlüssel anschließend schnellstmöglich aus dem Arbeitsspeicher.

  5. Amazon S3 sendet die entschlüsselten Daten an den Cluster.

Prozess für das Verschlüsseln von Daten auf EMRFS mit CSE-KMS

Wenn Sie für einen Amazon-EMR-Cluster die Verwendung von CSE-KMS konfigurieren, läuft der Verschlüsselungsprozess folgendermaßen ab:

  1. Wenn es bereit ist, Daten in Amazon S3 zu speichern, sendet der Cluster eine GenerateDataKey Anforderung an AWS KMS, in der die Schlüssel-ID des KMS-Schlüssels angegeben wird, den Sie bei der Konfiguration des Clusters für die Verwendung von CSE-KMS ausgewählt haben. Die Anforderung enthält Verschlüsselungskontext; weitere Informationen finden Sie unter Verschlüsselungskontext.

  2. AWS KMS generiert einen eindeutigen Datenverschlüsselungsschlüssel (Datenschlüssel) und sendet dann zwei Kopien dieses Datenschlüssels an den Cluster. Eine Kopie ist unverschlüsselt (Klartext) und die andere Kopie ist mit dem KMS-Schlüssel verschlüsselt.

  3. Der Cluster verwendet den Klartext-Datenschlüssel, um die Daten zu verschlüsseln, und entfernt den Klartext-Datenschlüssel anschließend schnellstmöglich aus dem Arbeitsspeicher.

  4. Der Cluster kombiniert die verschlüsselten Daten und eine verschlüsselte Kopie des Datenschlüssels in einem einzelnen verschlüsselten Objekt.

  5. Der Cluster sendet das verschlüsselte Objekt zum Speichern an Amazon S3.

Die Entschlüsselung funktioniert wie folgt:

  1. Der Cluster fordert das verschlüsselte Datenobjekt von einem S3-Bucket an.

  2. Amazon S3 sendet das verschlüsselte Objekt an den Cluster.

  3. Der Cluster extrahiert den verschlüsselte Datenschlüssel aus dem verschlüsselten Objekt und sendet dann den verschlüsselten Datenschlüssel mit einer AWS KMSEntschlüsselungsanforderung an . Die Anforderung enthält einen Verschlüsselungskontext.

  4. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mit dem gleichen KMS-Schlüssel, der für die Verschlüsselung verwendet wurde, und sendet dann den entschlüsselten (Klartext) Datenschlüssel an den Cluster.

  5. Der Cluster verwendet den Klartext-Datenschlüssel, um die verschlüsselten Daten zu entschlüsseln, und entfernt den Klartext-Datenschlüssel anschließend schnellstmöglich aus dem Arbeitsspeicher.

Verschlüsseln von Daten auf den Speicher-Volumes von Cluster-Knoten

Ein Amazon-EMR-Cluster ist eine Sammlung von Amazon Elastic Compute Cloud (Amazon EC2)-Instances. Jede Instance in einem Cluster wird als Cluster-Knoten oder Knoten bezeichnet. Jeder Knoten kann zwei Arten von Speicher-Volumes besitzen: Instance-Speicher-Volumes und Amazon Elastic Block Store (Amazon EBS)-Volumes. Sie können den Cluster auf die Verwendung von Linux Unified Key Setup (LUKS) einstellen, um beide Arten von Speicher-Volumen auf dem Knoten zu verschlüsseln (aber nicht das Start-Volume jedes Knotens). Dies wird als lokale Laufwerksverschlüsselung bezeichnet.

Wenn Sie die lokale Laufwerksverschlüsselung für einen Cluster aktivieren, können Sie den LUKS-Schlüssel mit einem KMS-Schlüssel in AWS KMS verschlüsseln. Sie müssen einen kundenverwalteten Schlüssel auswählen, den Sie erstellen. Sie können keinen Von AWS verwalteter Schlüssel verwenden. Wenn Sie einen kundenverwalteten Schlüssel auswählen, müssen Sie sicherstellen, dass der Amazon-EMR-Cluster über die Berechtigung zur Nutzung des KMS-Schlüssels verfügt. Weitere Information erhalten Sie unter Verschlüsselung von Daten mit AWS KMS keys im Amazon-EMR-Management-Handbuch.

Wenn Sie die lokale Laufwerksverschlüsselung mit einem KMS-Schlüssel aktivieren, läuft der Verschlüsselungsprozess folgendermaßen ab:

  1. Wenn jeder Cluster-Knoten gestartet wird, sendet er eine GenerateDataKey Anforderung an AWS KMS, in der die Schlüssel-ID des KMS-Schlüssels angegeben wird, den Sie ausgewählt haben, als Sie die lokale Festplattenverschlüsselung für den Cluster aktiviert haben.

  2. AWS KMS generiert einen eindeutigen Datenverschlüsselungsschlüssel (Datenschlüssel) und sendet dann zwei Kopien dieses Datenschlüssels an den Knoten. Eine Kopie ist unverschlüsselt (Klartext) und die andere Kopie ist unter dem KMS-Schlüssel verschlüsselt.

  3. Der Knoten verwendet eine base64-verschlüsselte Version des Klartext-Datenschlüssels als Passwort, um den LUKS-Schlüssel zu schützen. Der Knoten speichert die verschlüsselte Kopie des Datenschlüssel in seinem Start-Volume.

  4. Wenn der Knoten neu gestartet wird, sendet der neu gestartete Knoten den verschlüsselten Datenschlüssel mit einer AWS KMSDecrypt-Anforderung an .

  5. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mit dem gleichen KMS-Schlüssel, der für die Verschlüsselung verwendet wurde, und sendet den entschlüsselten (Klartext) Datenschlüssel an den Knoten.

  6. Der Knoten verwendet die base64-verschlüsselte Version des Klartext-Datenschlüssels als Passwort, um den LUKS-Schlüssel freizuschalten.

Verschlüsselungskontext

Jeder in AWS KMS integrierte AWS-Service kann einen Verschlüsselungskontext angeben, wenn er AWS KMS verwendet, um Datenschlüssel zu erstellen bzw. um Daten zu verschlüsseln oder zu entschlüsseln. Der Verschlüsselungskontext enthält zusätzliche authentifizierte Informationen, anhand derer AWS KMS die Datenintegrität überprüft. Wenn ein Service für Verschlüsselungsoperation ein Verschlüsselungskontext angibt, muss der Service denselben Verschlüsselungskontext auch für die entsprechende Entschlüsselungsoperation angeben. Andernfalls schlägt die Entschlüsselung fehl. Der Verschlüsselungskontext wird zudem in AWS CloudTrail-Protokolldateien geschrieben, sodass Sie jederzeit nachvollziehen können, warum ein bestimmter KMS-Schlüssel verwendet wurde.

Der folgende Abschnitt erläutert den Verschlüsselungskontext, der in jedem Amazon-EMR-Verschlüsselungsszenario verwendet wird, das einen KMS-Schlüssel nutzt.

Verschlüsselungskontext für die EMRFS-Verschlüsselung mit SSE-KMS

Bei SSE-KMS sendet der Amazon-EMR-Cluster Daten an Amazon S3 und Amazon S3 verwendet dann einen KMS-Schlüssel, um die Daten vor dem Speichern in einem S3-Bucket zu verschlüsseln. In diesem Fall verwendet Amazon S3 den Amazon-Ressourcennamen (ARN) des S3-Objekts als Verschlüsselungskontext für jede - GenerateDataKey und Decrypt-Anforderung, die an gesendet wirdAWS KMS. Das folgende Beispiel zeigt eine JSON-Darstellung des von Amazon S3 verwendeten Verschlüsselungskontextes:

{ "aws:s3:arn" : "arn:aws:s3:::S3_bucket_name/S3_object_key" }

Verschlüsselungskontext für die EMRFS-Verschlüsselung mit CSE-KMS

Bei CSE-KMS verwendet der Amazon-EMR-Cluster einen KMS-Schlüssel, um die Daten vor dem Senden an Amazon S3 für die Speicherung zu verschlüsseln. In diesem Fall verwendet der Cluster den Amazon-Ressourcennamen (ARN) des KMS-Schlüssels als Verschlüsselungskontext für jede - GenerateDataKey und Decrypt-Anforderung, die er an sendetAWS KMS. Das folgende Beispiel zeigt eine JSON-Darstellung des vom Cluster verwendeten Verschlüsselungskontextes.

{ "kms_cmk_id" : "arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef" }

Verschlüsselungskontext für die Laufwerksverschlüsselung mit LUKS

Wenn ein Amazon-EMR-Cluster die lokale Festplattenverschlüsselung mit LUKS verwendet, geben die Cluster-Knoten keinen Verschlüsselungskontext mit den Anforderungen GenerateDataKey und Decrypt an, die sie an sendenAWS KMS.