

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criptografar logs do Amazon EMR no EKS com armazenamento gerenciado
<a name="security_iam_fgac-logging-kms"></a>

As seções a seguir mostram como configurar a criptografia para logs.

## Habilitar criptografia
<a name="security_iam_fgac-logging-perms"></a>

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

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

A `allowAWSToRetainLogs` configuração permite AWS reter os registros do namespace do sistema ao executar um trabalho usando o FGAC nativo. A `persistentAppUI` configuração permite AWS salvar registros de eventos que são usados para gerar a interface do usuário do Spark. `encryptionKeyArn` é usado para especificar o ARN da chave do KMS que você deseja usar para criptografar os log armazenados pela AWS. 

## Permissões necessárias para criptografia de logs
<a name="security_iam_fgac-logging-kms-perms"></a>

O usuário que envia o trabalho ou visualiza a IU do Spark deve ter permissão para as ações `kms:DescribeKey`, `kms:GenerateDataKey` e `kms:Decrypt` para a chave de criptografia. Essas permissões são usadas para verificar a validade da chave e confirmar que o usuário possui as permissões necessárias para ler e gravar logs criptografados com a chave do KMS. Se o usuário que envia o trabalho não tiver as permissões necessárias, o Amazon EMR no EKS rejeitará o envio da execução do trabalho.

**Exemplo de política do IAM para a função usada para chamar 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"
    }
  ]
}
```

------

Você também deve configurar a chave do KMS para permitir as entidades principais `persistentappui.elasticmapreduce.amazonaws.com` e `elasticmapreduce.amazonaws.com` para `kms:GenerateDataKey` e `kms:Decrypt`. Isso permite que o EMR leia e grave logs criptografados com a chave do KMS no armazenamento gerenciado.

**Exemplo de política de chave do 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áticas recomendadas de segurança, recomendamos que você adicione as condições `kms:EncryptionContext`, `kms:viaService` e `aws:SourceArn`. Essas condições ajudam a garantir que a chave seja usada somente pelo Amazon EMR no EKS e usada exclusivamente para logs gerados a partir de trabalhos executados em um cluster virtual específico.