Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cifrado de disco con KMS CMK
EMR Serverless cifra todos los discos conectados a los trabajadores de forma predeterminada mediante claves de cifrado propiedad del servicio. Si lo desea, puede optar por cifrar estos discos con sus propias AWS KMS claves administradas por el cliente (). CMKs Esto le proporciona un mayor control sobre sus claves de cifrado, incluida la posibilidad de establecer y mantener políticas de claves y auditar el uso de las claves.
Puede configurar el cifrado del disco al crear una solicitud o al enviar trabajos individuales. Cuando se habilita en el nivel de la aplicación, todos los trabajos de esa aplicación heredan la configuración de cifrado. También puede anular la configuración predeterminada de la aplicación especificando una configuración de cifrado de disco al enviar un trabajo.
nota
El cifrado de disco EMR Serverless solo admite claves KMS simétricas. No se admiten claves de KMS asimétricas. Debe usar una clave KMS de cifrado simétrico que se creó en. AWS KMS Para obtener más información AWS KMS, consulte ¿Qué es? AWS KMS
Uso del contexto de cifrado
Opcionalmente, EMR Serverless utiliza el contexto de cifrado para proporcionar datos autenticados adicionales para las operaciones de cifrado. El contexto de cifrado es un conjunto de pares clave-valor que pueden contener datos autenticados adicionales no secretos. El contexto de cifrado está vinculado criptográficamente a los datos cifrados, por lo que se requiere el mismo contexto de cifrado para descifrar los datos.
En EMR Serverless, puede especificar el contexto de cifrado personalizado al configurar el cifrado de disco. Este contexto de cifrado se incluye en AWS CloudTrail los registros para ayudarle a identificar y comprender sus operaciones de KMS.
nota
No almacene información confidencial en un contexto de cifrado, ya que aparece en texto plano en AWS CloudTrail los registros.
Configuración del cifrado de disco con claves administradas por el cliente
CreateApplication
Para cifrar los discos con su propia clave KMS, incluya el diskEncryptionConfiguration parámetro al crear una aplicación 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
Para actualizar el contexto de and/or cifrado ARN de la clave KMS, especifique el diskEncryptionConfiguration parámetro con los nuevos valores al actualizar una aplicación.
aws emr-serverless update-application \ --name APPLICATION_ID \ --region AWS_REGION \ --disk-encryption-configuration '{ "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } }'
nota
Para anular el cifrado de disco configurado en una aplicación, pase una aplicación vacía diskEncryptionConfiguration durante la actualización.
StartJobRun
Para cifrar los discos con su propia clave KMS, utilice la diskEncryptionConfiguration configuración cuando envíe una ejecución de trabajo.
--configuration-overrides '{ "diskEncryptionConfiguration": { "encryptionKeyArn": "key-arn", "encryptionContext": { "key": "value" } } }'
Puntos finales de Public Livy
Para cifrar los discos con tu propia clave KMS al crear sesiones de Spark a través de puntos finales públicos de Livy, especifica la configuración de cifrado en el objeto de la sesión. 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)
Permisos necesarios para el cifrado del disco
Permisos de clave de cifrado para EMR Serverless
Al cifrar los discos con su propia clave de cifrado, debe configurar los siguientes permisos de clave KMS para el principal: emr-serverless.amazonaws.com
-
kms:GenerateDataKey: Para generar claves de datos para cifrar volúmenes de disco -
kms:Decrypt: Para descifrar las claves de datos al acceder al contenido del disco cifrado
{ "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" } } }
Como práctica recomendada de seguridad, le sugerimos que agregue una clave de condición aws:SourceArn a la política de claves de KMS. La clave de condición global de IAM aws:SourceArn ayuda a garantizar que EMR sin servidor utilice la clave de KMS solo para un ARN de aplicación. Además, la inclusión de la clave de aws:SourceAccount condición proporciona otro nivel de seguridad al restringir el uso de la clave KMS a las solicitudes que se originen en el identificador de AWS cuenta especificado en la condición.
El rol de tiempo de ejecución del trabajo debe tener los siguientes permisos en su política de IAM:
{ "Sid": "Enable GDK and Decrypt", "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
Permisos de usuario necesarios
El usuario que envía el trabajo debe tener permisos para usar la clave. Puede especificar los permisos en la política de claves de KMS o en la política de IAM para el usuario, el grupo o el rol. Si el usuario que envía el trabajo carece de los permisos clave de KMS, EMR sin servidor rechaza el envío de la ejecución del trabajo.
Política de claves de ejemplo
La siguiente política clave proporciona los permisos para kms:DescribeKey kms:GenerateDataKey ykms:Decrypt:
-
kms:DescribeKey: Para comprobar que la clave de KMS gestionada por el cliente está habilitada y es SIMÉTRICA antes de utilizarla.
{ "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" } } }
Como práctica recomendada de seguridad, le sugerimos que agregue una clave de condición kms:viaService a la política de claves de KMS. Limita el uso de la clave KMS a las solicitudes de validación solo desde emr-serverless.
Política de IAM de ejemplo
La siguiente política de IAM proporciona los permisos para, y. kms:DescribeKey kms:GenerateDataKey kms:Decrypt
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "key-arn" } }
Supervisión del uso de claves
Puede monitorear el uso de las claves administradas por el cliente en EMR Serverless mediante. AWS CloudTrail AWS CloudTrail captura todas las llamadas a la API AWS KMS como eventos, incluidas las llamadas desde la consola EMR Serverless, la API EMR Serverless, la CLI o el SDK. AWS AWS
La información capturada incluye el contexto de cifrado que especificó, que puede ayudarle a identificar y auditar los recursos EMR Serverless específicos que utilizaron su clave KMS. Por ejemplo, es posible que vea eventos similares a los siguientes en. AWS CloudTrail Para obtener más información sobre su uso AWS CloudTrail, consulte la Guía AWS CloudTrail del usuario.
GenerateDataKey
Ejemplo de evento para GenerateDataKey operaciones cuando EMR Serverless crea volúmenes de disco cifrados
{ "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
Ejemplo de evento para operaciones de descifrado cuando EMR Serverless accede a datos cifrados.
{ "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" }
Más información
Los siguientes recursos proporcionan más información sobre cifrado de datos en reposo.
-
Para obtener más información sobre las prácticas recomendadas de seguridad AWS KMS, consulte la Guía para AWS KMS desarrolladores.