So verwendet Amazon EMR AWS KMS - 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.

So verwendet Amazon EMR AWS KMS

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 Identifizieren Sie verschiedene Schlüsseltypen.

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 Informationen finden Sie unter AWS KMS keys Zur Verschlüsselung verwenden im Amazon EMR Management Guide.

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 eindeutigen Datenschlüssel verschlüsselt, der unter dem KMS-Schlüssel in AWS KMS verschlüsselt wird. 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 GenerateDataKeyAnfrage 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 den verschlüsselten Datenschlüssel dann AWS KMS mit einer Decrypt-Anfrage an. Die Anforderung enthält einen Verschlüsselungskontext.

  3. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mit demselben 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 der Cluster bereit ist, Daten in Amazon S3 zu speichern, sendet er eine GenerateDataKeyAnfrage an AWS KMS, in der er die Schlüssel-ID des KMS-Schlüssels angibt, 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üsselten Datenschlüssel aus dem verschlüsselten Objekt und sendet den verschlüsselten Datenschlüssel dann AWS KMS mit einer Decrypt-Anforderung an. Die Anforderung enthält einen Verschlüsselungskontext.

  4. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mit demselben 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 Informationen finden Sie unter AWS KMS keys Zur Verschlüsselung verwenden im Amazon EMR Management Guide.

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

  1. Wenn jeder Clusterknoten gestartet wird, sendet er eine GenerateDataKeyAnfrage an AWS KMS, in der die Schlüssel-ID des KMS-Schlüssels angegeben wird, den Sie bei der Aktivierung der lokalen Festplattenverschlüsselung für den Cluster ausgewählt 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 AWS KMS mit einer Decrypt-Anfrage an.

  5. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel mit demselben KMS-Schlüssel, mit dem er verschlüsselt wurde, und sendet dann 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 integrierte AWS Dienst AWS KMS kann einen Verschlüsselungskontext angeben, den der Dienst AWS KMS zum Generieren von Datenschlüsseln oder zum Verschlüsseln oder Entschlüsseln von Daten verwendet. Bei dem Verschlüsselungskontext handelt es sich um zusätzliche authentifizierte Informationen, die zur Überprüfung der Datenintegrität AWS KMS verwendet werden. 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 auch in AWS CloudTrail Protokolldateien geschrieben, sodass Sie leichter 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 GenerateDataKeyDecrypt-Anfrage, an AWS KMS die es sendet. 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 GenerateDataKeyDecrypt-Anfrage, an AWS KMS die er sendet. 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 Clusterknoten keinen Verschlüsselungskontext mit den GenerateDataKeyund Decrypt-Anfragen an, an die sie senden. AWS KMS