Cifrado de registros de Amazon EMR en EKS con almacenamiento administrado - Amazon EMR

Cifrado de registros de Amazon EMR en EKS con almacenamiento administrado

En las secciones siguientes, se muestra cómo configurar el cifrado de registros.

Enable encryption

Para cifrar los registros del almacenamiento administrado con su propia clave KMS, utilice la siguiente configuración al enviar una ejecución de trabajos.

"monitoringConfiguration": { "managedLogs": { "allowAWSToRetainLogs":"ENABLED", "encryptionKeyArn":"KMS key arn" }, "persistentAppUI": "ENABLED" }

La configuración allowAWSToRetainLogs le permite a AWS retener los registros del espacio de nombres del sistema cuando se ejecuta un trabajo con el FGAC nativo. La configuración persistentAppUI le permite a AWS guardar los registros de eventos que se utilizan para generar la interfaz de usuario de Spark. encryptionKeyArn se usa para especificar el ARN de la clave de KMS que quiere usar para cifrar los registros almacenados por AWS.

Permisos necesarios para el cifrado de registros

El usuario que envía el trabajo o revisa la interfaz del usuario de Spark debe tener permitidas las acciones kms:DescribeKey, kms:GenerateDataKey y kms:Decrypt para la clave del cifrado. Estos permisos se utilizan para verificar la validez de la clave y comprobar que el usuario tiene los permisos necesarios para leer y escribir los registros cifrados con la clave KMS. Si el usuario que envía el trabajo carece de los permisos clave necesarios, Amazon EMR en EKS rechaza el envío de la ejecución del trabajo.

Ejemplo de política de IAM para el rol utilizado para llamar a StartJobrun

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "emr-containers:StartJobRun" ], "Resource": [ "*" ], "Effect": "Allow", "Sid": "AllowEMRCONTAINERSStartjobrun" }, { "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:*:*:key/key-id" ], "Effect": "Allow", "Sid": "AllowKMSDescribekey" } ] }

También debe configurar la clave KMS para permitir que las entidades principales de servicio persistentappui.elasticmapreduce.amazonaws.com y elasticmapreduce.amazonaws.com accedan a kms:GenerateDataKey y kms:Decrypt. Esto le permite a EMR leer y escribir registros cifrados con la clave KMS en el almacenamiento gestionado.

Ejemplo de política de claves de KMS

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "*" ], "Condition": { "StringLike": { "kms:viaService": "emr-containers.*.amazonaws.com" } }, "Sid": "AllowKMSDescribekey" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ], "Condition": { "StringLike": { "kms:viaService": "emr-containers.*.amazonaws.com", "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id" } }, "Sid": "AllowKMSDecryptGenerate" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ], "Condition": { "StringLike": { "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id" }, "ArnLike": { "aws:SourceArn": "arn:aws:emr-containers:*:*:/virtualclusters/virtual_cluster_id" } }, "Sid": "AllowKMSDecryptService" } ] }

Como práctica recomendada de seguridad, le sugerimos que agregue las condiciones kms:viaService, kms:EncryptionContext y aws:SourceArn. Estas condiciones ayudan a garantizar que solo Amazon EMR en EKS utilice la clave y que esta solo se utilice para los registros generados a partir de trabajos que se ejecutan en un clúster virtual específico.