

# Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)
<a name="replication-config-for-kms-objects"></a>

**Importante**  
O Amazon S3 agora aplica criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3) como nível básico de criptografia para cada bucket no Amazon S3. Desde 5 de janeiro de 2023, todos os novos uploads de objetos para o Amazon S3 são automaticamente criptografados sem custo adicional e sem impacto na performance. O status de criptografia automática para a configuração de criptografia padrão do bucket do S3 e para novos uploads de objetos está disponível em logs do CloudTrail, no Inventário S3, na Lente de Armazenamento do S3, no console do Amazon S3 e como cabeçalho adicional de resposta da API do Amazon S3 na AWS CLI e em SDKs da AWS. Para obter mais informações, consulte [Perguntas frequentes sobre criptografia padrão](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Há algumas considerações especiais quando você está replicando objetos que foram criptografados usando criptografia do lado do servidor. O Amazon S3 agora é compatível com seguintes tipos de criptografia do lado do servidor:
+ Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3)
+ Criptografia no lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS)
+ Criptografia de camada dupla do lado do servidor com chaves do AWS KMS (DSSE-KMS)
+ Criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C)

Para obter mais informações sobre criptografia no lado do servidor, consulte [Proteger os dados usando criptografia do lado do servidor](serv-side-encryption.md).

Este tópico explica as permissões necessárias para direcionar o Amazon S3 a replicar objetos que foram criptografados usando a criptografia do lado do servidor. Este tópico também fornece elementos de configuração adicionais aos quais você pode adicionar e dar exemplos de políticas do AWS Identity and Access Management (IAM) que concedem as permissões necessárias para replicar objetos criptografados. 

