Chiffrement des journaux Amazon EMR sur EKS avec un stockage géré - Amazon EMR

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 des journaux Amazon EMR sur EKS avec un stockage géré

Les sections suivantes expliquent comment configurer le chiffrement des journaux.

Activer le chiffrement

Pour chiffrer les journaux du stockage géré à l'aide de votre propre clé KMS, utilisez la configuration suivante lorsque vous soumettez une exécution de tâche.

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

La allowAWSToRetainLogs configuration permet de AWS conserver les journaux des espaces de noms du système lors de l'exécution d'une tâche à l'aide du FGAC natif. La persistentAppUI configuration permet AWS de sauvegarder les journaux d'événements qui sont utilisés pour générer l'interface utilisateur de Spark. Le encryptionKeyArn est utilisé pour spécifier l'ARN de la clé KMS que vous souhaitez utiliser pour chiffrer les journaux stockés par AWS.

Autorisations requises pour le chiffrement des journaux

L'utilisateur qui soumet la tâche ou consulte l'interface utilisateur de Spark doit être autorisé à effectuer kms:DescribeKey les kms:GenerateDataKey actions et kms:Decrypt à obtenir la clé de chiffrement. Ces autorisations sont utilisées pour vérifier la validité de la clé et vérifier que l'utilisateur dispose des autorisations nécessaires pour lire et écrire des journaux chiffrés avec la clé KMS. Si l'utilisateur qui soumet la tâche ne dispose pas des autorisations clés nécessaires, Amazon EMR sur EKS rejette la soumission de l'exécution de la tâche.

Exemple de politique IAM pour le rôle utilisé pour appeler StartJobRun

{ "Version": "2012-10-17", "Statement": [ { "Action": "emr-containers:StartJobRun", "Resource": "*", "Effect": "Allow" }, { "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "KMS key ARN", "Effect": "Allow" } ] }

Vous devez également configurer la clé KMS pour autoriser les persistentappui.elasticmapreduce.amazonaws.com et les principaux elasticmapreduce.amazonaws.com de service à accéder à kms:GenerateDataKey etkms:Decrypt. Cela permet à EMR de lire et d'écrire des journaux chiffrés à l'aide de la clé KMS pour accéder au stockage géré.

Exemple de politique clé KMS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "IAM role ARN used to call StartJobRun" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.region.amazonaws.com" } } }, { "Effect": "Allow", "Principal": { "AWS": "IAM role ARN used to call StartJobRun" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.region.amazonaws.com", "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id" } } }, { "Effect": "Allow", "Principal": { "Service": [ "persistentappui.elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id", "aws:SourceArn": "virtual cluster ARN" } } } ] }

Pour des raisons de sécurité, nous vous recommandons d'ajouter les aws:SourceArn conditions kms:viaServicekms:EncryptionContext, et. Ces conditions permettent de garantir que la clé est uniquement utilisée par Amazon EMR sur EKS et uniquement utilisée pour les journaux générés par des tâches exécutées dans un cluster virtuel spécifique.