

# Proteção de dados no AWS Glue
<a name="data-protection"></a>

O AWS Glue oferece vários recursos que foram projetados para ajudar a proteger seus dados.

**Topics**
+ [Criptografar dados em repouso](encryption-at-rest.md)
+ [Criptografia de dados em trânsito](encryption-in-transit.md)
+ [Conformidade com os FIPS](fips-compliance.md)
+ [Gerenciamento de chaves](key-management.md)
+ [Dependência do AWS Glue de outros produtos da AWS](dependency-on-other-services.md)
+ [Endpoints de desenvolvimento](dev-endpoints.md)

# Criptografar dados em repouso
<a name="encryption-at-rest"></a>

O AWS Glue oferece suporte à criptografia de dados em repouso para [Criar trabalhos de ETL visuais](author-job-glue.md) e [Desenvolver scripts com endpoints de desenvolvimento](dev-endpoint.md). Você pode configurar trabalhos de extração, transformação e carregamento (ETL) e endpoints de desenvolvimento para usar chaves do [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) para gravar dados criptografados em repouso. Também é possível criptografar os metadados armazenados no [AWS Glue Data Catalog](components-overview.md#data-catalog-intro) usando chaves que você gerencia com o AWS KMS. Além disso, você pode usar chaves do AWS KMS para criptografar marcadores de trabalho e os logs gerados pelos [crawlers](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) e trabalhos de ETL.

Você pode criptografar objetos de metadados em seu AWS Glue Data Catalog, além dos dados gravados no Amazon Simple Storage Service (Amazon S3) e no Amazon CloudWatch Logs, por trabalhos, crawlers e endpoints de desenvolvimento. Ao criar trabalhos, crawlers e endpoints de desenvolvimentos no AWS Glue, é possível fornecer configurações de criptografia anexando uma configuração de segurança. As configurações de segurança contêm chaves de criptografia no lado do servidor gerenciadas pelo Amazon S3 (SSE-S3) ou chaves mestras do cliente (CMKs) armazenadas no AWS KMS (SSE-KMS). É possível criar configurações de segurança usando o console do AWS Glue.

Também é possível ativar a criptografia de todo o Data Catalog na conta. Faça isso especificando CMKs armazenadas no AWS KMS.

**Importante**  
O AWS Glue oferece suporte somente a chaves gerenciadas pelo cliente simétricas. Para obter mais informações, consulte [Chaves gerenciadas pelo cliente (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) no *Guia do desenvolvedor do AWS Key Management Service*.  


Com a criptografia ativada, quando você adiciona objetos do Data Catalog, executa crawlers ou trabalhos ou inicia endpoints de desenvolvimento, as chaves SSE-S3 ou SSE-KMS são usadas para gravar dados em repouso. Além disso, você pode configurar AWS Glue para acessar apenas armazenamentos de dados Java Database Connectivity (JDBC) por meio de um protocolo Transport Layer Security (TLS) confiável. 

No AWS Glue, você controla as configurações de criptografia nos seguintes locais:
+ As configurações do seu Data Catalog.
+ As configurações de segurança que você cria.
+ A configuração de criptografia no lado do servidor (SSE-S3 ou SSE-KMS) que é transmitida como um parâmetro para o trabalho de ETL (extração, transformação e carregamento) do AWS Glue.

Para obter mais informações sobre como definir a criptografia, consulte [Configurar criptografia no AWS Glue](set-up-encryption.md). 

**Topics**
+ [Como criptografar seu Data Catalog](encrypt-glue-data-catalog.md)
+ [Criptografar senhas de conexão](encrypt-connection-passwords.md)
+ [Criptografar dados gravados pelo AWS Glue](encryption-security-configuration.md)

# Como criptografar seu Data Catalog
<a name="encrypt-glue-data-catalog"></a>

A criptografia do AWS Glue Data Catalog fornece segurança aprimorada para seus dados sensíveis. O AWS Glue se integra ao AWS Key Management Service (AWS KMS) para criptografar metadados armazenados no Catálogo de Dados. Você pode habilitar ou desabilitar as configurações de criptografia para recursos no Catálogo de Dados usando o console do AWS Glue ou a AWS CLI. 

Quando você habilita a criptografia para seu Catálogo de Dados, todos os novos objetos que você criar serão criptografados. Quando você desabilita a criptografia, os novos objetos criados não serão criptografados, mas os objetos criptografados existentes permanecerão criptografados.

Você pode criptografar todo o seu Catálogo de Dados usando chaves de criptografia gerenciadas pela AWS ou chaves de criptografia gerenciadas pelo cliente. Para obter mais informações sobre os principais tipos e estados, consulte [Conceitos do AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html#key-state-cmk-type) no Guia do desenvolvedor do AWS Key Management Service. 

**nota**  
Ao usar o Catálogo de Dados criptografado com um crawler, é necessário manter as configurações de criptografia. A remoção das configurações de criptografia após um crawler processar um catálogo criptografado resulta em erros. Se você precisar remover as configurações de criptografia, crie um novo crawler em vez de modificar o existente.

## AWSChaves gerenciadas pela
<a name="AWS-managed-keys"></a>

 Chaves gerenciadas pelo AWS são chaves do KMS em sua conta que são criadas, gerenciadas e usadas em seu nome por um serviço da AWS integrado ao AWS KMS. É possível visualizar as chaves gerenciadas pela AWS na conta, visualize suas políticas de chaves e audite seu uso nos logs do AWS CloudTrail. No entanto, não é possível gerenciar essas chaves nem alterar suas permissões.

A criptografia em repouso se integra automaticamente com o AWS KMS para gerenciar as chaves gerenciadas pela AWS para o AWS Glue que são usadas para criptografar seus metadados. Se uma chave gerenciada pela AWS não existir quando a criptografia de metadados for habilitada, o AWS KMS criará automaticamente uma nova chave para você. 

Para obter mais informações, consulte [Chaves gerenciadas pela AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).

## Chaves gerenciadas pelo cliente
<a name="customer-managed-keys"></a>

Chaves gerenciadas pelo cliente são chaves do KMS em sua Conta da AWS que você cria, detém e gerencia. Você tem controle total sobre essas chaves KMS. É possível:
+  Estabelecer e manter suas políticas de chaves, políticas do IAM e concessões 
+ Habilitá-las e desabilitá-las
+  Alternar o material criptográfico 
+  Adicionar tags. 
+ Criar aliases que se referem a elas
+  Agendá-las para exclusão

Para obter mais informações sobre como gerenciar as permissões de uma chave gerenciada pelo cliente, consulte [Chaves gerenciadas pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

**Importante**  
O AWS Glue oferece suporte somente a chaves gerenciadas pelo cliente simétricas. A lista de chaves do KMS exibe apenas chaves simétricas. No entanto, se você selecionar **Escolher um ARN de chave do KMS**, o console permitirá que você insira um ARN para qualquer tipo de chave. Certifique-se de inserir apenas ARNs para chaves simétricas.   
Para criar uma chave simétrica gerenciada pelo cliente, siga as etapas para [criar chaves gerenciadas pelo cliente simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) e o Guia do desenvolvedor do AWS Key Management Service. 

Quando você habilita a criptografia do Catálogo de Dados em repouso, os seguintes tipos de recursos são criptografados usando chaves do KMS: 
+ Bancos de dados
+ Tabelas
+ Partições
+ Versões de tabela
+ Estatísticas de colunas
+ Funções definidas pelo usuário
+ Visualizações do Catálogo de Dados

## AWS GlueContexto de criptografia do
<a name="encryption-context"></a>

 Um [contexto de criptografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) é um conjunto opcional de pares de chave-valor que pode conter mais informações contextuais sobre os dados. O AWS KMS usa o contexto de criptografia como [dados autenticados adicionais](https://docs.aws.amazon.com/crypto/latest/userguide/cryptography-concepts.html#term-aad) para comportar [criptografia autenticada](https://docs.aws.amazon.com/crypto/latest/userguide/cryptography-concepts.html#define-authenticated-encryption). Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Para descriptografar dados, é necessário incluir o mesmo contexto de criptografia na solicitação. O AWS Glue usa o mesmo contexto de criptografia em todas as operações criptográficas do AWS KMS, onde a chave é `glue_catalog_id` e o valor é `catalogId`. 

```
"encryptionContext": {
    "glue_catalog_id": "111122223333"
}
```

 Ao usar uma chave gerenciada pela AWS ou uma chave simétrica gerenciada pelo cliente para criptografar seu Catálogo de Dados, você também pode utilizar o contexto de criptografia em registros de auditoria e logs para identificar como a chave está sendo utilizada. O contexto de criptografia também aparece nos logs gerados pelo AWS CloudTrail ou logs do Amazon CloudWatch. 

## Habilitar a criptografia
<a name="enable-encryption"></a>

 Você pode habilitar a criptografia para seus objetos do AWS Glue Data Catalog nas **Configurações do Catálogo de Dados** no console do AWS Glue ou usando a AWS CLI. 

------
#### [ Console ]

**Para habilitar a criptografia usando o console**

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Glue em [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Escolha **Catálogo de Dados** no painel de navegação. 

1. Na página **Configurações do Catálogo de Dados**, marque a caixa de seleção **Criptografia de metadados** e escolha uma chave do AWS KMS. 

   Quando você habilita a criptografia, se você não especificar uma chave gerenciada pelo cliente, as configurações de criptografia usarão uma chave do KMS gerenciada pela AWS. 

1. (Opcional) Quando você usa uma chave gerenciada pelo cliente para criptografar seu Catálogo de Dados, o Catálogo de Dados oferece a opção de registrar um perfil do IAM para criptografar e descriptografar recursos. É necessário conceder ao seu perfil do IAM permissões que o AWS Glue pode assumir em seu nome. Isso inclui permissões do AWS KMS para criptografar e descriptografar dados.

   Quando você cria um novo recurso no Catálogo de Dados, o AWS Glue assume o perfil do IAM fornecido para criptografar os dados. Da mesma forma, quando um consumidor acessa o recurso, o AWS Glue assume o perfil do IAM para descriptografar dados. Se você registrar um perfil do IAM com as permissões necessárias, o responsável pela chamada não precisará mais de permissões para acessar a chave e descriptografar os dados. 
**Importante**  
É possível delegar operações do KMS a um perfil do IAM somente quando uma chave gerenciada pelo cliente for usada para criptografar os recursos do Catálogo de Dados. No momento, o recurso de delegação de perfil do KMS não oferece suporte ao uso de chaves gerenciadas pela AWS para criptografar recursos do Catálogo de Dados.
**Atenção**  
Ao habilitar um perfil do IAM para delegar operações do KMS, você não pode mais acessar os recursos do catálogo de dados que foram criptografados anteriormente com uma chave gerenciada pela AWS. 

   1. Para habilitar um perfil do IAM que AWS Glue pode assumir para criptografar e descriptografar dados em seu nome, selecione a opção **Delegar operações do KMS para um perfil do IAM**. 

   1. Em seguida, escolha um perfil do IAM.

      Para criar um perfil do IAM, consulte [Criar um perfil do IAM para o AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html).

      O perfil do IAM que o AWS Glue assume para acessar o Catálogo de Dados deve ter as permissões para criptografar e descriptografar metadados no Catálogo de Dados. Você pode criar um perfil do IAM e anexar as políticas em linha a seguir: 
      + Adicione a política a seguir para incluir permissões do AWS KMS para criptografar e descriptografar o Catálogo de Dados.

------
#### [ 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>"
            }
          ]
        }
        ```

------
      + Em seguida, adicione a política de confiança a seguir ao perfil para que o serviço AWS Glue assuma o perfil do IAM.

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

****  

        ```
        {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Sid": "",
              "Effect": "Allow",
              "Principal": {
                "Service": "glue.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
            }
          ]
        }
        ```

------
      + Em seguida, adicione a permissão `iam:PassRole` ao perfil do IAM.

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

****  

        ```
        {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "iam:PassRole"
              ],
              "Resource": [
                "arn:aws:iam::111122223333:role/<encryption-role-name>"
              ]
            }
          ]
        }
        ```

------

   Ao habilitar a criptografia, se você não tiver especificado um perfil do IAM para o AWS Glue assumir, a entidade principal que acessa o Catálogo de Dados deverá ter permissões para realizar as seguintes operações de API:
   + `kms:Decrypt`
   + `kms:Encrypt`
   + `kms:GenerateDataKey`

------
#### [ AWS CLI ]

**Para habilitar a criptografia usando o SDK ou o AWS CLI**
+ Use a operação de API `PutDataCatalogEncryptionSettings`. Se nenhuma chave for especificada, o AWS Glue usará a chave de criptografia gerenciada pela AWS para a conta do cliente para criptografar o Catálogo de Dados.

  ```
  aws glue put-data-catalog-encryption-settings \
    --data-catalog-encryption-settings '{
        "EncryptionAtRest": {
        "CatalogEncryptionMode": "SSE-KMS-WITH-SERVICE-ROLE",
        "SseAwsKmsKeyId": "arn:aws:kms:<region>:<account-id>:key/<key-id>",
        "CatalogEncryptionServiceRole":"arn:aws:iam::<account-id>:role/<encryption-role-name>"
      }
  
    }'
  ```

------

 Quando você habilitar a criptografia, todos os objetos que você criar no Catálogo de Dados serão criptografados. Se você desmarcar essa configuração, os objetos que você criar no Catálogo de Dados não serão mais criptografados. Você pode continuar acessando os objetos criptografados existentes no Catálogo de Dados com as permissões do KMS necessárias.


|  | 
| --- |
|   A chave do AWS KMS deve permanecer disponível no armazenamento de chaves do AWS KMS para todos os objetos que são criptografados com ela no Data Catalog. Se você remover a chave, os objetos não poderão mais ser descriptografados. Isso pode ser desejável em alguns cenários para impedir o acesso aos metadados do Data Catalog.   | 

## Monitorar suas chaves do KMS para o AWS Glue
<a name="monitoring-keys"></a>

 Ao usar chaves do KMS com os recursos do Catálogo de Dados, você pode usar o AWS CloudTrail ou os Logs do Amazon CloudWatch para rastrear solicitações enviadas pelo AWS Glue para o AWS KMS. O AWS CloudTrail monitora e registra as operações do KMS chamadas pelo AWS Glue para acessar dados criptografados por suas chaves do KMS.

 Os exemplos a seguir são eventos do AWS CloudTrail para as operações `Decrypt` e `GenerateDataKey`. 

------
#### [ Decrypt ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAXPHTESTANDEXAMPLE:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAXPHTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2024-01-10T14:33:56Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "glue.amazonaws.com"
    },
    "eventTime": "2024-01-10T15:18:11Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "eu-west-2",
    "sourceIPAddress": "glue.amazonaws.com",
    "userAgent": "glue.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "glue_catalog_id": "111122223333"
        },
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT"
    },
    "responseElements": null,
    "requestID": "43b019aa-34b8-4798-9b98-ee968b2d63df",
    "eventID": "d7614763-d3fe-4f84-a1e1-3ca4d2a5bbd5",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:<region>:111122223333:key/<key-id>"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "sessionCredentialFromConsole": "true"
}
```

