Festplattenverschlüsselung mit KMS CMK - Amazon EMR

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.

Festplattenverschlüsselung mit KMS CMK

EMR Serverless verschlüsselt standardmäßig alle Festplatten, die an Worker angeschlossen sind, mithilfe von diensteigenen Verschlüsselungsschlüsseln. Sie können diese Festplatten optional mit Ihren eigenen, vom AWS KMS Kunden verwalteten Schlüsseln () verschlüsseln. CMKs Auf diese Weise haben Sie mehr Kontrolle über Ihre Verschlüsselungsschlüssel, einschließlich der Möglichkeit, wichtige Richtlinien festzulegen und zu verwalten und die Verwendung von Schlüsseln zu überprüfen.

Sie können die Festplattenverschlüsselung entweder bei der Erstellung einer Anwendung oder beim Senden einzelner Jobs konfigurieren. Wenn sie auf Anwendungsebene aktiviert ist, erben alle Jobs in dieser Anwendung die Verschlüsselungseinstellungen. Sie können auch die Standardeinstellung der Anwendung außer Kraft setzen, indem Sie beim Absenden eines Jobs eine Festplattenverschlüsselungskonfiguration angeben.

Anmerkung

EMR Serverless Disk Encryption unterstützt nur symmetrische KMS-Schlüssel. Asymmetrische KMS-Schlüssel werden nicht unterstützt. Sie müssen einen KMS-Schlüssel für die symmetrische Verschlüsselung verwenden, der in erstellt wurde. AWS KMS Weitere Informationen zu finden Sie AWS KMS unter Was ist AWS KMS?

Verschlüsselungskontext verwenden

Optional verwendet EMR Serverless den Verschlüsselungskontext, um zusätzliche authentifizierte Daten für Verschlüsselungsvorgänge bereitzustellen. Der Verschlüsselungskontext besteht aus einer Reihe von Schlüssel-Wert-Paaren, die nicht geheime zusätzliche authentifizierte Daten enthalten können. Der Verschlüsselungskontext ist kryptografisch an die verschlüsselten Daten gebunden, sodass für die Entschlüsselung der Daten derselbe Verschlüsselungskontext erforderlich ist.

In EMR Serverless können Sie den benutzerdefinierten Verschlüsselungskontext bei der Konfiguration der Festplattenverschlüsselung angeben. Dieser Verschlüsselungskontext ist in AWS CloudTrail Protokollen enthalten, um Ihnen zu helfen, Ihre KMS-Operationen zu identifizieren und zu verstehen.

Anmerkung

Speichern Sie vertrauliche Informationen nicht im Verschlüsselungskontext, da sie in AWS CloudTrail Protokollen als Klartext erscheinen.

Konfiguration der Festplattenverschlüsselung mit vom Kunden verwalteten Schlüsseln

CreateApplication

Um Festplatten mit Ihrem eigenen KMS-Schlüssel zu verschlüsseln, fügen Sie den diskEncryptionConfiguration Parameter bei der Erstellung einer EMR Serverless-Anwendung hinzu.

aws emr-serverless create-application \ --type TYPE \ --name APPLICATION_ID \ --release-label RELEASE_LABEL \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'

UpdateApplication

Um den and/or ARN-Verschlüsselungskontext für den KMS-Schlüssel zu aktualisieren, geben Sie beim Aktualisieren einer Anwendung den diskEncryptionConfiguration Parameter mit den neuen Werten an.

aws emr-serverless update-application \ --name APPLICATION_ID \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'
Anmerkung

Um die konfigurierte Festplattenverschlüsselung für eine Anwendung aufzuheben, übergeben Sie diskEncryptionConfiguration beim Aktualisieren der Anwendung einen leeren Wert.

StartJobRun

Um Festplatten mit Ihrem eigenen KMS-Schlüssel zu verschlüsseln, verwenden Sie die diskEncryptionConfiguration Konfiguration, wenn Sie eine Jobausführung einreichen.

--configuration-overrides '{ "diskEncryptionConfiguration": { "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } } }'

Öffentliche Livy-Endpunkte

Um Festplatten mit Ihrem eigenen KMS-Schlüssel zu verschlüsseln, wenn Sie Spark-Sitzungen über öffentliche Livy-Endpunkte erstellen, geben Sie die Verschlüsselungskonfiguration im Sitzungsobjekt an. conf

