Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Chiffrement de disque avec KMS CMK
EMR Serverless chiffre tous les disques connectés aux ordinateurs par défaut à l'aide de clés de chiffrement appartenant au service. Vous pouvez éventuellement choisir de chiffrer ces disques à l'aide de vos propres clés gérées par AWS KMS le client (CMKs). Cela vous permet de mieux contrôler vos clés de chiffrement, notamment d'établir et de maintenir des politiques relatives aux clés, ainsi que d'auditer l'utilisation des clés.
Vous pouvez configurer le chiffrement du disque soit lors de la création d'une application, soit lors de la soumission de tâches individuelles. Lorsqu'elles sont activées au niveau de l'application, toutes les tâches de cette application héritent des paramètres de chiffrement. Vous pouvez également remplacer la valeur par défaut de l'application en spécifiant une configuration de chiffrement de disque lors de la soumission d'une tâche.
Note
Le chiffrement de disque EMR sans serveur ne prend en charge que les clés KMS symétriques. Les clés KMS asymétriques ne sont pas prises en charge. Vous devez utiliser une clé KMS de chiffrement symétrique créée dans AWS KMS. Pour plus d'informations AWS KMS, voir Qu'est-ce que c'est AWS KMS ?
Utilisation du contexte de chiffrement
EMR Serverless utilise éventuellement un contexte de chiffrement pour fournir des données authentifiées supplémentaires pour les opérations de chiffrement. Le contexte de chiffrement est un ensemble de paires clé-valeur qui peuvent contenir des données authentifiées supplémentaires non secrètes. Le contexte de chiffrement étant lié cryptographiquement aux données chiffrées, le même contexte de chiffrement est requis pour déchiffrer les données.
Dans EMR Serverless, vous pouvez spécifier le contexte de chiffrement personnalisé lors de la configuration du chiffrement du disque. Ce contexte de chiffrement est inclus dans AWS CloudTrail les journaux pour vous aider à identifier et à comprendre vos opérations KMS.
Note
Ne stockez pas d'informations sensibles dans un contexte de chiffrement tel qu'elles apparaissent en texte clair dans les AWS CloudTrail journaux.
Configuration du chiffrement des disques à l'aide de clés gérées par le client
CreateApplication
Pour chiffrer des disques avec votre propre clé KMS, incluez le diskEncryptionConfiguration paramètre lors de la création d'une application EMR Serverless.
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
Pour mettre à jour le contexte de and/or chiffrement ARN de la clé KMS, spécifiez le diskEncryptionConfiguration paramètre avec les nouvelles valeurs lors de la mise à jour d'une application.
aws emr-serverless update-application \ --name APPLICATION_ID \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'
Note
Pour annuler le chiffrement de disque configuré sur une application, transmettez une application vide diskEncryptionConfiguration lors de la mise à jour.
StartJobRun
Pour chiffrer des disques avec votre propre clé KMS, utilisez la diskEncryptionConfiguration configuration lorsque vous soumettez une exécution de tâche.
--configuration-overrides '{ "diskEncryptionConfiguration": { "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } } }'
Points de terminaison Public Livy
Pour chiffrer des disques avec votre propre clé KMS lors de la création de sessions Spark via des points de terminaison publics Livy, spécifiez la configuration de chiffrement dans l'objet de la session. 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)
Autorisations requises pour le chiffrement du disque
Autorisations relatives aux clés de chiffrement pour EMR Serverless
Lorsque vous chiffrez des disques avec votre propre clé de chiffrement, vous devez configurer les autorisations de clé KMS suivantes pour le emr-serverless.amazonaws.com principal :
-
kms:GenerateDataKey: pour générer des clés de données afin de chiffrer les volumes de disque -
kms:Decrypt: pour déchiffrer les clés de données lors de l'accès au contenu chiffré du disque
{ "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" } } }
Pour des raisons de sécurité, nous vous recommandons d'ajouter une clé de aws:SourceArn condition à la politique de clé KMS. La clé de condition globale IAM aws:SourceArn permet de garantir qu'EMR Serverless utilise la clé KMS uniquement pour l'ARN d'une application. En outre, l'inclusion de la clé de aws:SourceAccount condition fournit un niveau de sécurité supplémentaire en limitant l'utilisation de votre clé KMS aux demandes provenant de l'identifiant de AWS compte spécifié dans la condition.
Le rôle d'exécution des tâches doit disposer des autorisations suivantes dans sa politique IAM :
{ "Sid": "Enable GDK and Decrypt", "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
Autorisations utilisateur requises
L'utilisateur qui soumet la tâche doit être autorisé à utiliser la clé. Vous pouvez spécifier les autorisations dans la politique clé KMS ou dans la stratégie IAM pour l'utilisateur, le groupe ou le rôle. Si l'utilisateur qui soumet la tâche ne possède pas les autorisations nécessaires à la clé KMS, EMR Serverless rejette la soumission de l'exécution de la tâche.
Exemple de politique de clé
La politique clé suivante fournit les autorisations nécessaires pour kms:DescribeKey kms:GenerateDataKey et kms:Decrypt :
-
kms:DescribeKey: pour vérifier que la clé KMS gérée par le client est activée et SYMÉTRIQUE avant de l'utiliser.
{ "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" } } }
Pour des raisons de sécurité, nous vous recommandons d'ajouter une clé de kms:viaService condition à la politique de clé KMS. Il limite l'utilisation de la clé KMS aux demandes de validation provenant uniquement d'emr-serverless.
Exemple de politique IAM
La politique IAM suivante fournit les autorisations pourkms:DescribeKey, kms:GenerateDataKey etkms:Decrypt.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
Surveillance de l'utilisation des clés
Vous pouvez surveiller l'utilisation des clés gérées par vos clients dans EMR Serverless via. AWS CloudTrail AWS CloudTrail capture tous les appels d'API AWS KMS sous forme d'événements, y compris les appels provenant de la console EMR Serverless, de l'API EMR Serverless, de la CLI ou du SDK. AWS AWS
Les informations capturées incluent le contexte de chiffrement que vous avez spécifié, qui peut vous aider à identifier et à auditer les ressources EMR Serverless spécifiques qui ont utilisé votre clé KMS. Par exemple, vous pouvez voir des événements similaires aux suivants dans AWS CloudTrail. Pour plus d'informations sur l'utilisation AWS CloudTrail, consultez le guide de AWS CloudTrail l'utilisateur.
GenerateDataKey
Exemple d'événement pour les GenerateDataKey opérations lorsque EMR Serverless crée des volumes de disque chiffrés
{ "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
Exemple d'événement pour les opérations de déchiffrement lorsque EMR Serverless accède à des données chiffrées.
{ "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" }
En savoir plus
Les ressources suivantes fournissent plus d'informations sur le chiffrement des données au repos.
-
Pour plus d'informations sur AWS KMS les concepts de base, consultez le guide du AWS KMS développeur.
-
Pour plus d'informations sur les meilleures pratiques de sécurité pour AWS KMS, consultez le guide du AWS KMS développeur.