------
#### [ GenerateDataKey ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAXPHTESTANDEXAMPLE:V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAXPHTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "AKIAIOSFODNN7EXAMPLE",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2024-01-05T21:15:47Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "glue.amazonaws.com"
    },
    "eventTime": "2024-01-05T21:15:47Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "eu-west-2",
    "sourceIPAddress": "glue.amazonaws.com",
    "userAgent": "glue.amazonaws.com",
    "requestParameters": {
        "keyId": "arn:aws:kms:eu-west-2:AKIAIOSFODNN7EXAMPLE:key/AKIAIOSFODNN7EXAMPLE",
        "encryptionContext": {
            "glue_catalog_id": "111122223333"
        },
        "keySpec": "AES_256"
    },
    "responseElements": null,
    "requestID": "64d1783a-4b62-44ba-b0ab-388b50188070",
    "eventID": "1c73689b-2ef2-443b-aed7-8c126585ca5e",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-2:111122223333:key/AKIAIOSFODNN7EXAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------

```
      
```

# Criptografar senhas de conexão
<a name="encrypt-connection-passwords"></a>

Você pode recuperar senhas de conexão no AWS Glue Data Catalog usando o `GetConnection` e `GetConnections` as operações da API. Essas senhas são armazenadas na conexão do Data Catalog e são usadas quando o AWS Glue se conecta a um armazenamento de dados do Java Database Connectivity (JDBC). Se a conexão foi criada ou atualizada, uma opção nas configurações do Data Catalog determina se a senha foi criptografada e, neste caso, qual chave do AWS Key Management Service (AWS KMS) foi especificada.

