Criptografia de logs - Amazon EMR

Criptografia de logs

Criptografia de logs do EMR Sem Servidor com armazenamento gerenciado

Para criptografar logs no armazenamento gerenciado com sua própria chave do KMS, use a configuração managedPersistenceMonitoringConfiguration ao enviar uma execução de trabalho.

{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration" : { "encryptionKeyArn": "key-arn" } } }

Criptografia de logs do EMR Sem Servidor com buckets do Amazon S3

Para criptografar logs no bucket do Amazon S3 com sua própria chave do KMS, use a configuração s3MonitoringConfiguration ao enviar uma execução de trabalho.

{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/", "encryptionKeyArn": "key-arn" } } }

Criptografia de logs do EMR Sem Servidor com o Amazon CloudWatch

Para criptografar logs no Amazon CloudWatch com sua própria chave do KMS, use a configuração cloudWatchLoggingConfiguration ao enviar uma execução de trabalho.

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, "encryptionKeyArn": "key-arn" } } }

Permissões necessárias para criptografia de logs

Permissões obrigatórias do usuário

O usuário que envia o trabalho ou exibe os logs ou as interfaces de usuário da aplicação deve ter permissões para usar a chave. Você pode especificar as permissões na política de chave do KMS ou na política do IAM para o usuário, grupo ou perfil. Se o usuário que envia o trabalho não tiver as permissões da chave do KMS, o EMR Sem Servidor rejeitará o envio da execução do trabalho.

Exemplo de política de chaves

A seguinte política de chave fornece permissões para kms:GenerateDataKey e kms:Decrypt:

{ "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

Exemplo de política do IAM

A seguinte política do IAM fornece as permissões para kms:GenerateDataKey e kms:Decrypt:

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

Para iniciar a interface de usuário do Spark ou Tez, você deve conceder aos usuários, grupos ou perfis permissões para acessar a API emr-serverless:GetDashboardForJobRun da seguinte forma:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "emr-serverless:GetDashboardForJobRun" ] } }

Permissões de chave de criptografia para Amazon S3 e armazenamento gerenciado

Ao criptografar logs com sua própria chave de criptografia no armazenamento gerenciado ou nos buckets do S3, você deve configurar as permissões da chave do KMS da forma a seguir.

A entidade principal do emr-serverless.amazonaws.com deve ter as seguintes permissões na política da chave do KMS:

{ "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" } } }

Como uma prática recomendada de segurança, adicione uma chave de condição aws:SourceArn à política de chave do KMS. A chave de condição global do IAM aws:SourceArn ajuda a garantir que o EMR Sem Servidor use a chave do KMS somente para o ARN da aplicação.

O perfil de runtime do trabalho deve ter as seguintes permissões na política do IAM:

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

Permissões de chave de criptografia do Amazon CloudWatch

Para associar o ARN da chave do KMS ao seu grupo de logs, use a política do IAM a seguir no perfil de runtime do trabalho.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:Região da AWS:111122223333:log-group:my-log-group-name:*" ] } }

Configure a política de chave do KMS para conceder permissões do KMS ao Amazon CloudWatch:

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.Região da AWS.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:Região da AWS:111122223333:*" } } } }