

# Configurar criptografia no AWS Glue
<a name="set-up-encryption"></a>

O seguinte exemplo de fluxo de trabalho destaca as opções a serem configuradas quando você usa criptografia com AWS Glue. O exemplo demonstra o uso de chaves específicas do AWS Key Management Service (AWS KMS), mas você pode escolher outras configurações com base nas suas necessidades específicas. Esse fluxo de trabalho destaca apenas as opções que pertencem a criptografia ao configurar o AWS Glue. 

1. Se o usuário do console do AWS Glue não usar uma política de permissões que permita todas as operações de API do AWS Glue (por exemplo, `"glue:*"`), verifique se as seguintes ações são permitidas:
   + `"glue:GetDataCatalogEncryptionSettings"`
   + `"glue:PutDataCatalogEncryptionSettings"`
   + `"glue:CreateSecurityConfiguration"`
   + `"glue:GetSecurityConfiguration"`
   + `"glue:GetSecurityConfigurations"`
   + `"glue:DeleteSecurityConfiguration"`

1. Qualquer cliente que acesse ou grave em um catálogo criptografado, ou seja, qualquer usuário do console, crawler, trabalho ou endpoint de desenvolvimento, precisa das permissões a seguir.

1. Qualquer usuário ou função que acesse uma senha de conexão criptografada precisa das permissões a seguir.

1. A função de qualquer trabalho de extração, transformação e carregamento (ETL) que grave dados criptografados no Amazon S3 precisa das permissões a seguir.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Action": [
         "kms:Decrypt",
         "kms:Encrypt",
         "kms:GenerateDataKey"
       ],
       "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id"
     }
   }
   ```

------

1. Qualquer crawler ou trabalho de ETL que grave Amazon CloudWatch Logs criptografados requer as permissões a seguir nas políticas de chave e do IAM.

   Na política de chave (não na política do IAM):

   ```
   {
    	"Effect": "Allow",
    	"Principal": {
    		"Service": "logs.region.amazonaws.com"
    	},
    	"Action": [
    		"kms:Encrypt*",
    		"kms:Decrypt*",
    		"kms:ReEncrypt*",
    		"kms:GenerateDataKey*",
    		"kms:Describe*"
    	],
    	"Resource": "<arn of key used for ETL/crawler cloudwatch encryption>"
    }
   ```

   Para obter mais informações sobre políticas de chave, consulte [Usar políticas de chave no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) no *Guia do desenvolvedor do AWS Key Management Service*.

   Na política do IAM, anexe a permissão `logs:AssociateKmsKey`:

   ```
   {
    	"Effect": "Allow",
    	"Principal": {
    		"Service": "logs.region.amazonaws.com"
    	},
    	"Action": [
    		"logs:AssociateKmsKey"
    	],
    	"Resource": "<arn of key used for ETL/crawler cloudwatch encryption>"
    }
   ```

1. Qualquer trabalho de ETL que use um marcador de trabalho criptografado precisa das permissões a seguir.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Action": [
         "kms:Decrypt",
         "kms:Encrypt"
       ],
       "Resource": "arn:aws:kms:us-east-1:111122223333:key/*"
     }
   }
   ```

------

1. No console do AWS Glue, selecione **Settings (Configurações)** no painel de navegação.

   1. Na página **Data catalog settings** (Configurações do catálogo de dados), criptografe o Data Catalog selecionando **Metadata encryption** (Criptografia de metadados). Essa opção criptografa todos os objetos no Data Catalog com a chave do AWS KMS que você escolher.

   1.  Em **Chave do AWS KMS**, escolha **aws/glue**. Também é possível escolher uma chave do AWS KMS criada por você.
**Importante**  
AWS GlueO só oferece suporte a chaves mestras do cliente (CMKs) simétricas. A lista de **chaves do AWS KMS** exibe apenas chaves simétricas. No entanto, se você selecionar Escolher um **ARN de chave AWS KMS**, o console permitirá que você insira um ARN para qualquer tipo de chave. Certifique-se de inserir apenas ARNs para chaves simétricas.

   Quando a criptografia estiver habilitada, o cliente que estiver acessando o Data Catalog deverá ter permissões do AWS KMS. 

1. No painel de navegação, escolha **Security configurations (Configurações de segurança)**. Uma configuração de segurança é um conjunto de propriedades de segurança que pode ser usado para configurar processos do AWS Glue. Em seguida, escolha **Add security configuration (Adicionar configuração de segurança)**. Na configuração, escolha qualquer uma das opções a seguir: 

   1. Selecione **S3 encryption (Criptografia do S3)**. Para **Encryption mode (Modo de criptografia)**, escolha **SSE-KMS**. Para a **chave do AWS KMS**, escolha **aws/s3** (certifique-se de que o usuário tenha permissão para usar essa chave). Isso permite que os dados gravados pelo trabalho no Amazon S3 usem a chave do AWS KMS do AWS Glue gerenciada pela AWS.

   1. Selecione **CloudWatch logs encryption (Criptografia do CloudWatch Logs)** e escolha uma CMK. (Verifique se o usuário tem permissão para usar essa chave). Para obter mais informações, consulte [Criptografar dados de log no CloudWatch Logs usando o AWS KMS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) no *Guia do desenvolvedor do AWS Key Management Service*.
**Importante**  
AWS GlueO só oferece suporte a chaves mestras do cliente (CMKs) simétricas. A lista de **chaves do AWS KMS** exibe apenas chaves simétricas. No entanto, se você selecionar Escolher um **ARN de chave AWS KMS**, o console permitirá que você insira um ARN para qualquer tipo de chave. Certifique-se de inserir apenas ARNs para chaves simétricas.

   1. Selecione **Advanced properties (Propriedades avançadas)** e **Job bookmark encryption (Criptografia do marcador de trabalho)**. Para a **chave do AWS KMS**, escolha **aws/glue** (certifique-se de que o usuário tenha permissão para usar essa chave). Isso habilita a criptografia de marcadores de trabalho gravados no Amazon S3 com a chave do AWS KMS do AWS Glue.

1. No painel de navegação, escolha ** Connections**.

   1. Escolha **Add connection (Adicionar conexão)** para criar uma conexão com o armazenamento de dados JDBC (Java Database Connectivity) que é o destino do seu trabalho de ETL.

   1. Para garantir que a criptografia do Secure Sockets Layer (SSL) seja usada, selecione **Require SSL connection (Exigir conexão SSL)** e teste a conexão.

1. No painel de navegação, escolha **Tarefas**. 

   1. Escolha **Add job (Adicionar trabalho)** para criar um trabalho que transforme dados. 

   1. Na definição de tarefa, escolha a configuração de segurança que você criou. 

1. No console do AWS Glue, execute o trabalho sob demanda. Verifique se os dados do Amazon S3 e os CloudWatch Logs gravados pelo trabalho, e os marcadores de trabalho, estão criptografados.