

# Especificar a criptografia do lado do servidor com chaves do AWS KMS (SSE-KMS) em buckets de tabela
<a name="s3-tables-kms-specify"></a>

Todos os buckets da funcionalidade Tabelas do Amazon S3 têm criptografia configurada por padrão e todas as novas tabelas criadas em um bucket de tabela são automaticamente criptografadas em repouso. A criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) é a configuração de criptografia padrão para todos os buckets de diretório. Se você quiser especificar um tipo de criptografia diferente, é possível usar a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS).

 Você pode especificar a criptografia SSE-KMS em solicitações `CreateTableBucket` ou `CreateTable` ou definir a configuração de criptografia padrão no bucket de tabela em uma solicitação `PutTableBucketEncryption`.

**Importante**  
Para permitir a manutenção automática em tabelas e buckets de tabela criptografados com SSE-KMS, você deve conceder permissão à entidade principal de serviço maintenance.s3tables.amazonaws.com para usar sua chave do KMS. Para obter mais informações, consulte [Requisitos de permissão para criptografia SSE-KMS da funcionalidade Tabelas do S3](s3-tables-kms-permissions.md).

## Especificar criptografia para buckets de tabela
<a name="specify-kms-table-bucket"></a>

Você pode especificar o SSE-KMS como o tipo de criptografia padrão ao criar um bucket de tabela. Para ter exemplos, consulte [Criar um bucket de tabela](s3-tables-buckets-create.md). Depois de criar um bucket de tabela, você pode especificar o uso do SSE-KMS como a configuração de criptografia padrão usando operações da API REST, SDKs da AWS e a AWS Command Line Interface (AWS CLI).

**nota**  
 Quando você especifica o SSE-KMS como o tipo de criptografia padrão, a chave usada para criptografia deve permitir acesso à entidade principal do serviço de manutenção da funcionalidade Tabelas do S3. Se a entidade principal do serviço de manutenção não tiver acesso, você não conseguirá criar tabelas nesse bucket de tabela. Para obter mais informações, consulte [Conceder à entidade principal do serviço de manutenção da funcionalidade Tabelas do S3 permissões para sua chave do KMS](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions).

### Usar a AWS CLI
<a name="w2aac20c35c15b3c17b9b9b1"></a>

Para usar o exemplo de comando a seguir da AWS CLI, substitua os {{espaços reservados para entrada do usuário}} por suas próprias informações.

```
aws s3tables put-table-bucket-encryption \
    --table-bucket-arn arn:aws:s3tables:{{us-east-1}}:{{111122223333}}:bucket/{{amzn-s3-demo-table-bucket}}; \
    --encryption-configuration '{
        "sseAlgorithm": "aws:kms",
        "kmsKeyArn": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
    }' \
    --region us-east-1
```

Você pode remover a configuração de criptografia padrão de um bucket de tabela usando a operação de API [DeleteTableBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_DeleteTableBucketEncryption.html). Ao remover as configurações de criptografia, as novas tabelas criadas no bucket de tabela usarão a criptografia SSE-S3 padrão.

## Especificar criptografia para tabelas
<a name="specify-kms-table"></a>

Você pode aplicar a criptografia SSE-KMS ao criar uma tabela usando mecanismos de consulta, operações da API REST, SDKs da AWS e a AWS Command Line Interface (AWS CLI). As configurações de criptografia que você especifica ao criar uma tabela têm precedência sobre a configuração de criptografia padrão do bucket de tabela.

**nota**  
Ao usar a criptografia SSE-KMS para uma tabela, a chave utilizada para criptografia deve permitir que a entidade principal do serviço de manutenção da funcionalidade Tabelas do S3 a acesse. Se a entidade principal do serviço de manutenção não tiver acesso, você não conseguirá criar a tabela. Para obter mais informações, consulte [Conceder à entidade principal do serviço de manutenção da funcionalidade Tabelas do S3 permissões para sua chave do KMS](s3-tables-kms-permissions.md#tables-kms-maintenance-permissions).

****Permissões obrigatórias****

As seguintes permissões são necessárias para criar tabelas criptografadas:
+ `s3tables:CreateTable`
+ `s3tables:PutTableEncryption`

## Como usar o AWS CLI
<a name="w2aac20c35c15b3c17c13b1"></a>

O exemplo a seguir da AWS CLI cria uma tabela com um esquema básico e a criptografa com uma chave do AWS KMS gerenciada pelo cliente. Para usar o comando, substitua os {{espaços reservados para entrada do usuário}} por suas próprias informações.

```
aws s3tables create-table \
  --table-bucket-arn "arn:aws:s3tables:{{Region}}:{{ownerAccountId}}:bucket/{{amzn-s3-demo-table-bucket}}" \
  --namespace "mydataset" \
  --name "orders" \
  --format "ICEBERG" \
  --encryption-configuration '{
    "sseAlgorithm": "aws:kms",
    "kmsKeyArn": "arn:aws:kms:{{Region}}:{{111122223333}}:key/{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
  }' {{\
  --metadata '{
    "iceberg": {
      "schema": {
        "fields": [
          {
            "name": "order_id",
            "type": "string",
            "required": true
          },
          {
            "name": "order_date",
            "type": "timestamp",
            "required": true
          },
          {
            "name": "total_amount",
            "type": "decimal(10,2)",
            "required": true
          }
        ]
      }
    }
  }'}}
```