No console do AWS Glue, é possível ativar essa opção na página **Data catalog settings** (Configurações do catálogo de dados).

**Como criptografas senhas de conexão**

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Glue em [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Selecione **Configurações** no painel de navegação. 

1. Na página **Data catalog settings (Configurações do catálogo de dados)**, selecione **Encrypt connection passwords (Criptografar senhas de conexão)** e escolha uma chave do AWS KMS.
**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.

   Para obter mais informações, consulte [Configurações do Catálogo de Dados](console-data-catalog-settings.md).

# Criptografar dados gravados pelo AWS Glue
<a name="encryption-security-configuration"></a>

Uma *configuração de segurança* é um conjunto de propriedades de segurança que pode ser usado pelo AWS Glue. Você pode usar uma configuração de segurança para criptografar dados em repouso. Os cenários a seguir mostram algumas maneiras de usar uma configuração de segurança. 
+ Anexe uma configuração de segurança a um crawler do AWS Glue para gravar Amazon CloudWatch Logs criptografados. Para obter mais informações sobre como associar configurações de segurança a crawlers, consulte [Etapa 3: Defina as configurações de segurança](define-crawler-configure-security-settings.md).
+ Anexe uma configuração de segurança a um trabalho do tipo extrair, transformar e carregar (ETL) para gravar destinos do Amazon Simple Storage Service (Amazon S3) criptografados e CloudWatch Logs criptografados.
+ Anexe uma configuração de segurança a um trabalho de ETL para gravar seus marcadores de trabalhos como dados do Amazon S3 criptografados.
+ Anexe uma configuração de segurança a um endpoint de desenvolvimento para gravar destinos do Amazon S3 criptografados.

**Importante**  
Atualmente, uma configuração de segurança substitui qualquer configuração de criptografia no lado do servidor (SSE-S3) que seja transmitida como um parâmetro de trabalho de ETL. Portanto, se uma configuração de segurança e um parâmetro SSE-S3 forem associados a um trabalho, o parâmetro SSE-S3 será ignorado.

Para obter mais informações sobre configurações de segurança, consulte [Gerenciar configurações de segurança no console do AWS Glue](console-security-configurations.md).

**Topics**
+ [Configurar o AWS Glue para usar configurações de segurança](#encryption-setup-Glue)
+ [Criar uma rota para o AWS KMS para trabalhos e crawlers da VPC](#encryption-kms-vpc-endpoint)
+ [Gerenciar configurações de segurança no console do AWS Glue](console-security-configurations.md)

## Configurar o AWS Glue para usar configurações de segurança
<a name="encryption-setup-Glue"></a>

Siga estas etapas para configurar seu ambiente AWS Glue para usar configurações de segurança.

1. Crie ou atualize as chaves do AWS Key Management Service (AWS KMS) para conceder permissões ao AWS KMS para as funções do IAM que são transmitidas para crawlers e trabalhos do AWS Glue, a fim de criptografar o CloudWatch Logs. 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 *Manual do usuário do Amazon CloudWatch Logs*. 

   No exemplo a seguir, *"role1"*, *"role2"* e *"role3"* são funções do IAM que são transmitidas para crawlers e trabalhos.

   ```
   {
          "Effect": "Allow",
          "Principal": { "Service": "logs.region.amazonaws.com",
          "AWS": [
                   "role1",
                   "role2",
                   "role3"
                ] },
                       "Action": [
                              "kms:Encrypt*",
                              "kms:Decrypt*",
                              "kms:ReEncrypt*",
                              "kms:GenerateDataKey*",
                              "kms:Describe*"
                       ],
                       "Resource": "*"
   }
   ```

   A instrução `Service`, mostrada como `"Service": "logs.region.amazonaws.com"`, será necessária se você usar a chave para criptografar o CloudWatch Logs.

1. Certifique-se de que a chave AWS KMS seja `ENABLED` antes de ser usada.

**nota**  
Se você estiver usando o Iceberg como estrutura de data lake, as tabelas do Iceberg têm seus próprios mecanismos para habilitar a criptografia do lado do servidor. Você deve habilitar essas configurações além das configurações de segurança do AWS Glue. Para habilitar a criptografia do lado do servidor nas tabelas do Iceberg, consulte as orientações na [documentação do Iceberg](https://iceberg.apache.org/docs/latest/aws/#s3-server-side-encryption).

## Criar uma rota para o AWS KMS para trabalhos e crawlers da VPC
<a name="encryption-kms-vpc-endpoint"></a>

Você pode se conectar diretamente ao AWS KMS através de um endpoint privado na sua VPC (virtual private cloud) em vez de fazer a conexão pela Internet. Quando você usa um endpoint da VPC, a comunicação entre seu VPC e o AWS KMS é realizada inteiramente dentro da rede da AWS.

Você pode criar um AWS KMS VPC endpoint dentro de uma VPC. Sem essa etapa, seus trabalhos ou crawlers podem falhar com um `kms timeout` em trabalhos ou com um `internal service exception` em crawlers. Para obter instruções detalhadas, consulte [Conectar-se ao AWS KMS por meio de um endpoint da VPC](https://docs.aws.amazon.com/kms/latest/developerguide/kms-vpc-endpoint.html) no *Guia do desenvolvedor do AWS Key Management Service*. 

À medida que você seguir estas instruções, no [console da VPC](https://console.aws.amazon.com//vpc), será necessário fazer o seguinte:
+ Selecione **Enable Private DNS name (Ativar nome de DNS privado)**.
+ Escolha o **Grupo de segurança** (com regra de autorreferência) que você usa para o seu trabalho ou crawler que acessa o JDBC (Java Database Connectivity). Para obter mais informações sobre conexões do AWS Glue, consulte [Conectar a dados](glue-connections.md).

Quando você adiciona uma configuração de segurança a um crawler ou trabalho que acessa armazenamentos de dados JDBC, o AWS Glue deve ter uma rota para o AWS KMS endpoint. Você pode fornecer essa rota com um gateway de NAT (conversão de endereços de rede) ou com um AWS KMS VPC endpoint. Para criar um gateway NAT, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) no *Manual do usuário da Amazon VPC*.

# Gerenciar configurações de segurança no console do AWS Glue
<a name="console-security-configurations"></a>

**Atenção**  
As configurações de segurança atuais do AWS Glue não são compatíveis com os trabalhos do Ray.

Uma *configuração de segurança* no AWS Glue contém as propriedades que são necessárias quando você grava dados criptografados. Você cria configurações de segurança no console do AWS Glue para fornecer as propriedades de criptografia usadas por crawlers, trabalhos e endpoints de desenvolvimento. 

Para ver uma lista com todas as configurações de segurança que você criou, abra o console do AWS Glue em [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) e escolha **Security configurations** (Configurações de segurança) no painel de navegação.

A lista de **Configurações de segurança** exibe as seguintes propriedades sobre cada configuração:

**Nome**  
O nome exclusivo que você forneceu quando criou a configuração. O nome pode conter letras (A a Z), números (0 a 9), hifens (-) ou sublinhados (\$1), e pode ter até 255 caracteres.

**Habilitar a criptografia do Amazon S3**  
Se ativado, o modo de criptografia do Amazon Simple Storage Service (Amazon S3), como `SSE-KMS` ou `SSE-S3`, é habilitado para armazenamento de metadados no catálogo de dados.

**Habilitar a criptografia do Amazon CloudWatch Logs**  
Se ativado, o modo de criptografia do Amazon S3, como `SSE-KMS`, será habilitado ao gravar logs no Amazon CloudWatch.

**Configurações avançadas: habilitar a criptografia de marcadores de trabalho**  
Se ativado, o modo de criptografia do Amazon S3, como `CSE-KMS`, será habiltado ao marcar trabalhos.

Você pode adicionar ou excluir configurações na seção **Security configurations (Configurações de segurança)** do console. Para ver mais detalhes sobre uma configuração, escolha seu nome na lista. Os detalhes incluem as informações que você definiu quando criou a configuração.

## Adicionar uma configuração de segurança
<a name="console-security-configurations-wizard"></a>

 Para adicionar uma configuração de segurança usando o console do AWS Glue, na página **Security configurations (Configurações de segurança)**, escolha **Add security configuration (Adicionar configuração de segurança)**. 

![\[A captura de tela mostra a página Adicionar configuração de segurança.\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/add_security_configuration.png)


 **Propriedades de configuração de segurança** 

 Insira um nome de configuração de segurança exclusivo. O nome pode conter letras (A a Z), números (0 a 9), hifens (-) ou sublinhados (\$1), e pode ter até 255 caracteres. 

 **Configurações de criptografia** 

Você pode habilitar a criptografia em repouso para metadados armazenados no catálogo de dados no Amazon S3 e nos logs no Amazon CloudWatch. Para configurar a criptografia de dados e metadados com chaves do AWS Key Management Service (AWS KMS) no console do AWS Glue, adicione uma política ao usuário do console. Essa política deve especificar os recursos permitidos como nomes de recurso da Amazon (ARNs) de chaves que são usados para criptografar armazenamentos de dados do Amazon S3, como no exemplo a seguir.

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

****  

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

------

**Importante**  
Quando uma configuração de segurança está anexada a um crawler ou trabalho, a função do IAM que é transmitida deve ter permissões do AWS KMS. Para obter mais informações, consulte [Criptografar dados gravados pelo AWS Glue](encryption-security-configuration.md).

Ao definir uma configuração, você pode fornecer valores para as seguintes propriedades:

**Habilitar criptografia do S3**  
Quando você está gravando dados do Amazon S3, pode usar a criptografia no lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3) ou a criptografia no lado do servidor com chaves gerenciadas do AWS KMS (SSE-KMS). Esse campo é opcional. Para permitir acesso ao Amazon S3, escolha uma chave do AWS KMS ou **Enter a key ARN** (Inserir o ARN de uma chave), e forneça o ARN da chave. Insira o ARN no formato `arn:aws:kms:region:account-id:key/key-id`. Você também pode fornecer o ARN como um alias da chave, como `arn:aws:kms:region:account-id:alias/alias-name`.   
Se você habilitar a interface do Spark para seu trabalho, o arquivo de log da interface do Spark carregado no Amazon S3 será aplicado com a mesma criptografia.  
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.

**Habilitar criptografia do CloudWatch Logs**  
A criptografia no lado do servidor (SSE-KMS) é usada para criptografar o CloudWatch Logs. Esse campo é opcional. Para ativá-la, escolha uma chave do AWS KMS ou **Enter a key ARN** (Inserir ARN da chave), e forneça o ARN da chave. Insira o ARN no formato `arn:aws:kms:region:account-id:key/key-id`. Você também pode fornecer o ARN como um alias da chave, como `arn:aws:kms:region:account-id:alias/alias-name`. 

**Configurações avançadas: criptografia de marcadores de trabalho**  
A criptografia no lado do cliente (CSE-KMS) é usada para criptografar marcadores de trabalho. Esse campo é opcional. Os dados do marcador são criptografados antes de serem enviados ao Amazon S3 para armazenamento. Para ativá-la, escolha uma chave do AWS KMS ou **Enter a key ARN** (Inserir ARN da chave), e forneça o ARN da chave. Insira o ARN no formato `arn:aws:kms:region:account-id:key/key-id`. Você também pode fornecer o ARN como um alias da chave, como `arn:aws:kms:region:account-id:alias/alias-name`.

Para obter mais informações, consulte os tópicos a seguir no *Guia do usuário do Amazon Simple Storage Service*:
+ Para obter informações sobre o `SSE-S3`, consulte [Proteção de dados usando criptografia no lado do servidor com chaves de criptografia gerenciadas do Amazon S3 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html). 
+ Para obter mais informações sobre `SSE-KMS`, consulte [Proteger os dados usando criptografia do lado do servidor com AWS KMS keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html). 
+ Para obter informações sobre `CSE-KMS`, consulte [Using a KMS key stored in AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro). 

# Criptografia de dados em trânsito
<a name="encryption-in-transit"></a>



AWS fornece criptografia Transport Layer Security (TLS) para dados em movimento. Você pode definir as configurações de criptografia para crawlers, trabalhos de ETL e endpoints de desenvolvimento usando [configurações de segurança](https://docs.aws.amazon.com/glue/latest/dg/console-security-configurations.html) no AWS Glue. É possível ativar a criptografia do AWS Glue Data Catalog por meio das configurações do Data Catalog.

Desde 4 de setembro de 2018, foi adicionado suporte ao AWS KMS (*trazer sua própria chave* e *criptografia no lado do servidor*) para o ETL do AWS Glue e o AWS Glue Data Catalog.

# Conformidade com os FIPS
<a name="fips-compliance"></a>

Se você precisar de módulos criptográficos validados pelo FIPS 140-2 ao acessar AWS por meio de uma interface de linha de comando ou uma API, use um endpoint FIPS. Para ter mais informações sobre endpoints do FIPS disponíveis, consulte [Federal Information Processing Standard (FIPS) 140-2](https://aws.amazon.com/compliance/fips/).

# Gerenciamento de chaves
<a name="key-management"></a>

É possível usar o AWS Identity and Access Management (IAM) com o AWS Glue para definir usuários, recursos da AWS, grupos, funções e políticas granulares com relação a acesso, negação e muito mais.

Você pode definir o acesso aos metadados usando as políticas baseadas em recursos e as políticas baseadas em identidade dependendo das necessidades da sua organização. As políticas baseadas em recursos listam as entidades principais com acesso permitido ou negado aos seus recursos, permitindo que você configure políticas como acesso entre contas. As políticas baseadas em identidade são anexadas de modo exclusivo a usuários, grupos e funções no IAM. 

Para obter um exemplo passo a passo, consulte [Restringir o acesso ao seu AWS Glue Data Catalog com permissões de IAM de nível de recursos e políticas baseadas em recursos](https://aws.amazon.com/blogs/big-data/restrict-access-to-your-aws-glue-data-catalog-with-resource-level-iam-permissions-and-resource-based-policies/) no AWS Big Data Blog.

A parte de acesso granular da política é definida na cláusula `Resource`. Essa parte define o objeto do AWS Glue Data Catalog no qual a ação pode ser executada e quais objetos resultantes são retornados por essa operação. 

Um *endpoint de desenvolvimento* é um ambiente que você pode usar para desenvolver e testar seus scripts do AWS Glue. É possível adicionar, excluir ou mudar a chave SSH de um endpoint de desenvolvimento. 

Desde 4 de setembro de 2018, foi adicionado suporte ao AWS KMS (*trazer sua própria chave* e *criptografia no lado do servidor*) para o ETL do AWS Glue e o AWS Glue Data Catalog.

# Dependência do AWS Glue de outros produtos da AWS
<a name="dependency-on-other-services"></a>

Para que um usuário trabalhe com o console do AWS Glue, ele deve ter um conjunto mínimo de permissões que liberem o trabalho com os recursos do AWS Glue na conta da AWS. Além dessas permissões do AWS Glue, o console exige permissões dos seguintes serviços: 
+ Permissões do Amazon CloudWatch Logs para exibir logs.
+ Permissões do AWS Identity and Access Management (IAM) para listar e transmitir funções.
+ Permissões do CloudFormation para trabalhar com pilhas.
+ Permissões do Amazon Elastic Compute Cloud (Amazon EC2) para listar nuvens privadas virtuais (VPCs), sub-redes, grupos de segurança, instâncias e outros objetos (para configurar itens do Amazon EC2, como VPCs, ao executar trabalhos, crawlers e criar endpoints de desenvolvimento).
+ Permissões do Amazon Simple Storage Service (Amazon S3) para listar buckets e objetos e para recuperar e salvar scripts.
+ Permissões do Amazon Redshift necessárias para trabalhar com clusters.
+ Permissões do Amazon Relational Database Service (Amazon RDS) para listar instâncias.

# Endpoints de desenvolvimento
<a name="dev-endpoints"></a>

Um endpoint de desenvolvimento é um ambiente que você pode usar para desenvolver e testar seus scripts do AWS Glue. Você pode usar o AWS Glue para criar, editar e excluir endpoints de desenvolvimento. Você pode listar todos os endpoints de desenvolvimento criados. É possível adicionar, excluir ou mudar a chave SSH de um endpoint de desenvolvimento. Também é possível criar blocos de anotações que usam o endpoint de desenvolvimento.

Você fornece valores de configuração para a provisão dos ambientes de desenvolvimento. Esses valores informam ao AWS Glue como configurar a rede para que você possa acessar o endpoint de desenvolvimento de forma segura e para que seu endpoint possa acessar seus armazenamentos de dados. Depois, você poderá criar um bloco de anotações que se conecta ao endpoint de desenvolvimento. Você usará o bloco de anotações para criar e testar seu script de ETL.

Escolha uma função do AWS Identity and Access Management (IAM) com permissões semelhantes à função do IAM que você usa para executar os trabalhos de ETL do AWS Glue. Use uma nuvem privada virtual (VPC), uma sub-rede e um grupo de segurança para criar um endpoint de desenvolvimento que possa se conectar a seus recursos de dados com segurança. Você gera um par de chaves SSH para se conectar ao ambiente de desenvolvimento usando SSH.

É possível criar endpoints de desenvolvimento para dados do Amazon S3 e em uma VPC, que você pode usar para acessar conjuntos de dados usando o JDBC.

Você pode instalar um caderno Jupyter na sua máquina local e usá-lo para depurar e testar scripts de ETL em um endpoint de desenvolvimento. Ou você pode usar um notebook do Sagemaker para criar scripts de ETL no JupyterLab na AWS. Consulte [ Usar um caderno do SageMaker com seu endpoint de desenvolvimento ](https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint-tutorial-sage.html). 

O AWS Glue marca instâncias do Amazon EC2 com um nome que é prefixado com `aws-glue-dev-endpoint`.

Você pode configurar um servidor de caderno em um endpoint de desenvolvimento para executar instruções do PySpark com as extensões do AWS Glue.