data = { "kind": "pyspark", "heartbeatTimeoutInSecond": 60, "conf": { "emr-serverless.session.executionRoleArn": "role_arn", "spark.emr-serverless.disk.encryptionKeyArn": "key-arn", "spark.emr-serverless.disk.encryptionContext": "key1:value1,key2:value2" # Optional } } # Send request to create a session with the Livy API endpoint request = AWSRequest(method='POST', url=endpoint + "/sessions", data=json.dumps(data), headers=headers)

Erforderliche Berechtigungen für die Festplattenverschlüsselung

Verschlüsselungsschlüsselberechtigungen für EMR Serverless

Wenn Sie Festplatten mit Ihrem eigenen Verschlüsselungsschlüssel verschlüsseln, müssen Sie die folgenden KMS-Schlüsselberechtigungen für den Prinzipal konfigurieren: emr-serverless.amazonaws.com

  • kms:GenerateDataKey: Um Datenschlüssel für die Verschlüsselung von Festplattenvolumes zu generieren

  • kms:Decrypt: Zum Entschlüsseln von Datenschlüsseln beim Zugriff auf verschlüsselte Festplatteninhalte

{ "Effect": "Allow", "Principal":{ "Service": "emr-serverless.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:emr-serverless:region:aws-account-id:/applications/application-id" }, "StringEquals": { "kms:EncryptionContext:applicationId": "application-id", "aws:SourceAccount": "aws-account-id" } } }

Aus Sicherheitsgründen empfehlen wir, der KMS-Schlüsselrichtlinie einen aws:SourceArn Bedingungsschlüssel hinzuzufügen. Der globale IAM-Bedingungsschlüssel aws:SourceArn trägt dazu bei, dass EMR Serverless den KMS-Schlüssel nur für einen Anwendungs-ARN verwendet. Darüber hinaus bietet die Aufnahme des aws:SourceAccount Bedingungsschlüssels eine weitere Sicherheitsebene, da die Verwendung Ihres KMS-Schlüssels auf Anfragen beschränkt wird, die von der in der Bedingung angegebenen AWS Konto-ID stammen.

Die IAM-Richtlinie der Job-Runtime-Rolle muss über die folgenden Berechtigungen verfügen:

{ "Sid": "Enable GDK and Decrypt", "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }

Erforderliche Benutzerberechtigungen

Der Benutzer, der den Job einreicht, muss über die Berechtigungen zur Verwendung des Schlüssels verfügen. Sie können die Berechtigungen entweder in der KMS-Schlüsselrichtlinie oder in der IAM-Richtlinie für den Benutzer, die Gruppe oder die Rolle angeben. Wenn der Benutzer, der den Job einreicht, nicht über die KMS-Schlüsselberechtigungen verfügt, lehnt EMR Serverless die Übermittlung der Auftragsausführung ab.

Beispiel für eine Schlüsselrichtlinie

Die folgende wichtige Richtlinie bietet die Berechtigungen für und: kms:DescribeKey kms:GenerateDataKey kms:Decrypt

  • kms:DescribeKey: Um zu überprüfen, ob der vom Kunden verwaltete KMS-Schlüssel aktiviert und SYMMETRISCH ist, bevor Sie ihn verwenden.

{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Enable GDK and Decrypt", "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "emr-serverless.region.amazonaws.com", "kms:EncryptionContext:key": "value" } } }

Aus Sicherheitsgründen empfehlen wir, der KMS-Schlüsselrichtlinie einen kms:viaService Bedingungsschlüssel hinzuzufügen. Dadurch wird die Verwendung des KMS-Schlüssels auf Überprüfungsanforderungen beschränkt, die nur von EMR-serverlos gesendet werden.

Beispiel für eine IAM-Richtlinie

Die folgende IAM-Richtlinie bietet die Berechtigungen für, und. kms:DescribeKey kms:GenerateDataKey kms:Decrypt

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }

Überwachung der Schlüsselnutzung

Sie können die Verwendung Ihrer vom Kunden verwalteten Schlüssel in EMR Serverless über überwachen. AWS CloudTrail AWS CloudTrail erfasst alle API-Aufrufe AWS KMS als Ereignisse, einschließlich Aufrufe von der EMR Serverless-Konsole, der EMR Serverless API, der AWS CLI oder dem SDK. AWS

Zu den erfassten Informationen gehört der von Ihnen angegebene Verschlüsselungskontext, der Ihnen helfen kann, die spezifischen EMR-Serverless-Ressourcen zu identifizieren und zu prüfen, die Ihren KMS-Schlüssel verwendet haben. Möglicherweise finden Sie unter Ereignisse, die den folgenden ähneln. AWS CloudTrail Weitere Informationen zur Verwendung AWS CloudTrail finden Sie im AWS CloudTrail Benutzerhandbuch.

GenerateDataKey

Beispielereignis für GenerateDataKey Operationen, bei denen EMR Serverless verschlüsselte Festplattenvolumes erstellt

{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "principalId": "user", "invokedBy": "AWS Internal" }, "eventTime": "2025-07-28T21:43:51Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "ipAddress", "userAgent": "userAgent", "requestParameters": { "encryptionContext": { "applicationId": "test" }, "keyId": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "145c963debe558dfb01848d2a4539da940f3478852f86cfe2f52d5df796a5a02" }, "requestID": "cc9d1c5e-97c4-4a4f-ae7a-e576sample", "eventID": "0b0fef09-f28d-4da8-a5a1-17b74sample", "readOnly": true, "resources": [ { "accountId": "account", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "accountId", "eventCategory": "Management" }

Decrypt

Beispielereignis für Decrypt-Operationen, wenn EMR Serverless auf verschlüsselte Daten zugreift.

{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "principalId": "user", "invokedBy": "AWS Internal" }, "eventTime": "2025-07-28T21:43:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "ipAddress", "userAgent": "userAgent", "requestParameters": { "encryptionContext": { "applicationId": "test" }, "keyId": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample", "keySpec": "AES_256" }, "responseElements": null, "additionalEventData": { "keyMaterialId": "145c963debe558dfb01848d2a4539da940f3478852f86cfe2f52d5df796a5a02" }, "requestID": "cc9d1c5e-97c4-4a4f-ae7a-e576sample", "eventID": "0b0fef09-f28d-4da8-a5a1-17b74sample", "readOnly": true, "resources": [ { "accountId": "account", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:accountId:key/ffffffff-fffff-aaaaa-eeee-sample" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "accountId", "eventCategory": "Management" }

Weitere Informationen

Die folgenden Ressourcen enthalten weitere Informationen zur Datenverschlüsselung im Ruhezustand: