

# Gerenciar tabelas criptografadas no DynamoDB
<a name="encryption.tutorial"></a>

É possível usar o Console de gerenciamento da AWS ou a AWS Command Line Interface (AWS CLI) para especificar a chave de criptografia em novas tabelas e atualizar as chaves de criptografia em tabelas existentes no Amazon DynamoDB.

**Topics**
+ [Especificar a chave de criptografia para uma nova tabela](#encryption.tutorial-creating)
+ [Atualizar uma chave de criptografia](#encryption.tutorial-update)

## Especificar a chave de criptografia para uma nova tabela
<a name="encryption.tutorial-creating"></a>

Siga estas etapas para especificar a chave de criptografia em uma nova tabela usando o console do Amazon DynamoDB ou a AWS CLI.

### Criar uma tabela criptografada (console)
<a name="encryption.tutorial-console"></a>

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

1.  No painel de navegação, no lado esquerdo do console, selecione **Tables** (Tabelas).

1. Selecione **Create Table** (Criar tabela). Para o **Table name** (Nome da tabela), insira **Music**. Para a chave primária, insira **Artist**. Para a chave de classificação, insira **SongTitle**, os dois como strings.

1. Em **Settings** (Configurações), verifique se **Customize Settings** (Personalizar configurações) está selecionado.
**nota**  
Se a opção **Use default settings** (Usar configurações padrão) estiver selecionada, as tabelas serão criptografadas em repouso com Chave pertencente à AWS sem custo adicional.

1. Em **Encryption at rest** (Criptografia em repouso), escolha um tipo de criptografia: Chave pertencente à AWS, Chave gerenciada pela AWS, ou chave gerenciada pelo cliente.
   +  **Owned by Amazon DynamoDB** (Propriedade do Amazon DynamoDB) chave de propriedade da AWS, pertencente e gerenciada especificamente pelo DynamoDB. Não há custo adicional para usar essa chave.
   + **AWS Chave gerenciada pela**. Alias da chave: `aws/dynamodb`. A chave é armazenada na sua conta e é gerenciada pelo AWS Key Management Service (AWS KMS). Cobranças do AWS KMS são aplicáveis).
   +  **Stored in your account, and owned and managed by you. (Armazenada em sua conta, de sua propriedade e gerenciada por você.** Chave gerenciada pelo cliente A chave é armazenada na sua conta e é gerenciada pelo AWS Key Management Service (AWS KMS). Cobranças do AWS KMS são aplicáveis).
**nota**  
Se você optar por ser o proprietário e gerenciar sua própria chave, certifique-se de que a Política de chaves do KMS está definida corretamente. Para obter mais informações, consulte [Política de chaves para uma chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

1. Selecione **Create** (Criar) para criar a tabela criptografada. Para confirmar o tipo de criptografia, selecione os detalhes da tabela na guia **Overview** (Visão geral) e revise a seção **Additional details** (Detalhes adicionais).

### Criar uma tabela criptografada (AWS CLI)
<a name="encryption.tutorial-cli"></a>

Use a AWS CLI para criar uma tabela com a Chave pertencente à AWS padrão, com a Chave gerenciada pela AWS ou com a chave gerenciada pelo cliente para o Amazon DynamoDB.

**Para criar uma tabela criptografada com a padrão Chave pertencente à AWS**
+ Crie a tabela `Music` criptografada da seguinte forma:

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5
  ```
**nota**  
Essa tabela agora está criptografada com a Chave pertencente à AWS padrão na conta de serviço do DynamoDB.

**Para criar uma tabela criptografada com a Chave gerenciada pela AWS para o DynamoDB**
+ Crie a tabela `Music` criptografada da seguinte forma:

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --sse-specification Enabled=true,SSEType=KMS
  ```

   O status `SSEDescription` da descrição da tabela é definido como `ENABLED`, e o `SSEType` é `KMS`: 

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

**Para criar uma tabela criptografada com uma chave gerenciada pelo cliente para o DynamoDB**
+ Crie a tabela `Music` criptografada da seguinte forma:

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --sse-specification Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
  ```
**nota**  
Para o `KMSMasterKeyId`, você pode usar um ID de chave, um ARN de chave ou um alias de chave. Se você usar um alias de chave (por exemplo, `alias/my-key`), o DynamoDB resolverá o alias e associará a chave do AWS KMS subjacente à tabela. Na descrição da tabela, o `KMSMasterKeyArn` sempre mostrará o ARN da chave resolvida, não o alias. Para saber mais sobre identificadores de chave, consulte [Identificadores de chave (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) no *Guia do desenvolvedor do AWS Key Management Service*.

   O status `SSEDescription` da descrição da tabela é definido como `ENABLED`, e o `SSEType` é `KMS`:

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

## Atualizar uma chave de criptografia
<a name="encryption.tutorial-update"></a>

Também é possível usar o console do DynamoDB ou a AWS CLI para atualizar as chaves de criptografia de uma tabela existente entre uma Chave pertencente à AWS, uma Chave gerenciada pela AWS e uma chave gerenciada pelo cliente a qualquer momento.

### Atualizar uma chave de criptografia (console)
<a name="encryption.tutorial-update-console"></a>

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

1.  No painel de navegação, no lado esquerdo do console, selecione **Tables** (Tabelas).

1. Escolha a tabela que você deseja atualizar.

1. Selecione **Actions** (Ações) e depois selecione a opção **Update settings** (Atualizar configurações).

1. Vá para a guia **Additional settings** (Configurações adicionais).

1. Em **Encryption** (Criptografia), escolha **Manage encryption** (Gerenciar criptografia).

1. Escolha um tipo de criptografia:
   +  **Propriedade do Amazon DynamoDB.** A chave AWS KMS pertence e é gerenciada pelo DynamoDB. Não há custo adicional para usar essa chave.
   + Alias de chave da **chave gerenciada da AWS**: `aws/dynamodb`. A chave é armazenada na sua conta e é gerenciada pelo AWS Key Management Service (AWS KMS). Cobranças do AWS KMS são aplicáveis.
   +  **Stored in your account, and owned and managed by you(Armazenada em sua conta, de sua propriedade e gerenciada por você.** A chave é armazenada na sua conta e é gerenciada pelo AWS Key Management Service (AWS KMS). Cobranças do AWS KMS são aplicáveis.
**nota**  
Se você optar por ser o proprietário e gerenciar sua própria chave, certifique-se de que a Política de chaves do KMS está definida corretamente. Para obter mais informações, consulte [Política de chaves para uma chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

   Depois escolha **Save** (Salvar) para atualizar a tabela criptografada. Para confirmar o tipo de criptografia, verifique os detalhes da tabela na guia **Overview** (Visão geral).

### Atualizar uma chave de criptografia (AWS CLI)
<a name="encryption.tutorial-update-cli"></a>

Os exemplos a seguir mostram como atualizar uma tabela de criptografia usando a AWS CLI.

**Para atualizar uma tabela criptografada com a padrão Chave pertencente à AWS**
+ Atualize a tabela `Music`, como o exemplo a seguir.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=false
  ```
**nota**  
Essa tabela agora está criptografada com a Chave pertencente à AWS padrão na conta de serviço do DynamoDB.

**Para atualizar uma tabela criptografada com a Chave gerenciada pela AWS para o DynamoDB**
+ Atualize a tabela `Music`, como o exemplo a seguir.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=true
  ```

   O status `SSEDescription` da descrição da tabela é definido como `ENABLED`, e o `SSEType` é `KMS`:

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

**Para atualizar uma tabela criptografada com uma chave gerenciada pelo cliente para o DynamoDB**
+ Atualize a tabela `Music`, como o exemplo a seguir.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
  ```
**nota**  
Para o `KMSMasterKeyId`, você pode usar um ID de chave, um ARN de chave ou um alias de chave. Se você usar um alias de chave (por exemplo, `alias/my-key`), o DynamoDB resolverá o alias e associará a chave do AWS KMS subjacente à tabela. Na descrição da tabela, o `KMSMasterKeyArn` sempre mostrará o ARN da chave resolvida, não o alias.

   O status `SSEDescription` da descrição da tabela é definido como `ENABLED`, e o `SSEType` é `KMS`: 

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```