

# Configurando seu bucket para usar uma chave de bucket do S3 com SSE-KMS para novos objetos
<a name="configuring-bucket-key"></a>

Ao configurar a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), você pode configurar seu bucket para usar uma chave de bucket do S3 para SSE-KMS em novos objetos. As chaves de bucket do S3 diminuem o tráfego de solicitações do Amazon S3 para o AWS KMS e reduzem o custo do SSE-KMS. Para obter mais informações, consulte [Redução do custo do SSE-KMS com chaves de bucket do Amazon S3](bucket-key.md).

Você pode configurar seu bucket para usar uma chave de bucket do S3 para SSE-KMS em novos objetos usando o console do Amazon S3, a API REST, AWS SDKs, a AWS Command Line Interface (AWS CLI) ou o CloudFormation. Se você quiser habilitar ou desabilitar uma chave de bucket do S3 para objetos existentes, poderá usar uma operação `CopyObject`. Para obter mais informações, consulte [Configurar uma chave de bucket do S3 no nível de objeto](configuring-bucket-key-object.md) e [Usar o Operações em Lote para habilitar chaves de bucket do S3 para SSE-KMS](batch-ops-copy-example-bucket-key.md).

Quando uma chave de bucket do S3 estiver habilitada para o bucket de origem ou de destino, o contexto de criptografia será o Amazon Resource Name (ARN) do bucket e não o ARN do objeto, por exemplo, `arn:aws:s3:::{{bucket_ARN}}`. Você precisa atualizar suas políticas do IAM a fim de usar o ARN de bucket para o contexto de criptografia. Para obter mais informações, consulte [Chaves de bucket do S3 e replicação](replication-config-for-kms-objects.md#bk-replication).

Os exemplos a seguir ilustram como uma chave de bucket do S3 funciona com a replicação. Para obter mais informações, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Pré-requisitos**  
Antes de configurar seu bucket para usar uma chave de bucket do S3, revise [Alterações na observação antes de habilitar uma chave de bucket do S3](bucket-key.md#bucket-key-changes).

**Topics**

## Uso do console do S3
<a name="enable-bucket-key"></a>

No console do S3, você pode ativar ou desativar uma chave de bucket do S3 para um bucket novo ou existente. Os objetos no console do S3 herdam sua configuração de chave de bucket do S3 da configuração do bucket. Quando você habilita uma chave de bucket do S3 para seu bucket, novos objetos que você envia para o bucket usam uma chave de bucket do S3 para SSE-KMS. 

**Carregando, copiando ou modificando objetos em buckets que tenham uma chave de bucket S3 ativada**  
Se você carregar, modificar ou copiar um objeto em um bucket que tenha uma chave de bucket S3 ativada, as configurações da chave de bucket do S3 para esse objeto poderão ser atualizadas para alinhar com a configuração do bucket.

Se um objeto já tiver uma chave de bucket S3 ativada, as configurações da chave de bucket do S3 para esse objeto não serão alteradas quando você copia ou modifica o objeto. No entanto, se você modificar ou copiar um objeto que não tenha uma chave de bucket S3 ativada e o bucket de destino tiver uma configuração de chave de bucket S3, o objeto herdará as configurações da chave de bucket S3 do bucket de destino. Por exemplo, se o objeto de origem não tiver uma chave de bucket do S3 ativada, mas o bucket de destino tiver a chave de bucket do S3 ativada, uma chave de bucket do S3 será habilitada para o objeto.

**Para habilitar uma chave de bucket do S3 ao criar um novo bucket**

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

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Selecione **Create bucket (Criar bucket)**. 

1. Insira o nome do bucket e escolha sua Região da AWS. 

1. Em **Criptografia padrão**, para **Tipo de chave de criptografia**, escolha **Chave do AWS Key Management Service (SSE-KMS)**.

1. Em **Chave do AWS KMS**, realize um dos seguintes procedimentos para escolher sua chave do KMS:
   + Para escolher entre uma lista de chaves do KMS disponíveis, selecione **Escolher de sua AWS KMS keys** e escolha a **chave do KMS** na lista de chaves disponíveis.

     As chaves Chave gerenciada pela AWS (`aws/s3`) e as chaves gerenciadas pelo cliente são exibidas nessa lista. Para ter mais informações sobre chaves gerenciadas pelo cliente, consulte [Chaves de clientes e chaves da AWS](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) no *Guia do desenvolvedor do AWS Key Management Service*.
   + Para inserir o ARN da chave do KMS, escolha **Inserir ARN da AWS KMS key** e insira o ARN da chave do KMS no campo exibido. 
   + Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione **Criar uma chave do KMS**.

     Para obter mais informações sobre como criar uma AWS KMS key, consulte [Criação de chaves](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) no *Guia do desenvolvedor do AWS Key Management Service*.

1. Em **Bucket key** (Chave do bucket), escolha **Enable** (Ativar). 

1. Selecione **Create bucket (Criar bucket)**. 

   O Amazon S3 cria seu bucket com uma chave de bucket do S3 ativada. Novos objetos que você carregar no bucket usarão uma chave de bucket do S3. 

   Para desativar uma chave de bucket do S3, siga as etapas anteriores e escolha **Disable** (Desativar).

**Para habilitar uma chave de bucket do S3 para um bucket existente**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets** (Buckets), escolha o bucket para o qual você deseja habilitar uma chave de bucket do S3.

1. Escolha a guia **Properties (Propriedades)**.

1. Em **Default encryption (Criptografia padrão)**, escolha **Edit (Editar)**.

1. Em **Criptografia padrão**, para **Tipo de chave de criptografia**, escolha **Chave do AWS Key Management Service (SSE-KMS)**.

1. Em **Chave do AWS KMS**, realize um dos seguintes procedimentos para escolher sua chave do KMS:
   + Para escolher entre uma lista de chaves do KMS disponíveis, selecione **Escolher de sua AWS KMS keys** e escolha a **chave do KMS** na lista de chaves disponíveis.

     As chaves Chave gerenciada pela AWS (`aws/s3`) e as chaves gerenciadas pelo cliente são exibidas nessa lista. Para ter mais informações sobre chaves gerenciadas pelo cliente, consulte [Chaves de clientes e chaves da AWS](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) no *Guia do desenvolvedor do AWS Key Management Service*.
   + Para inserir o ARN da chave do KMS, escolha **Inserir ARN da AWS KMS key** e insira o ARN da chave do KMS no campo exibido. 
   + Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione **Criar uma chave do KMS**.

     Para obter mais informações sobre como criar uma AWS KMS key, consulte [Criação de chaves](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) no *Guia do desenvolvedor do AWS Key Management Service*.

1. Em **Bucket key** (Chave do bucket), escolha **Enable** (Ativar). 

1. Selecione **Save changes**.

   O Amazon S3 habilita uma chave de bucket do S3 para novos objetos adicionados ao seu bucket. Os objetos existentes não usam a chave de bucket do S3. Para configurar uma chave de bucket do S3 para objetos existentes, você pode usar uma operação `CopyObject`. Para obter mais informações, consulte [Configurar uma chave de bucket do S3 no nível de objeto](configuring-bucket-key-object.md).

   Para desativar uma chave de bucket do S3, siga as etapas anteriores e escolha **Disable** (Desativar).

## Uso dos REST API
<a name="enable-bucket-key-rest"></a>

Você pode usar [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) para habilitar ou desabilitar uma chave de bucket do S3 para o bucket. Para configurar uma chave de bucket do S3 com `PutBucketEncryption`, use o tipo de dados [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html), que inclui criptografia padrão com SSE-KMS. Você também pode usar opcionalmente uma chave gerenciada pelo cliente especificando o ID da chave do KMS para a chave gerenciada pelo cliente.  

Para obter mais informações e sintaxe de exemplo, consulte [PutBucketenCryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html). 

## Usar o AWS SDK para Java
<a name="enable-bucket-key-sdk"></a>

O exemplo a seguir habilita a criptografia de bucket padrão com SSE-KMS e uma chave de bucket do S3 usando o AWS SDK para Java.

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();
    
ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()
    .withSSEAlgorithm(SSEAlgorithm.KMS);
ServerSideEncryptionRule rule = new ServerSideEncryptionRule()
    .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)
    .withBucketKeyEnabled(true);
ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =
    new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule));

SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()
    .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)
    .withBucketName(bucketName);
            
s3client.setBucketEncryption(setBucketEncryptionRequest);
```

------

## Como usar o AWS CLI
<a name="enable-bucket-key-cli"></a>

O exemplo a seguir habilita a criptografia de bucket padrão com SSE-KMS e uma chave de bucket do S3 usando o AWS CLI. Substitua `{{user input placeholders}}` por suas próprias informações.

```
aws s3api put-bucket-encryption --bucket {{amzn-s3-demo-bucket}} --server-side-encryption-configuration '{
        "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "aws:kms",
                    "KMSMasterKeyID": "{{KMS-Key-ARN}}"
                },
                "BucketKeyEnabled": true
            }
        ]
    }'
```

## Usar o CloudFormation
<a name="enable-bucket-key-cloudformation"></a>

Para obter mais informações sobre como configurar uma chave de bucket do S3 com CloudFormation, consulte [AWS::S3::Bucket ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html) no *Guia do usuário do AWS CloudFormation*.