Para obter um exemplo com instruções passo a passo, consulte [Habilitar a replicação para objetos criptografados](#replication-walkthrough-4). Para obter informações sobre como criar uma configuração da replicação, consulte [Replicar objetos dentro de uma região e entre regiões](replication.md). 

**nota**  
Você pode usar uma AWS KMS keys de várias regiões no Amazon S3. No entanto, o Amazon S3 trata no momento as chaves de várias regiões como se fossem chaves de região única e não usa os recursos de várias regiões da chave. Consulte mais informações em [Using multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) no *Guia do desenvolvedor do AWS Key Management Service*.

**Topics**
+ [Como a criptografia de bucket padrão afeta a replicação](#replication-default-encryption)
+ [Replicar objetos criptografados com SSE-C](#replicationSSEC)
+ [Replicar objetos criptografados com SSE-S3, SSE-KMS ou DSSE-KMS](#replications)
+ [Habilitar a replicação para objetos criptografados](#replication-walkthrough-4)

## Como a criptografia de bucket padrão afeta a replicação
<a name="replication-default-encryption"></a>

Ao habilitar a criptografia padrão para um bucket de destino de replicação, o seguinte comportamento de criptografia será aplicado:
+ Se os objetos no bucket de origem não estiverem criptografados, os objetos de réplica no bucket de destino serão criptografados usando as configurações de criptografia padrão do bucket de destino. Como resultado, as tags de entidade (ETags) dos objetos de origem diferem dos ETags dos objetos de réplica. Se você tiver aplicações que usam ETags, será necessário atualizar essas aplicações para considerar essa diferença.
+ Se os objetos no bucket de origem forem criptografados usando a criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3), a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) ou a criptografia de camada dupla do lado do servidor com chaves do AWS KMS (DSSE-KMS), os objetos de réplica no bucket de destino usarão o mesmo tipo de criptografia que os objetos de origem. As configurações de criptografia padrão do bucket de destino não são usadas.

## Replicar objetos criptografados com SSE-C
<a name="replicationSSEC"></a>

Ao usar a criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C), é possível gerenciar suas próprias chaves de criptografia proprietárias. Com o SSE-C, você gerencia as chaves enquanto o Amazon S3 gerencia o processo de criptografia e descriptografia. Você deve fornecer uma chave de criptografia como parte de sua solicitação, mas não precisa escrever nenhum código para realizar a criptografia ou descriptografia de objetos. Quando você faz upload de um objeto, o Amazon S3 criptografa o objeto usando a chave que você forneceu. Depois, o Amazon S3 remove essa chave da memória. Quando você recupera um objeto, deve fornecer a mesma chave de criptografia como parte de sua solicitação. Para obter mais informações, consulte [Como usar criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C)](ServerSideEncryptionCustomerKeys.md).

A Replicação do S3 é compatível com objetos criptografados com SSE-C. É possível configurar a replicação de objetos com SSE-C no console do Amazon S3 ou com os SDKs da AWS, da mesma forma que você configura a replicação para objetos não criptografados. Não há permissões de SSE-C adicionais além das atualmente necessárias para replicação. 

A Replicação do S3 replica automaticamente objetos criptografados com SSE-C recém-carregados, se eles forem elegíveis, de acordo com sua configuração de Replicação do S3. Para replicar objetos existentes nos buckets, use a replicação em lote do S3. Para obter mais informações sobre replicação de objetos, consulte [Visão geral da configuração da replicação em tempo real](replication-how-setup.md) e [Replicar objetos existentes com o Replicação em Lote](s3-batch-replication-batch.md).

Não há cobranças adicionais pela replicação de objetos SSE-C. Consulte detalhes sobre os preços de replicação em [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/). 

## Replicar objetos criptografados com SSE-S3, SSE-KMS ou DSSE-KMS
<a name="replications"></a>

Por padrão, o Amazon S3 não replica objetos criptografados com SSE-KMS ou DSSE-KMS. Esta seção explica outros elementos de configuração que você pode adicionar para orientar o Amazon S3 a replicar esses objetos. 

Para obter um exemplo com instruções passo a passo, consulte [Habilitar a replicação para objetos criptografados](#replication-walkthrough-4). Para obter informações sobre como criar uma configuração da replicação, consulte [Replicar objetos dentro de uma região e entre regiões](replication.md). 

### Especificar informações adicionais na configuração de replicação
<a name="replication-kms-extra-config"></a>

Na configuração de replicação, você faz o seguinte:
+ No elemento `Destination` na configuração de replicação, adicione o ID da chave do AWS KMS simétrica gerenciada pelo cliente que você deseja que o Amazon S3 use para criptografar réplicas de objetos, conforme mostrado no exemplo de configuração de replicação a seguir. 
+ Aceite explicitamente ao habilitar a replicação de objetos criptografados por meio das chaves do KMS (SSE-KMS ou DSSE-KMS). Para ativar, adicione o elemento `SourceSelectionCriteria`, conforme mostrado no exemplo de configuração de replicação a seguir.

 

```
<ReplicationConfiguration>
   <Rule>
      ...
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>

      <Destination>
          ...
          <EncryptionConfiguration>
             <ReplicaKmsKeyID>AWS KMS key ARN or Key Alias ARN that's in the same Região da AWS as the destination bucket.</ReplicaKmsKeyID>
          </EncryptionConfiguration>
       </Destination>
      ...
   </Rule>
</ReplicationConfiguration>
```

**Importante**  
A chave do KMS deve ter sido criada na mesma Região da AWS que o bucket de destino. 
A chave do KMS *deve* ser válida. A operação de API `PutBucketReplication` não verifica a validade de chaves do KMS. Se você usar uma chave do KMS inválida, receberá o código de status HTTP `200 OK` como resposta, mas a replicação falhará.

O exemplo a seguir mostra uma configuração de replicação, que inclui elementos de configuração opcionais. Essa configuração de replicação tem uma regra. Esta regra aplica-se aos objetos com o prefixo de chaves `Tax`. O Amazon S3 usa o ID da AWS KMS key especificado para criptografar essas réplicas de objeto.

```
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
   <Role>arn:aws:iam::account-id:role/role-name</Role>
   <Rule>
      <ID>Rule-1</ID>
      <Priority>1</Priority>
      <Status>Enabled</Status>
      <DeleteMarkerReplication>
         <Status>Disabled</Status>
      </DeleteMarkerReplication>
      <Filter>
         <Prefix>Tax</Prefix>
      </Filter>
      <Destination>
         <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
         <EncryptionConfiguration>
            <ReplicaKmsKeyID>AWS KMS key ARN or Key Alias ARN that's in the same Região da AWS as the destination bucket.</ReplicaKmsKeyID>
         </EncryptionConfiguration>
      </Destination>
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
            <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>
   </Rule>
</ReplicationConfiguration>
```

### Conceder permissões adicionais para a função do IAM
<a name="replication-kms-permissions"></a>

Para replicar objetos criptografados em repouso usando SSE-S3, SSE-KMS ou DSSE-KMS, conceda as permissões adicionais a seguir ao perfil do AWS Identity and Access Management (IAM) especificado na configuração da replicação. Você concede essas permissões ao atualizar a política de permissões associada ao perfil do IAM. 
+ **Ação `s3:GetObjectVersionForReplication` para objetos de origem**: essa ação permite que o Amazon S3 replique objetos não criptografados e objetos criados com criptografia do lado do servidor usando SSE-S3, SSE-KMS ou DSSE-KMS.
**nota**  
Recomendamos que você use a ação `s3:GetObjectVersionForReplication` em vez da ação `s3:GetObjectVersion`, porque `s3:GetObjectVersionForReplication` fornece ao Amazon S3 somente as permissões mínimas necessárias para a replicação. Além disso, a ação `s3:GetObjectVersion` permite a replicação de objetos não criptografados e objetos criptografados com SSE-S3, mas não objetos criptografados usando chaves do KMS (SSE-KMS ou DSSE-KMS). 
+ **Ações `kms:Decrypt` e `kms:Encrypt` AWS KMS para as chaves do KMS**
  + Você deve conceder permissões `kms:Decrypt` para a AWS KMS key que é usada para descriptografar o objeto de origem.
  + Você deve conceder permissões `kms:Encrypt` para a AWS KMS key que é usada para criptografar a réplica do objeto.
+ **A ação `kms:GenerateDataKey` para replicar objetos de texto sem formatação**: se você estiver replicando objetos de texto sem formatação em um bucket com a criptografia SSE-KMS ou DSSE-KMS habilitada por padrão, é necessário incluir a permissão `kms:GenerateDataKey` para o contexto de criptografia de destino e a chave do KMS na política do IAM.

**Importante**  
Se você usa o recurso Replicação em Lote do S3 para replicar conjuntos de dados entre regiões e já tiver atualizado o tipo de criptografia do lado do servidor de SSE-S3 para SSE-KMS, talvez você precise de permissões adicionais. No bucket da região de origem, é necessário ter a permissão `kms:decrypt`. Em seguida, é necessário ter as permissões `kms:decrypt` e `kms:encrypt` para o bucket na região de destino. 

Recomendamos que você restrinja essas permissões apenas aos buckets e objetos de destino usando chaves de condição do AWS KMS. A Conta da AWS proprietária do perfil do IAM precisa ter permissões para as ações `kms:Encrypt` e `kms:Decrypt` para as chaves do KMS listadas na política. Se as chaves do KMS pertencerem a outra Conta da AWS, o proprietário da chave do KMS precisará conceder essas permissões à Conta da AWS proprietária do perfil do IAM. Consulte mais informações sobre como gerenciar o acesso a essas chaves do KMS em [Using IAM policies with AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) no *Guia do desenvolvedor do AWS Key Management Service*.

### Chaves de bucket do S3 e replicação
<a name="bk-replication"></a>

Para usar a replicação com uma chave de bucket do S3, a política AWS KMS key para a chave do KMS usada para criptografar a réplica do objeto deve incluir a permissão `kms:Decrypt` para a entidade principal da chamada. A chamada para `kms:Decrypt` verifica a integridade da chave do bucket do S3 antes de usá-la. Para obter mais informações, consulte [Uso de uma chave de bucket do S3 com replicação](bucket-key.md#bucket-key-replication).

Quando uma chave de bucket do S3 estiver habilitada para o bucket de origem ou de destino, o contexto de criptografia será o nome do recurso da Amazon (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 para usar o ARN do bucket para o contexto de criptografia:

```
"kms:EncryptionContext:aws:s3:arn": [
"arn:aws:s3:::bucket_ARN"
]
```

Para obter mais informações, consulte [Contexto de criptografia (`x-amz-server-side-encryption-context`)](specifying-kms-encryption.md#s3-kms-encryption-context) (na seção “Usar a API REST”) e [Alterações na observação antes de habilitar uma chave de bucket do S3](bucket-key.md#bucket-key-changes).

### Exemplo de políticas: usar SSE-S3 e SSE-KMS com replicação
<a name="kms-replication-examples"></a>

Os exemplos de políticas do IAM a seguir mostram instruções para o uso de SSE-S3 e SSE-KMS com replicação.

**Example – Usar SSE-KMS com buckets de destino separados**  
A política de exemplo a seguir mostra instruções para usar SSE-KMS com buckets de destino separados. 

**Example – Replicar objetos criados com SSE-S3 e SSE-KMS**  
Veja a seguir uma política completa do IAM que concede as permissões necessárias para replicar objetos não criptografados, objetos criados com SSE-3 e objetos criados com SSE-KMS.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetReplicationConfiguration",
            "s3:ListBucket"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersionAcl"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/key-prefix1*"
      },
      {
         "Action":[
            "kms:Decrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*"
               ]
            }
         },
         "Resource":[
           "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      },
      {
         "Action":[
            "kms:Encrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-destination-bucket/prefix1*"
               ]
            }
         },
         "Resource":[
            "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      }
   ]
}
```

**Example – Replicar objetos com chaves de bucket do S3**  
Veja a seguir uma política completa do IAM que concede as permissões necessárias para replicar objetos com chaves de bucket do S3.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetReplicationConfiguration",
            "s3:ListBucket"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersionAcl"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/key-prefix1*"
      },
      {
         "Action":[
            "kms:Decrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-source-bucket"
               ]
            }
         },
         "Resource":[
           "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      },
      {
         "Action":[
            "kms:Encrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-destination-bucket"
               ]
            }
         },
         "Resource":[
            "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      }
   ]
}
```

### Conceder permissões adicionais para cenários entre contas
<a name="replication-kms-cross-acct-scenario"></a>

Em um cenário entre contas, no qual os buckets de origem e destino pertencem a diferentes Contas da AWS, é possível usar uma chave do KMS para criptografar réplicas de objetos. No entanto, o proprietário da chave do KMS deve conceder ao proprietário do bucket de origem permissão para usar a chave do KMS. 

**nota**  
Se você precisar replicar dados da SSE-KMS entre contas, a regra de replicação deverá especificar uma [chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) do AWS KMS para a conta de destino. As [Chaves gerenciadas pela AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) não permitem o uso entre contas e, portanto, não podem ser usadas para realizar a replicação entre contas.<a name="cross-acct-kms-key-permission"></a>

**Como conceder ao proprietário do bucket de origem permissão para usar a chave do KMS (console do AWS KMS)**

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

1. Para alterar a Região da AWS, use o Region selector (Seletor de regiões) no canto superior direito da página.

1. Para exibir as chaves em sua conta que você cria e gerencia, no painel de navegação, escolha **Customer managed keys (Chaves gerenciadas de cliente)**.

1. Selecione a chave do KMS.

1. Na seção **Configuração geral**, selecione a guia **Política de chaves**.

1. Role para baixo até **Outras Contas da AWS**.

1. Selecione **Adicionar outras Contas da AWS**. 

   A caixa de diálogo **Outras Contas da AWS** é exibida. 

1. Na caixa de diálogo, escolha **Adicionar outra Conta da AWS**. Para **arn:aws:iam::**, insira o ID da conta do bucket de origem.

1. Escolha **Salvar alterações**.

**Para conceder ao proprietário do bucket de origem permissão para usar a chave do KMS (). (AWS CLI)**
+ Para obter informações sobre o comando `put-key-policy` da AWS Command Line Interface (AWS CLI), consulte [https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html) na *Referência de comandos da AWS CLI*. Para obter informações sobre a operação de API subjacente `PutKeyPolicy`, consulte [https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) na [Referência de API do AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/APIReference/).

### Considerações sobre cotas de transação do AWS KMS
<a name="crr-kms-considerations"></a>

Ao adicionar muitos novos objetos com a criptografia do AWS KMS depois de habilitar replicação entre regiões (CRR), pode ocorrer controle de utilização (erros de respostas HTTP `503 Service Unavailable`). O controle de utilização acontece quando o número de transações do AWS KMS por segundo excede a cota atual. Para obter mais informações, consulte [Cotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) no *Guia do desenvolvedor do AWS Key Management Service*.

Para solicitar um aumento de cota, use Service Quotas. Consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)para ter mais informações. Se não houver compatibilidade de Service Quotas com sua região, [abra um caso do AWS Support](https://console.aws.amazon.com/support/home#/). 

## Habilitar a replicação para objetos criptografados
<a name="replication-walkthrough-4"></a>

Por padrão, o Amazon S3 não replica objetos criptografados por meio da criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) ou da criptografia de camada dupla do lado do servidor com chaves do AWS KMS (DSSE-KMS). Para replicar objetos criptografados com SSE-KMS ou DSS-KMS, você deve modificar a configuração da replicação do bucket para instruir o Amazon S3 a replicar esses objetos. Este exemplo explica como usar o console do Amazon S3 e a AWS Command Line Interface (AWS CLI) para alterar a configuração de replicação do bucket de maneira que a replicação de objetos criptografados seja habilitada.

**nota**  
Quando uma chave de bucket do S3 estiver habilitada para o bucket de origem ou de destino, o contexto de criptografia será o nome do recurso da Amazon (ARN) do bucket e não o ARN do objeto. Você precisa atualizar suas políticas do IAM a fim de usar o ARN do bucket para o contexto de criptografia. Para obter mais informações, consulte [Chaves de bucket do S3 e replicação](#bk-replication).

**nota**  
Você pode usar uma AWS KMS keys de várias regiões no Amazon S3. No entanto, o Amazon S3 trata no momento as chaves de várias regiões como se fossem chaves de região única e não usa os recursos de várias regiões da chave. Consulte mais informações em [Using multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) no *Guia do desenvolvedor do AWS Key Management Service*.

### Usar o console do S3
<a name="replication-ex4-console"></a>

Para obter instruções detalhadas, consulte [Configurar a replicação para buckets na mesma conta](replication-walkthrough1.md). Este tópico fornece instruções para definir a configuração da replicação quando os buckets de origem e de destino pertencem às mesmas Contas da AWS ou a contas diferentes.

### Como usar o AWS CLI
<a name="replication-ex4-cli"></a>

Para replicar objetos criptografados com a AWS CLI, faça o seguinte: 
+ Crie os buckets de origem e destino e habilite o versionamento neles. 
+ Crie um perfil de serviço do AWS Identity and Access Management (IAM) que dê ao Amazon S3 permissão para replicar objetos. As permissões do perfil do IAM incluem aquelas necessárias para replicar objetos criptografados.
+ Adicione uma configuração de replicação ao bucket de origem. A configuração de replicação fornece informações relacionadas à replicação de objetos que são criptografados por meio das chaves do KMS.
+ Adicione objetos criptografados ao bucket de origem. 
+ Teste a configuração para confirmar se os objetos criptografados estão sendo replicados no bucket de destino.

Os procedimentos a seguir demonstram esse processo. 

**Para replicar objetos criptografados no lado do servidor (AWS CLI)**

Para usar os exemplos neste procedimento, substitua `user input placeholders` por suas informações.

1. Neste exemplo, você cria tanto o bucket de origem (*`amzn-s3-demo-source-bucket`*) como o de destino (*`amzn-s3-demo-destination-bucket`*) na mesma Conta da AWS. Defina também um perfil de credenciais para a AWS CLI. Este exemplo usa o nome de perfil `acctA`. 

   Consulte mais informações sobre como configurar perfis de credenciais e como usar perfis nomeados em [Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) no *Guia do usuário da AWS Command Line Interface*. 

1. Use os comandos a seguir para criar o bucket `amzn-s3-demo-source-bucket` e habilitar o versionamento nele. Os comandos de exemplo a seguir criam o bucket `amzn-s3-demo-source-bucket` na região Leste dos EUA (Norte da Virgínia) (`us-east-1`).

   ```
   aws s3api create-bucket \
   --bucket amzn-s3-demo-source-bucket \
   --region us-east-1 \
   --profile acctA
   ```

   ```
   aws s3api put-bucket-versioning \
   --bucket amzn-s3-demo-source-bucket \
   --versioning-configuration Status=Enabled \
   --profile acctA
   ```

1. Use os comandos a seguir para criar o bucket `amzn-s3-demo-destination-bucket` e habilitar o versionamento nele. Os comandos de exemplo a seguir criam o bucket `amzn-s3-demo-destination-bucket` na região Oeste dos EUA (Oregon) (`us-west-2`). 
**nota**  
Para configurar a replicação quando os buckets `amzn-s3-demo-source-bucket` e `amzn-s3-demo-destination-bucket` estiverem na mesma Conta da AWS, use o mesmo perfil. Este exemplo usa `acctA`. Para configurar a replicação quando os buckets pertencerem a Contas da AWS distintas, especifique diferentes perfis para cada um. 

   

   ```
   aws s3api create-bucket \
   --bucket amzn-s3-demo-destination-bucket \
   --region us-west-2 \
   --create-bucket-configuration LocationConstraint=us-west-2 \
   --profile acctA
   ```

   ```
   aws s3api put-bucket-versioning \
   --bucket amzn-s3-demo-destination-bucket \
   --versioning-configuration Status=Enabled \
   --profile acctA
   ```

1. Em seguida, crie um perfil de serviço do IAM. Você especifica esse perfil na configuração da replicação que adiciona ao bucket `amzn-s3-demo-source-bucket` posteriormente. O Amazon S3 assume essa função para replicar objetos em seu nome. A função do IAM é criada em duas etapas:
   + Crie uma função de serviço.
   + Anexar uma política de permissões à função.

   1. Para criar um perfil de serviço do IAM, faça o seguinte:

      1. Copie a política de confiança a seguir e salve-a em um arquivo com o nome `s3-role-trust-policy-kmsobj.json` no diretório atual do seu computador local. Essa política concede à entidade principal do serviço Amazon S3 as permissões para assumir o perfil a fim de que o Amazon S3 possa executar tarefas em seu nome.

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

****  

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

------

      1. Use o comando a seguir para criar o perfil.

         ```
         $ aws iam create-role \
         --role-name replicationRolekmsobj \
         --assume-role-policy-document file://s3-role-trust-policy-kmsobj.json  \
         --profile acctA
         ```

   1. Em seguida, anexe uma política de permissões ao perfil. Essa política concede permissões para várias ações de bucket e objetos do Amazon S3. 

      1. Copie a política de permissões a seguir e salve-a em um arquivo com o nome `s3-role-permissions-policykmsobj.json` no diretório atual do computador local. Crie um perfil do IAM e, posteriormente, anexe a política a ele. 
**Importante**  
Na política de permissões, especifique os IDs de chave do AWS KMS que serão usados para criptografar os buckets `amzn-s3-demo-source-bucket` e `amzn-s3-demo-destination-bucket`. É necessário criar duas chaves separadas do KMS para os buckets `amzn-s3-demo-source-bucket` e `amzn-s3-demo-destination-bucket`. As AWS KMS keys nunca são compartilhadas fora da Região da AWS em que foram criadas. 

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

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Action":[
                     "s3:ListBucket",
                     "s3:GetReplicationConfiguration",
                     "s3:GetObjectVersionForReplication",
                     "s3:GetObjectVersionAcl",
                     "s3:GetObjectVersionTagging"
                  ],
                  "Effect":"Allow",
                  "Resource":[
                     "arn:aws:s3:::amzn-s3-demo-source-bucket",
                     "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
                  ]
               },
               {
                  "Action":[
                     "s3:ReplicateObject",
                     "s3:ReplicateDelete",
                     "s3:ReplicateTags"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLikeIfExists":{
                        "s3:x-amz-server-side-encryption":[
                           "aws:kms",
                           "AES256",
                           "aws:kms:dsse"
                        ],
                        "s3:x-amz-server-side-encryption-aws-kms-key-id":[
                           "AWS KMS key IDs(in ARN format) to use for encrypting object replicas"  
                        ]
                     }
                  },
                  "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
               },
               {
                  "Action":[
                     "kms:Decrypt"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLike":{
                        "kms:ViaService":"s3.us-east-1.amazonaws.com",
                        "kms:EncryptionContext:aws:s3:arn":[
                           "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
                        ]
                     }
                  },
                  "Resource":[
                     "arn:aws:kms:us-east-1:111122223333:key/key-id" 
                  ]
               },
               {
                  "Action":[
                     "kms:Encrypt"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLike":{
                        "kms:ViaService":"s3.us-west-2.amazonaws.com",
                        "kms:EncryptionContext:aws:s3:arn":[
                           "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
                        ]
                     }
                  },
                  "Resource":[
                     "arn:aws:kms:us-west-2:111122223333:key/key-id" 
                  ]
               }
            ]
         }
         ```

------

      1. Crie uma política e anexe-a à função.

         ```
         $ aws iam put-role-policy \
         --role-name replicationRolekmsobj \
         --policy-document file://s3-role-permissions-policykmsobj.json \
         --policy-name replicationRolechangeownerPolicy \
         --profile acctA
         ```

1. Depois, adicione a configuração de replicação a seguir ao bucket `amzn-s3-demo-source-bucket`. Isso instrui o Amazon S3 a replicar objetos com o prefixo `Tax/` no bucket `amzn-s3-demo-destination-bucket`. 
**Importante**  
Na configuração da replicação, especifique o perfil do IAM que o Amazon S3 pode assumir. Você só poderá fazer isso se tiver a permissão `iam:PassRole`. O perfil especificado no comando da CLI deve ter essa permissão. Para ter mais informações, consulte [Conceder permissões ao usuário para transmitir um perfil a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) no *Guia do usuário do IAM*.

   ```
    <ReplicationConfiguration>
     <Role>IAM-Role-ARN</Role>
     <Rule>
       <Priority>1</Priority>
       <DeleteMarkerReplication>
          <Status>Disabled</Status>
       </DeleteMarkerReplication>
       <Filter>
          <Prefix>Tax</Prefix>
       </Filter>
       <Status>Enabled</Status>
       <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
       </SourceSelectionCriteria>
       <Destination>
         <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
         <EncryptionConfiguration>
           <ReplicaKmsKeyID>AWS KMS key IDs to use for encrypting object replicas</ReplicaKmsKeyID>
         </EncryptionConfiguration>
       </Destination>
     </Rule>
   </ReplicationConfiguration>
   ```

   Para adicionar a configuração de replicação ao bucket `amzn-s3-demo-source-bucket`, faça o seguinte:

   1. A AWS CLI requer que você especifique a configuração de replicação como JSON. Salve o JSON a seguir em um arquivo (`replication.json`) no diretório atual local do seu computador local. 

      ```
      {
         "Role":"IAM-Role-ARN",
         "Rules":[
            {
               "Status":"Enabled",
               "Priority":1,
               "DeleteMarkerReplication":{
                  "Status":"Disabled"
               },
               "Filter":{
                  "Prefix":"Tax"
               },
               "Destination":{
                  "Bucket":"arn:aws:s3:::amzn-s3-demo-destination-bucket",
                  "EncryptionConfiguration":{
                     "ReplicaKmsKeyID":"AWS KMS key IDs (in ARN format) to use for encrypting object replicas"
                  }
               },
               "SourceSelectionCriteria":{
                  "SseKmsEncryptedObjects":{
                     "Status":"Enabled"
                  }
               }
            }
         ]
      }
      ```

   1. Edite o JSON para fornecer valores para o bucket `amzn-s3-demo-destination-bucket`, os `AWS KMS key IDs (in ARN format)` e o `IAM-role-ARN`. Salve as alterações.

   1. Use o comando a seguir para adicionar a configuração de replicação ao bucket `amzn-s3-demo-source-bucket`. Não deixe fornece o nome do bucket de `amzn-s3-demo-source-bucket`.

      ```
      $ aws s3api put-bucket-replication \
      --replication-configuration file://replication.json \
      --bucket amzn-s3-demo-source-bucket \
      --profile acctA
      ```

1. Teste a configuração para verificar se os objetos criptografados estão replicados. No console do Amazon S3, faça o seguinte:

   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 bucket de `amzn-s3-demo-source-bucket`, crie uma pasta denominada `Tax`. 

   1. Adicione objetos de amostra à pasta. Não se esqueça de escolher a opção de criptografia e especificar a chave do KMS para criptografar os objetos. 

   1. Verifique se o bucket `amzn-s3-demo-destination-bucket` contém as réplicas dos objetos e se elas são criptografadas usando a chave do KMS especificada na configuração. Para obter mais informações, consulte [Obtenção de informações sobre o status da replicação](replication-status.md).

### Uso da SDKs AWS
<a name="replication-ex4-sdk"></a>

Para obter um exemplo de código que mostra como adicionar uma configuração da replicação, consulte [Uso da SDKs AWS](replication-walkthrough1.md#replication-ex1-sdk). Você precisa modificar a configuração de replicação adequadamente. 

 