

# Visão geral da configuração da replicação em tempo real
<a name="replication-how-setup"></a>

**nota**  
Objetos que já existiam antes de você configurar a replicação não são replicados automaticamente. Em outras palavras: o Amazon S3 não replica os objetos retroativamente. Para replicar objetos que foram criados antes da configuração de replicação, use S3 Batch Replication. Consulte mais informações sobre como configurar o Replicação em Lote em [Replicar objetos existentes](s3-batch-replication-batch.md).

Adicione uma configuração de replicação ao bucket de origem para habilitar a replicação em tempo real: Replicação na Mesma Região (SRR) ou Replicação Entre Regiões Diferentes (CRR). Essa configuração instrui o Amazon S3 a replicar objetos conforme especificado. Na configuração de replicação, você deve fornecer o seguinte:
+ **Os buckets de destino**: o bucket ou buckets onde você quer que o Simple Storage Service (Amazon S3) replique os objetos.
+ **Os objetos que você deseja replicar**: é possível replicar todos os objetos no bucket de origem ou um subgrupo de objetos. Identifique um subgrupo fornecendo, na configuração, um [prefixo do nome da chave](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#keyprefix), uma ou mais tags de objeto ou ambos.

  Por exemplo, se você configurar uma regra de replicação para replicar somente objetos com o prefixo de nome da chave `Tax/`, o Amazon S3 replicará objetos com chaves como `Tax/doc1` ou `Tax/doc2`. Porém, ele não replica objetos com a chave `Legal/doc3`. Se você especificar um prefixo e uma ou mais etiquetas, o Simple Storage Service (Amazon S3) replicará somente os objetos com o prefixo das chaves e as etiquetas específicas.
+ **Um perfil do AWS Identity and Access Management (IAM)**: o Amazon S3 assume esse perfil do IAM para replicar objetos em seu nome. Consulte mais informações sobre como criar esse perfil do IAM e gerenciar permissões em [Configurar permissões para replicação em tempo real](setting-repl-config-perm-overview.md).

Além desses requisitos mínimos, você pode escolher as seguintes opções: 
+ **Classe de armazenamento de réplicas**: por padrão, o Simple Storage Service (Amazon S3) armazena réplicas de objetos usando a mesma classe de armazenamento do objeto de origem. Você pode especificar uma classe de armazenamento diferente para as réplicas.
+ **Propriedade da réplica**: o Simple Storage Service (Amazon S3) pressupõe que a réplica de um objeto continue pertencendo ao proprietário do objeto de origem. Portanto, quando ele replica objetos, também replica a lista de controle de acesso (ACL) a objetos correspondente ou a configuração de propriedade de objetos do S3. Se os buckets de origem e destino pertencerem a Contas da AWS diferentes, você poderá configurar a replicação para alterar o proprietário de uma réplica para a Conta da AWS que é proprietária do bucket de destino. Para obter mais informações, consulte [Alterar o proprietário da réplica](replication-change-owner.md).

É possível configurar a replicação usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), SDKs da AWS ou a API REST do Amazon S3. Consulte demonstrações detalhadas de como configurar a replicação em [Exemplos para configurar a replicação em tempo real](replication-example-walkthroughs.md).

 O Amazon S3 fornece operações da API REST para permitir a configuração das regras de replicação. Para obter mais informações, consulte os tópicos a seguir na *Referência da API do Amazon Simple Storage Service*:
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html) 

**Topics**
+ [

# Elementos do arquivo de configuração de replicação
](replication-add-config.md)
+ [

# Configurar permissões para replicação em tempo real
](setting-repl-config-perm-overview.md)
+ [

# Exemplos para configurar a replicação em tempo real
](replication-example-walkthroughs.md)

# Elementos do arquivo de configuração de replicação
<a name="replication-add-config"></a>

O Amazon S3 armazena uma configuração de replicação como XML. Se estiver configurando a replicação programaticamente por meio da API REST do Amazon S3, você especificará os vários elementos da configuração de replicação nesse arquivo XML. Se estiver configurando a replicação por meio da AWS Command Line Interface (AWS CLI), especifique a configuração de replicação usando o formato JSON. Com relação a exemplos de JSON, consulte as demonstrações em [Exemplos para configurar a replicação em tempo real](replication-example-walkthroughs.md).

**nota**  
A versão mais recente do formato XML de configuração da replicação é V2. As configurações de replicação XML V2 são aquelas que contêm o elemento `<Filter>` para regras e regras que especificam o Controle do tempo de replicação do S3 (S3 RTC).  
Para ver a versão da configuração de replicação, você pode usar a operação de API `GetBucketReplication`. Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) na *Referência da API do Amazon Simple Storage Service*.   
Para compatibilidade com versões anteriores, o Amazon S3 continua a permitir o formato de configuração de replicação XML V1. Se você usou o formato de configuração de replicação XML V1, consulte [Considerações sobre a compatibilidade com versões anteriores](#replication-backward-compat-considerations) para considerações sobre a compatibilidade com versões anteriores.

No arquivo XML de configuração de replicação, é necessário especificar um perfil do AWS Identity and Access Management (IAM) e uma ou mais regras, conforme mostrado no seguinte exemplo:

```
<ReplicationConfiguration>
    <Role>IAM-role-ARN</Role>
    <Rule>
        ...
    </Rule>
    <Rule>
         ... 
    </Rule>
     ...
</ReplicationConfiguration>
```

O Amazon S3 não pode replicar objetos sem sua permissão. Você concede permissões ao Amazon S3 com o perfil do IAM especificado na configuração de replicação. O Amazon S3 assume esse perfil do IAM para replicar objetos em seu nome. Primeiro você precisa fornecer as permissões necessárias à função do IAM. Para obter mais informações sobre como gerenciar permissões, consulte [Configurar permissões para replicação em tempo real](setting-repl-config-perm-overview.md).

Você adiciona apenas uma regra na configuração da replicação nos seguintes cenários:
+ Você quer replicar todos os objetos.
+ Você quer replicar apenas um subgrupo de objetos. Você identifica o subgrupo do objeto adicionando um filtro à regra. No filtro, você especifica um prefixo de chaves do objeto, tags ou uma combinação de ambos, de maneira a identificar o subgrupo de objetos aos quais a regra se aplica. Os filtros têm como alvo objetos que correspondem aos valores exatos que você especifica.

Se quiser replicar subgrupos de objetos diferentes, adicione várias regras em uma configuração de replicação. Em cada regra, você especifica um filtro que seleciona um subgrupo diferente. Por exemplo, talvez você queira replicar objetos com os prefixos de chaves `tax/` ou `document/`. Para fazer isso, você adiciona duas regras, uma que especifica o filtro de prefixo das chaves `tax/` e outro que especifica o prefixo das chaves `document/`. Consulte mais informações sobre prefixos de chave de objeto em [Organizar objetos usando prefixos](using-prefixes.md).

As seções a seguir fornecem informações adicionais.

**Topics**
+ [

## Configuração da regra básica
](#replication-config-min-rule-config)
+ [

## Opcional: Especificação de um filtro
](#replication-config-optional-filter)
+ [

## Configurações adicionais de destino
](#replication-config-optional-dest-config)
+ [

## Exemplo de configurações de replicação
](#replication-config-example-configs)
+ [

## Considerações sobre a compatibilidade com versões anteriores
](#replication-backward-compat-considerations)

## Configuração da regra básica
<a name="replication-config-min-rule-config"></a>

Cada regra deve incluir o status e a prioridade da regra. A regra também precisa indicar se os marcadores de exclusão devem ser replicados. 
+ O elemento `<Status>` indica se a regra está habilitada ou desabilitada usando os valores `Enabled` ou `Disabled`. Se uma regra estiver desabilitada, o Amazon S3 não executará as ações especificadas nela. 
+ O elemento `<Priority>` indica qual regra tem precedência sempre que duas ou mais regras de replicação entram em conflito. O Simple Storage Service (Amazon S3) tenta replicar objetos de acordo com todas as regras de replicação. Porém, se houver duas ou mais regras com o mesmo bucket de destino, os objetos serão replicados de acordo com a regra com a prioridade mais alta. Quanto maior o número, maior a prioridade.
+ O elemento `<DeleteMarkerReplication>` indica se os marcadores de exclusão devem ser replicados usando os valores `Enabled` ou `Disabled`.

Na configuração o elemento `<Destination>`, é necessário fornecer o nome do bucket ou buckets de destino onde você deseja que o Amazon S3 replique objetos. 

O exemplo a seguir mostra os requisitos mínimos para uma regra da V2. Para compatibilidade com versões anteriores, o Amazon S3 continua a oferecer compatibilidade com o formato XML V1. Para obter mais informações, consulte [Considerações sobre a compatibilidade com versões anteriores](#replication-backward-compat-considerations).

```
...
    <Rule>
        <ID>Rule-1</ID>
        <Status>Enabled-or-Disabled</Status>
        <Filter>
            <Prefix></Prefix>   
        </Filter>
        <Priority>integer</Priority>
        <DeleteMarkerReplication>
           <Status>Enabled-or-Disabled</Status>
        </DeleteMarkerReplication>
        <Destination>        
           <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket> 
        </Destination>    
    </Rule>
    <Rule>
         ...
    </Rule>
     ...
...
```

Você também pode especificar outras opções de configuração. Por exemplo: você pode optar pelo uso de uma classe de armazenamento para réplicas de objetos diferentes da classe do objeto de origem. 

## Opcional: Especificação de um filtro
<a name="replication-config-optional-filter"></a>

Para escolher um subgrupo de objetos aos quais a regra se aplique, adicione um filtro opcional. Você pode filtrar pelo prefixo das chaves do objeto, as etiquetas do objeto ou uma combinação de ambos. Se você filtrar tanto pelo prefixo das chaves quanto pelas etiquetas do objeto, o Amazon S3 combinará os filtros usando o operador lógico `AND`. Em outras palavras, a regra se aplica ao subgrupo de objetos com as etiquetas e o prefixo de chave específicos. 

**Filtro baseado no prefixo da chave de objeto**  
Para especificar uma regra com um filtro baseado no prefixo de chaves de um objeto, use o XML a seguir. É possível especificar apenas um prefixo por regra.

```
<Rule>
    ...
    <Filter>
        <Prefix>key-prefix</Prefix>   
    </Filter>
    ...
</Rule>
...
```

**Filtrar com base em tags de objeto**  
Para especificar uma regra com um filtro baseado nas tags do objeto, use o XML a seguir. Você pode especificar uma ou mais tags de objeto.

```
<Rule>
    ...
    <Filter>
        <And>
            <Tag>
                <Key>key1</Key>
                <Value>value1</Value>
            </Tag>
            <Tag>
                <Key>key2</Key>
                <Value>value2</Value>
            </Tag>
             ...
        </And>
    </Filter>
    ...
</Rule>
...
```

**Filtrar com um prefixo de chave e tags de objeto**  
Para especificar um filtro de regra com uma combinação de um prefixo de chaves e tags de objeto, use o XML a seguir. Você envolve esses filtros em um elemento pai `<And>`. O Amazon S3 executa uma operação lógica `AND` para combinar esses filtros. Em outras palavras, a regra se aplica ao subgrupo de objetos com as etiquetas e o prefixo de chave específicos. 

```
<Rule>
    ...
    <Filter>
        <And>
            <Prefix>key-prefix</Prefix>
            <Tag>
                <Key>key1</Key>
                <Value>value1</Value>
            </Tag>
            <Tag>
                <Key>key2</Key>
                <Value>value2</Value>
            </Tag>
             ...
    </Filter>
    ...
</Rule>
...
```

**nota**  
Se você especificar uma regra com um elemento `<Filter>` vazio, a regra será aplicada a todos os objetos do bucket.
Ao usar regras de replicação baseadas em etiquetas com replicação em tempo real, novos objetos precisam ser marcados com a etiqueta da regra de replicação correspondente na operação `PutObject`. Caso contrário, os objetos não serão replicados. Se os objetos forem marcados após a operação `PutObject`, esses objetos também não serão replicados.   
Para replicar objetos que foram marcados após a operação `PutObject`, use a funcionalidade Replicação em Lote do S3. Para obter mais informações sobre replicação em lote, consulte [Replicar objetos existentes](s3-batch-replication-batch.md).

## Configurações adicionais de destino
<a name="replication-config-optional-dest-config"></a>

Na configuração de destino, especifique o bucket onde você quer que o Amazon S3 replique objetos. Você pode definir configurações para replicar objetos de um bucket de origem para um bucket de destino. 

```
...
<Destination>        
    <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
</Destination>
...
```

Você pode adicionar as seguintes opções no elemento `<Destination>`.

**Topics**
+ [

### Especificar classe de armazenamento
](#storage-class-configuration)
+ [

### Adicionar vários buckets de destino
](#multiple-destination-buckets-configuration)
+ [

### Especificar parâmetros diferentes para cada regra de replicação com vários buckets de destino
](#replication-rule-configuration)
+ [

### Alterar a propriedade da réplica
](#replica-ownership-configuration)
+ [

### Ativar o controle do tempo de replicação do S3
](#rtc-configuration)
+ [

### Replicar objetos criados com criptografia do lado do servidor com o uso do AWS KMS.
](#sse-kms-configuration)

### Especificar classe de armazenamento
<a name="storage-class-configuration"></a>

Você pode especificar a classe de armazenamento para as réplicas do objeto. Por padrão, o Amazon S3 usa a classe de armazenamento do objeto de origem para criar as réplicas do objeto.

```
...
<Destination>
       <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
       <StorageClass>storage-class</StorageClass>
</Destination>
...
```

### Adicionar vários buckets de destino
<a name="multiple-destination-buckets-configuration"></a>

Você pode adicionar vários buckets de destino em uma única configuração de replicação, como segue.

```
...
<Rule>
    <ID>Rule-1</ID>
    <Status>Enabled-or-Disabled</Status>
    <Priority>integer</Priority>
    <DeleteMarkerReplication>
       <Status>Enabled-or-Disabled</Status>
    </DeleteMarkerReplication>
    <Destination>        
       <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket1</Bucket> 
    </Destination>    
</Rule>
<Rule>
    <ID>Rule-2</ID>
    <Status>Enabled-or-Disabled</Status>
    <Priority>integer</Priority>
    <DeleteMarkerReplication>
       <Status>Enabled-or-Disabled</Status>
    </DeleteMarkerReplication>
    <Destination>        
       <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket2</Bucket> 
    </Destination>    
</Rule>
...
```

### Especificar parâmetros diferentes para cada regra de replicação com vários buckets de destino
<a name="replication-rule-configuration"></a>

Ao adicionar vários buckets de destino em uma única configuração de replicação, você pode especificar parâmetros diferentes para cada regra de replicação, da seguinte forma.

```
...
<Rule>
    <ID>Rule-1</ID>
    <Status>Enabled-or-Disabled</Status>
    <Priority>integer</Priority>
    <DeleteMarkerReplication>
       <Status>Disabled</Status>
    </DeleteMarkerReplication>
      <Metrics>
    <Status>Enabled</Status>
    <EventThreshold>
      <Minutes>15</Minutes> 
    </EventThreshold>
  </Metrics>
    <Destination>        
       <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket1</Bucket> 
    </Destination>    
</Rule>
<Rule>
    <ID>Rule-2</ID>
    <Status>Enabled-or-Disabled</Status>
    <Priority>integer</Priority>
    <DeleteMarkerReplication>
       <Status>Enabled</Status>
    </DeleteMarkerReplication>
      <Metrics>
    <Status>Enabled</Status>
    <EventThreshold>
      <Minutes>15</Minutes> 
    </EventThreshold>
  </Metrics>
  <ReplicationTime>
    <Status>Enabled</Status>
    <Time>
      <Minutes>15</Minutes>
    </Time>
  </ReplicationTime>
    <Destination>        
       <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket2</Bucket> 
    </Destination>    
</Rule>
...
```

### Alterar a propriedade da réplica
<a name="replica-ownership-configuration"></a>

Quando os buckets de origem e de destino não pertencem às mesmas contas, você pode alterar a propriedade da réplica para a Conta da AWS que for a proprietária do bucket de destino. Para fazer isso, adicione o elemento `<AccessControlTranslation>`. Esse elemento assume o valor de `Destination`.

```
...
<Destination>
   <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
   <Account>destination-bucket-owner-account-id</Account>
   <AccessControlTranslation>
       <Owner>Destination</Owner>
   </AccessControlTranslation>
</Destination>
...
```

Se você não adicionar o elemento `<AccessControlTranslation>` à configuração de replicação, as réplicas pertencerão à mesma Conta da AWS que for a proprietária do objeto de origem. Para obter mais informações, consulte [Alterar o proprietário da réplica](replication-change-owner.md).

### Ativar o controle do tempo de replicação do S3
<a name="rtc-configuration"></a>

Você pode habilitar o Controle do tempo de replicação do S3 (S3 RTC) na configuração de replicação. O S3 RTC replica a maioria dos objetos em segundos e 99,99 por cento dos objetos em 15 minutos (baseado em um acordo de nível de serviço). 

**nota**  
Somente um valor de `<Minutes>15</Minutes>` é aceito para os elementos `<EventThreshold>` e `<Time>`.

```
...
<Destination>
  <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
  <Metrics>
    <Status>Enabled</Status>
    <EventThreshold>
      <Minutes>15</Minutes> 
    </EventThreshold>
  </Metrics>
  <ReplicationTime>
    <Status>Enabled</Status>
    <Time>
      <Minutes>15</Minutes>
    </Time>
  </ReplicationTime>
</Destination>
...
```

Para obter mais informações, consulte [Atender aos requisitos de conformidade com o Controle do Tempo de Replicação do S3](replication-time-control.md). Consulte exemplos de API em [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) na *Referência de API do Amazon Simple Storage Service*.

### Replicar objetos criados com criptografia do lado do servidor com o uso do AWS KMS.
<a name="sse-kms-configuration"></a>

Seu bucket de origem pode conter objetos que foram criados com criptografia no servidor usando as chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Por padrão, o Amazon S3 não replica esses objetos. Opcionalmente, você pode direcionar o Amazon S3 para replicar esses objetos. Para fazer isso, primeiro opte explicitamente por esse recurso adicionando o elemento `<SourceSelectionCriteria>`. Depois, forneça a AWS KMS key (para a Região da AWS do bucket de destino) a ser usada para criptografar réplicas de objetos. Os exemplo a seguir mostra como especificar esses elementos.

```
...
<SourceSelectionCriteria>
  <SseKmsEncryptedObjects>
    <Status>Enabled</Status>
  </SseKmsEncryptedObjects>
</SourceSelectionCriteria>
<Destination>
  <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
  <EncryptionConfiguration>
    <ReplicaKmsKeyID>AWS KMS key ID to use for encrypting object replicas</ReplicaKmsKeyID>
  </EncryptionConfiguration>
</Destination>
...
```

Para obter mais informações, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).

## Exemplo de configurações de replicação
<a name="replication-config-example-configs"></a>

Para começar, você pode adicionar os seguintes exemplos de configuração de replicação ao bucket, conforme adequado.

**Importante**  
Para adicionar uma configuração de replicação a um bucket, é preciso ter a permissão `iam:PassRole`. Com essa permissão, você pode aprovar a função do IAM que concede as permissões de replicação do Amazon S3. Você especifica a função do IAM ao fornecer o nome de recurso da Amazon (ARN) usado no elemento `<Role>` na configuração de replicação XML. Para obter mais informações, consulte [Conceder permissões ao usuário para transmitir uma função 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*.

**Example 1: Configuração de replicação com uma regra**  
A configuração de replicação básica a seguir especifica uma regra. A regra especifica uma função do IAM que o Amazon S3 pode assumir e um bucket de destino para único para réplicas de objetos. O valor do elemento `<Status>` de `Enabled` indica que a regra está em vigor.  

```
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Role>arn:aws:iam::account-id:role/role-name</Role>
  <Rule>
    <Status>Enabled</Status>

    <Destination>
      <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
    </Destination>
  </Rule>
</ReplicationConfiguration>
```
Para escolher um subgrupo de objetos a serem replicados, adicione um filtro. Na configuração a seguir, o filtro especifica um prefixo de chaves do objeto. Essa regra se aplica aos objetos que têm o prefixo `Tax/` no nome da chave.   

```
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Role>arn:aws:iam::account-id:role/role-name</Role>
  <Rule>
    <Status>Enabled</Status>
    <Priority>1</Priority>
    <DeleteMarkerReplication>
       <Status>string</Status>
    </DeleteMarkerReplication>

    <Filter>
       <Prefix>Tax/</Prefix>
    </Filter>

    <Destination>
       <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
    </Destination>

  </Rule>
</ReplicationConfiguration>
```
Se você especificar o elemento `<Filter>`, inclua também os elementos `<Priority>` e `<DeleteMarkerReplication>`. Neste exemplo, o valor que você define para o elemento `<Priority>` é irrelevante, pois há somente uma regra.  
Na configuração a seguir, o filtro especifica um prefixo e duas tags. A regra se aplica ao subgrupo de objetos com o prefixo de chaves e as tags especificados. Mais especificamente, ela se aplica aos objetos com o prefixo `Tax/` nos nomes de chave e às duas tags de objeto especificadas. Neste exemplo, o valor que você define para o elemento `<Priority>` é irrelevante, pois há somente uma regra.  

```
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Role>arn:aws:iam::account-id:role/role-name</Role>
  <Rule>
    <Status>Enabled</Status>
    <Priority>1</Priority>
    <DeleteMarkerReplication>
       <Status>string</Status>
    </DeleteMarkerReplication>

    <Filter>
        <And>
          <Prefix>Tax/</Prefix>
          <Tag>
             <Tag>
                <Key>tagA</Key>
                <Value>valueA</Value>
             </Tag>
          </Tag>
          <Tag>
             <Tag>
                <Key>tagB</Key>
                <Value>valueB</Value>
             </Tag>
          </Tag>
       </And>

    </Filter>

    <Destination>
        <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
    </Destination>

  </Rule>
</ReplicationConfiguration>
```
Você pode especificar uma classe de armazenamento para as réplicas, da seguinte forma:  

```
<?xml version="1.0" encoding="UTF-8"?>

<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Role>arn:aws:iam::account-id:role/role-name</Role>
  <Rule>
    <Status>Enabled</Status>
    <Destination>
       <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
       <StorageClass>storage-class</StorageClass>
    </Destination>
  </Rule>
</ReplicationConfiguration>
```
Você pode especificar uma classe de armazenamento à qual o Amazon S3 ofereça suporte.

**Example 2: Configuração de replicação com duas regras**  

**Example**  
Na configuração de replicação a seguir, as regras especificam o seguinte:  
+ Cada regra filtra em um prefixo de chave diferente para que cada regra se aplique a um subconjunto distinto de objetos. Nesse exemplo, o Simple Storage Service (Amazon S3) replica objetos com os nomes de chave *`Tax/doc1.pdf`* e *`Project/project1.txt`*, mas não replica objetos com o nome da chave *`PersonalDoc/documentA`*. 
+ Embora ambas as regras especifiquem um valor para o elemento `<Priority>`, a prioridade da regra é irrelevante, pois as regras se aplicam a dois grupos distintos de objetos. O exemplo a seguir mostra o que acontece quando aplicamos uma prioridade de regras. 
+ A segunda regra especifica uma classe de armazenamento S3 Standard – IA para réplicas de objetos. O Amazon S3 usa a classe de armazenamento especificada para essas réplicas de objetos.
   

```
<?xml version="1.0" encoding="UTF-8"?>

<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Role>arn:aws:iam::account-id:role/role-name</Role>
  <Rule>
    <Status>Enabled</Status>
    <Priority>1</Priority>
    <DeleteMarkerReplication>
       <Status>string</Status>
    </DeleteMarkerReplication>
    <Filter>
        <Prefix>Tax</Prefix>
    </Filter>
    <Status>Enabled</Status>
    <Destination>
      <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
    </Destination>
     ...
  </Rule>
 <Rule>
    <Status>Enabled</Status>
    <Priority>2</Priority>
    <DeleteMarkerReplication>
       <Status>string</Status>
    </DeleteMarkerReplication>
    <Filter>
        <Prefix>Project</Prefix>
    </Filter>
    <Status>Enabled</Status>
    <Destination>
      <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
     <StorageClass>STANDARD_IA</StorageClass>
    </Destination>
     ...
  </Rule>


</ReplicationConfiguration>
```

**Example 3: Configuração da replicação com duas regras e prefixos sobrepostos**  <a name="overlap-rule-example"></a>
Nessa configuração, as duas regras especificam filtros com os prefixos das chaves sobrepostos, *`star`* e *`starship`*. As duas regras se aplicam aos objetos com o nome de chave *`starship-x`*. Nesse caso, o Amazon S3 usa a prioridade da regra para determinar qual regra deve ser aplicada. Quanto maior o número, maior a prioridade.  

```
<ReplicationConfiguration>

  <Role>arn:aws:iam::account-id:role/role-name</Role>

  <Rule>
    <Status>Enabled</Status>
    <Priority>1</Priority>
    <DeleteMarkerReplication>
       <Status>string</Status>
    </DeleteMarkerReplication>
    <Filter>
        <Prefix>star</Prefix>
    </Filter>
    <Destination>
      <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
    </Destination>
  </Rule>
  <Rule>
    <Status>Enabled</Status>
    <Priority>2</Priority>
    <DeleteMarkerReplication>
       <Status>string</Status>
    </DeleteMarkerReplication>
    <Filter>
        <Prefix>starship</Prefix>
    </Filter>    
    <Destination>
      <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
    </Destination>
  </Rule>
</ReplicationConfiguration>
```

**Example 4: Demonstrações de exemplo**  
Para obter exemplos de demonstrações, consulte [Exemplos para configurar a replicação em tempo real](replication-example-walkthroughs.md).

Para obter mais informações sobre a estrutura XML da configuração de replicação, consulte [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) na *Referência da API do Amazon Simple Storage Service*. 

## Considerações sobre a compatibilidade com versões anteriores
<a name="replication-backward-compat-considerations"></a>

A versão mais recente do formato XML de configuração da replicação é V2. As configurações de replicação XML V2 são aquelas que contêm o elemento `<Filter>` para regras e regras que especificam o Controle do tempo de replicação do S3 (S3 RTC).

Para ver a versão da configuração de replicação, você pode usar a operação de API `GetBucketReplication`. Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) na *Referência da API do Amazon Simple Storage Service*. 

Para compatibilidade com versões anteriores, o Amazon S3 continua a permitir o formato de configuração de replicação XML V1. Se você usou o formato de configuração da replicação XML V1, leve em consideração as seguintes questões que afetam a compatibilidade com versões anteriores:
+ O formato XML V2 da configuração de replicação inclui o elemento `<Filter>` para regras. Com o elemento `<Filter>`, você pode especificar filtros de objeto com base no prefixo de chaves do objeto, tags ou ambos para colocar dentro do escopo os objetos aos quais a regra se aplica. O formato XML V1 da configuração de replicação permite a filtragem com base apenas no prefixo da chave. Nesse caso, você adiciona o elemento `<Prefix>` diretamente como elemento-filho do elemento `<Rule>`, conforme o seguinte exemplo:

  ```
  <?xml version="1.0" encoding="UTF-8"?>
  <ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Role>arn:aws:iam::account-id:role/role-name</Role>
    <Rule>
      <Status>Enabled</Status>
      <Prefix>key-prefix</Prefix>
      <Destination>
         <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
      </Destination>
  
    </Rule>
  </ReplicationConfiguration>
  ```
+ Ao excluir um objeto do bucket de origem sem especificar um ID da versão do objeto, o Amazon S3 adicionar um marcador de exclusão. Se você usar o formato XML V1 da configuração de replicação, o Amazon S3 replicará somente os marcadores de exclusão resultantes das ações do usuário. Em outras palavras: o Amazon S3 só replica o marcador de exclusão se um usuário excluir um objeto. Se um objeto expirado for removido pelo Amazon S3 (como parte de uma ação de ciclo de vida), ele não replicará o marcador de exclusão. 

  No formato XML V2 da configuração de replicação, é possível habilitar a replicação do marcador de exclusão para regras que não se baseiam em tags. Para obter mais informações, consulte [Replicação de marcadores de exclusão entre intervalos](delete-marker-replication.md). 

 

# Configurar permissões para replicação em tempo real
<a name="setting-repl-config-perm-overview"></a>

Ao configurar a replicação em tempo real no Amazon S3, você deve adquirir as permissões necessárias do seguinte modo:
+ É necessário conceder um determinado conjunto de permissões à entidade principal (usuário ou perfil) do AWS Identity and Access Management (IAM) que criará as regras de replicação.
+ O Simple Storage Service (Amazon S3) precisa de permissões para replicar objetos em seu nome. Você concede essas permissões criando uma função do IAM e especificando essa função na configuração da replicação.
+ Quando os buckets de origem e de destino não pertencem à mesma conta, o proprietário do bucket de destino também deve conceder ao proprietário do bucket de origem permissões para armazenar réplicas.

**nota**  
Se você estiver usando o recurso Operações em Lote do S3 para replicar objetos sob demanda em vez de configurar a replicação em tempo real, será necessário definir um perfil e políticas do IAM diferentes para esse recurso. Consulte exemplos de política e perfil do IAM do Replicação em Lote em [Configurar um perfil do IAM para o Replicação em Lote do S3](s3-batch-replication-policies.md).

**Topics**
+ [

## Etapa 1: conceder permissões à entidade principal do IAM que está criando regras de replicação
](#setting-repl-config-role)
+ [

## Etapa 2: criar um perfil do IAM para o Amazon S3 assumir
](#setting-repl-config-same-acctowner)
+ [

## (Opcional) Etapa 3: conceder permissões quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes
](#setting-repl-config-crossacct)
+ [

## (Opcional) Etapa 4: conceder permissões ao para alterar a propriedade da réplica
](#change-replica-ownership)

## Etapa 1: conceder permissões à entidade principal do IAM que está criando regras de replicação
<a name="setting-repl-config-role"></a>

O usuário ou o perfil do IAM que você usará para criar regras de replicação precisa de permissões para isso, seja para replicações unidirecionais ou bidirecionais. Se o usuário ou o perfil não tiver essas permissões, não será possível criar regras de replicação. Consulte mais informações em [Identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no *Guia do usuário do IAM*.

O usuário ou o perfil precisa das seguintes ações:
+ `iam:AttachRolePolicy`
+ `iam:CreatePolicy`
+ `iam:CreateServiceLinkedRole`
+ `iam:PassRole`
+ `iam:PutRolePolicy`
+ `s3:GetBucketVersioning`
+ `s3:GetObjectVersionAcl`
+ `s3:GetObjectVersionForReplication`
+ `s3:GetReplicationConfiguration`
+ `s3:PutReplicationConfiguration`

Veja a seguir uma amostra de política do IAM que inclui essas ações.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetAccessPoint",
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets",
                "s3:PutReplicationConfiguration",
                "s3:GetReplicationConfiguration",
                "s3:GetBucketVersioning",
                "s3:GetObjectVersionForReplication",
                "s3:GetObjectVersionAcl",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetObjectVersion",
                "s3:GetBucketOwnershipControls",
                "s3:PutBucketOwnershipControls",
                "s3:GetObjectLegalHold",
                "s3:GetObjectRetention",
                "s3:GetBucketObjectLockConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1-*",
                "arn:aws:s3:::amzn-s3-demo-bucket2-*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:List*AccessPoint*",
                "s3:GetMultiRegion*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:Get*",
                "iam:CreateServiceLinkedRole",
                "iam:CreateRole",
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::*:role/service-role/s3*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:List*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:PutRolePolicy",
                "iam:CreatePolicy"
              ],
            "Resource": [
                "arn:aws:iam::*:policy/service-role/s3*",
                "arn:aws:iam::*:role/service-role/s3*"
            ]
        }
    ]
}
```

------

## Etapa 2: criar um perfil do IAM para o Amazon S3 assumir
<a name="setting-repl-config-same-acctowner"></a>



Por padrão, todos os recursos do Simple Storage Service (Amazon S3): buckets, objetos e sub-recursos relacionados, são privados, e somente o proprietário do recurso pode acessá-lo. O Amazon S3 precisa de permissões de leitura e replicação de objetos a partir do bucket de origem. Você concede essas permissões criando um perfil do IAM e especificando esse perfil na configuração da replicação. 

Esta seção explica a política de confiança e a política de permissões mínimas necessárias anexadas a esse perfil do IAM. As demonstrações de exemplo fornecem instruções passo a passo para criar uma função do IAM. Para obter mais informações, consulte [Exemplos para configurar a replicação em tempo real](replication-example-walkthroughs.md).

**nota**  
Se você estiver usando o console para criar sua configuração de replicação, recomendamos que ignore esta seção e, em vez disso, deixe que o console crie esse perfil do IAM e as políticas de confiança e permissão necessárias em seu nome.

A *política de confiança* identifica quais identidades de entidade principal podem assumir o perfil do IAM. A *política de permissões* especifica quais ações o perfil do IAM pode realizar, em quais recursos e sob quais condições. 
+ O exemplo a seguir mostra uma *política de confiança* na qual você identifica o Amazon S3 como a entidade principal do AWS service (Serviço da AWS) que pode assumir o perfil:

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

****  

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

------
+ O exemplo a seguir mostra uma *política de confiança* na qual você identifica o Amazon S3 e o Operações em Lote do S3 como entidades principais que podem assumir o perfil. Use essa abordagem se estiver criando um trabalho do recurso Replicação em Lote. Para obter mais informações, consulte [Criar um trabalho de replicação em lote para novas regras ou destinos de replicação](s3-batch-replication-new-config.md).

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

****  

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

------

  Para obter mais informações sobre funções do IAM, consulte [Funções do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) no *Manual do usuário do IAM*.
+ O exemplo a seguir mostra a *política de permissões*, na qual você concede ao perfil do IAM permissões para realizar as tarefas de replicação em seu nome. Quando o Amazon S3 assumir a função, ele terá as permissões que você especificar nessa política. Nesta política, `amzn-s3-demo-source-bucket` é o bucket de origem e `amzn-s3-demo-destination-bucket` é o bucket de destino.

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

****  

  ```
  {
     "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",
              "s3:GetObjectVersionTagging"
           ],
           "Resource": [
              "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
           ]
        },
        {
           "Effect": "Allow",
           "Action": [
              "s3:ReplicateObject",
              "s3:ReplicateDelete",
              "s3:ReplicateTags"
           ],
           "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        }
     ]
  }
  ```

------

  Essa política concede permissões para as seguintes ações:
  +  `s3:GetReplicationConfiguration` e `s3:ListBucket`: as permissões para essas ações no bucket `amzn-s3-demo-source-bucket` permitem que o Amazon S3 recupere a configuração de replicação e liste o conteúdo do bucket. (O modelo de permissões atual exige a permissão `s3:ListBucket` para acessar marcadores de exclusão.)
  + `s3:GetObjectVersionForReplication` e `s3:GetObjectVersionAcl`: as permissões para essas ações são concedidas em todos os objetos para permitir que o Simple Storage Service (Amazon S3) obtenha uma versão específica dos objetos e as listas de controle de acesso (ACL) associadas aos objetos. 

    
  + `s3:ReplicateObject` e `s3:ReplicateDelete`: as permissões para essas ações em todos os objetos no bucket `amzn-s3-demo-destination-bucket` permitem que o Simple Storage Service (Amazon S3) replique objetos ou marcadores de exclusão no bucket de destino. Para obter mais informações sobre marcadores de exclusão, consulte [Como a exclusão de operações afeta a replicação](replication-what-is-isnot-replicated.md#replication-delete-op). 
**nota**  
As permissões para a ação `s3:ReplicateObject` no bucket `amzn-s3-demo-destination-bucket` também permitem a replicação de metadados, como tags de objeto e ACLs. Portanto, você não precisa conceder permissão explícita para a ação `s3:ReplicateTags`.
  + `s3:GetObjectVersionTagging`: as permissões para essa ação nos objetos do bucket `amzn-s3-demo-source-bucket` permitem que o Amazon S3 leia as tags dos objetos para replicação. Para obter mais informações sobre etiquetas de objeto, consulte [Categorizar objetos usando tags](object-tagging.md). Se o Amazon S3 não tiver a permissão `s3:GetObjectVersionTagging`, ele replicará os objetos, mas não as tags dos objetos.

  Consulte uma lista de ações do Amazon S3 em [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#list_amazons3-actions-as-permissions) na *Referência de autorização do serviço*.

  Para ter mais informações sobre as permissões referentes a operações de API do S3 de acordo com os tipos de recurso do S3, consulte [Permissões obrigatórias para operações de API do Amazon S3](using-with-s3-policy-actions.md).
**Importante**  
Mais especificamente, a Conta da AWS proprietária da função do IAM precisa ter permissões para as ações que ela concede à função do IAM.   
Por exemplo, suponha que o bucket de origem contenha objetos pertencentes a uma outra Conta da AWS. O proprietário dos objetos deverá conceder explicitamente as permissões exigidas à Conta da AWS proprietária do perfil do IAM por meio de listas de controle de acesso (ACLs) dos objetos. Caso contrário, o Amazon S3 não conseguirá acessar os objetos e haverá falha na replicação dos objetos. Para obter informações sobre as permissões da ACL, consulte [Visão geral da lista de controle de acesso (ACL)](acl-overview.md).  
  
As permissões descritas aqui são relativas à configuração mínima da replicação. Se optar por adicionar configurações de replicação opcionais, será necessário conceder permissões adicionais ao Amazon S3:   
Para replicar objetos criptografados, você também precisará conceder as permissões de chave do AWS Key Management Service (AWS KMS) necessárias. Para obter mais informações, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para usar a funcionalidade Bloqueio de Objetos com replicação, é necessário conceder duas permissões adicionais no bucket de origem do S3 no perfil do AWS Identity and Access Management (IAM) usado para configurar a replicação. As duas permissões adicionais são `s3:GetObjectRetention` e `s3:GetObjectLegalHold`. Se o perfil tiver uma instrução de permissão `s3:Get*`, essa instrução satisfará o requisito. Para obter mais informações, consulte [Usar a funcionalidade Bloqueio de Objetos com a funcionalidade Replicação do S3](object-lock-managing.md#object-lock-managing-replication).

## (Opcional) Etapa 3: conceder permissões quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes
<a name="setting-repl-config-crossacct"></a>

Quando os buckets de origem e de destino não pertencem à mesma conta, o proprietário do bucket de destino também deve adicionar uma política de bucket para conceder ao proprietário do bucket de origem permissões para realizar as ações de replicação, como mostrado no exemplo a seguir. Neste exemplo de política, `amzn-s3-demo-destination-bucket` é o bucket de destino.

Também é possível usar o console do Amazon S3 para que essa política de bucket seja gerada automaticamente para você. Consulte mais informações em [Habilitar o recebimento de objetos replicados de um bucket de origem](#receiving-replicated-objects).

**nota**  
O formato do ARN do perfil pode parecer diferente. Se o perfil tiver sido criado usando o console, o formato do ARN será `arn:aws:iam::account-ID:role/service-role/role-name`. Se o perfil tiver sido criado usando a AWS CLI, o formato do ARN será `arn:aws:iam::account-ID:role/role-name`. Para obter mais informações, consulte [Funções do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) no *Guia do usuário do IAM*. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForDestinationBucket",
    "Statement": [
        {
            "Sid": "Permissions on objects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/source-account-IAM-role"
            },
            "Action": [
                "s3:ReplicateDelete",
                "s3:ReplicateObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "Permissions on bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/source-account-IAM-role"
            },
            "Action": [
                "s3:List*",
                "s3:GetBucketVersioning",
                "s3:PutBucketVersioning"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket"
        }
    ]
}
```

------

Para ver um exemplo, consulte [Configuração da replicação de buckets em contas diferentes](replication-walkthrough-2.md).

Se os objetos no bucket de origem estiverem marcados, observe o seguinte:
+ Se o proprietário do bucket de origem conceder ao Amazon S3 permissão para as ações `s3:GetObjectVersionTagging` e `s3:ReplicateTags` para replicação de tags de objeto (pela função do IAM), o Amazon S3 replicará as tags com os objetos. Para obter informações sobre a função do IAM, consulte [Etapa 2: criar um perfil do IAM para o Amazon S3 assumir](#setting-repl-config-same-acctowner).
+ Se o proprietário do bucket de destino não quiser replicar as tags, ele poderá adicionar a seguinte instrução à política do bucket de destino para negar explicitamente a permissão para a ação `s3:ReplicateTags`. Nesta política, `amzn-s3-demo-destination-bucket` é o bucket de destino.

  ```
  ...
     "Statement":[
        {
           "Effect":"Deny",
           "Principal":{
              "AWS":"arn:aws:iam::source-bucket-account-id:role/service-role/source-account-IAM-role"
           },
           "Action":"s3:ReplicateTags",
           "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        }
     ]
  ...
  ```

**nota**  
Se você quiser replicar objetos criptografados, também precisará conceder as permissões de chave do AWS Key Management Service (AWS KMS) necessárias. Para obter mais informações, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para usar a funcionalidade Bloqueio de Objetos com replicação, é necessário conceder duas permissões adicionais no bucket de origem do S3 no perfil do AWS Identity and Access Management (IAM) usado para configurar a replicação. As duas permissões adicionais são `s3:GetObjectRetention` e `s3:GetObjectLegalHold`. Se o perfil tiver uma instrução de permissão `s3:Get*`, essa instrução satisfará o requisito. Para obter mais informações, consulte [Usar a funcionalidade Bloqueio de Objetos com a funcionalidade Replicação do S3](object-lock-managing.md#object-lock-managing-replication). 

**Habilitar o recebimento de objetos replicados de um bucket de origem**  
Em vez de adicionar manualmente a política anterior ao bucket de destino, é possível gerar rapidamente as políticas necessárias para permitir o recebimento de objetos replicados de um bucket de origem no console do Amazon S3. 

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. Na lista **Buckets**, escolha o bucket que você deseja usar como bucket de destino.

1. Escolha **Management** (Gerenciamento) e role para baixo até **Replication rules** (Regras de replicação).

1. Em **Actions** (Ações), escolha **Receive replicated objects** (Receber objetos replicados). 

   Siga as instruções e insira o ID da Conta da AWS do bucket de origem e escolha **Gerar políticas**. O console gera uma política de bucket do Amazon S3 e uma política de chave do KMS.

1. Para adicionar essa política à política de bucket existente, escolha **Apply settings** (Aplicar configurações) ou **Copy** (Copiar) para copiar manualmente as alterações. 

1. (Opcional) Copie a política AWS KMS na política de chave do KMS desejada no console do AWS Key Management Service. 

## (Opcional) Etapa 4: conceder permissões ao para alterar a propriedade da réplica
<a name="change-replica-ownership"></a>

Quando diferentes Contas da AWS são proprietárias dos buckets de origem e de destino, é possível instruir o Amazon S3 para alterar a propriedade da réplica para a Conta da AWS proprietária do bucket de destino. Para substituir a propriedade das réplicas, você deve conceder algumas permissões adicionais ou ajustar as configurações de propriedade de objetos do S3 para o bucket de destino. Para obter mais informações sobre a substituição do proprietário, consulte [Alterar o proprietário da réplica](replication-change-owner.md).

# Exemplos para configurar a replicação em tempo real
<a name="replication-example-walkthroughs"></a>

Os exemplos a seguir fornecem demonstrações passo a passo que mostram como configurar a replicação em tempo real para casos de uso comuns. 

**nota**  
Replicação em tempo real refere-se à Same-Region Replication (SRR – Replicação na Mesma Região) e à Cross-Region Replication (CRR – Replicação entre Regiões). A replicação em tempo real não replica nenhum objeto que já existia no bucket antes de você configurar a replicação. Para replicar objetos que já existiam antes de você configurar a replicação, use a replicação sob demanda. Para sincronizar buckets e replicar os objetos existentes sob demanda, consulte [Replicar objetos existentes](s3-batch-replication-batch.md).

Esses exemplos demonstram como criar uma configuração de replicação usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI) e AWS SDKs (exemplos de AWS SDK para Java e AWS SDK para .NET são mostrados). 

Consulte informações sobre como instalar e configurar a AWS CLI nos seguintes tópicos do *Guia do usuário da AWS Command Line Interface*:
+  [Get started with the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 
+  [Configurar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html): é necessário configurar pelo menos um perfil. Se você estiver explorando cenários entre contas, configure dois perfis.

Consulte informações sobre os SDKs da AWS em [AWS SDK para Java](https://aws.amazon.com/sdk-for-java/) e [AWS SDK para .NET](https://aws.amazon.com/sdk-for-net/).

**dica**  
Consulte um tutorial detalhado que demonstra como usar a replicação em tempo real para replicar dados em [Tutorial: Replicar dados dentro das Regiões da AWS e entre elas usando a replicação do Amazon S3](https://aws.amazon.com/getting-started/hands-on/replicate-data-using-amazon-s3-replication/?ref=docs_gateway/amazons3/replication-example-walkthroughs.html).

**Topics**
+ [Configuração de buckets na mesma conta](replication-walkthrough1.md)
+ [Configuração de buckets em contas diferentes](replication-walkthrough-2.md)
+ [Uso do Controle do tempo de replicação do S3](replication-time-control.md)
+ [Replicar objetos criptografados](replication-config-for-kms-objects.md)
+ [Replicação de alterações de metadados](replication-for-metadata-changes.md)
+ [Replicação de marcadores de exclusão](delete-marker-replication.md)

# Configurar a replicação para buckets na mesma conta
<a name="replication-walkthrough1"></a>

A replicação em tempo real é a cópia assíncrona automática de objetos em buckets de uso geral em Regiões da AWS diferentes ou na mesma região. A replicação em tempo real copia os objetos recém-criados e as atualizações de objeto de um bucket de origem para buckets de destino. Para obter mais informações, consulte [Replicar objetos dentro de uma região e entre regiões](replication.md).

Ao configurar a replicação, você adiciona regras de replicação ao bucket de origem. As regras de replicação definem quais objetos do bucket de origem devem ser replicados e o bucket de destino ou buckets nos quais os objetos replicados são armazenados. Você pode criar uma regra para replicar todos os objetos dentro de um bucket ou um subgrupo de objetos com um prefixo específico de nome de chaves, uma ou mais tags de objetos ou ambos. Um bucket de destino pode estar na mesma Conta da AWS que o bucket de origem ou pode estar em uma conta diferente.

Se você especificar um ID da versão do objeto a ser excluído, o Amazon S3 excluirá essa versão do objeto no bucket de origem. No entanto, ele não replica a exclusão no bucket de destino. Em outras palavras: ele não exclui a mesma versão do objeto do bucket de destino. Isso protege os dados contra exclusões mal-intencionadas.

Quando você adiciona uma regra de replicação a um bucket, ela fica ativada por padrão, portanto, começa a funcionar assim que é salva. 

Neste exemplo, você configura a replicação em tempo real para os buckets de origem e de destino que pertencem à mesma Conta da AWS. São apresentados exemplos de uso do console do Amazon S3, da AWS Command Line Interface (AWS CLI), do AWS SDK para Java e do AWS SDK para .NET.

## Pré-requisitos
<a name="replication-prerequisites"></a>

Antes de usar os procedimentos a seguir, configure as permissões necessárias para replicação, dependendo se os buckets de origem e de destino pertencem à mesma conta ou a contas diferentes. Para obter mais informações, consulte [Configurar permissões para replicação em tempo real](setting-repl-config-perm-overview.md).

**nota**  
Se você quiser replicar objetos criptografados, também precisará conceder as permissões de chave do AWS Key Management Service (AWS KMS) necessárias. Para obter mais informações, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para usar a funcionalidade Bloqueio de Objetos com replicação, é necessário conceder duas permissões adicionais no bucket de origem do S3 no perfil do AWS Identity and Access Management (IAM) usado para configurar a replicação. As duas permissões adicionais são `s3:GetObjectRetention` e `s3:GetObjectLegalHold`. Se o perfil tiver uma instrução de permissão `s3:Get*`, essa instrução satisfará o requisito. Para obter mais informações, consulte [Usar a funcionalidade Bloqueio de Objetos com a funcionalidade Replicação do S3](object-lock-managing.md#object-lock-managing-replication). 

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

Para configurar uma regra de replicação quando o bucket de destino estiver na mesma Conta da AWS que o bucket de origem, siga estas etapas.

Se o bucket de destino estiver um uma conta diferente do bucket de origem, você deverá adicionar uma política ao bucket de destino. Assim, será possível conceder ao proprietário da conta do bucket de origem permissão para replicar objetos no bucket de destino. Para obter mais informações, consulte [(Opcional) Etapa 3: conceder permissões quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes](setting-repl-config-perm-overview.md#setting-repl-config-crossacct).

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 de uso geral**.

1. Na lista de buckets, escolha o nome do bucket desejado.

1. Selecione a guia **Gerenciamento**, role para baixo até **Regras de replicação** e selecione **Criar regra de replicação**.

    

1. Na seção **Configuração da regra de replicação**, em **Nome da regra de replicação**, insira um nome para sua regra para ajudar a identificá-la posteriormente. O nome é obrigatório e precisa ser exclusivo dentro do bucket.

1. Em **Status**, **Enabled (Habilitado)** é selecionado por padrão. Uma regra ativada começa a funcionar assim que você a salva. Se você quiser ativar a regra posteriormente, selecione **Desabilitado**.

1. Se o bucket tiver regras de replicação existentes, você será instruído a definir uma prioridade para a regra. Defina uma prioridade para a regra, de maneira a evitar conflitos causados pelos objetos incluídos no escopo de mais de uma regra. No caso de sobreposição de regras, o Amazon S3 usa a prioridade da regra para determinar qual regra aplicar. Quanto maior o número, maior a prioridade. Para obter mais informações sobre prioridade de regra, consulte [Elementos do arquivo de configuração de replicação](replication-add-config.md).

1. Em **Bucket de origem**, você tem as seguintes opções para definir a origem da replicação:
   + Para replicar todo o bucket, escolha **Apply to all objects in the bucket** (Aplicar a todos os objetos no bucket). 
   + Para replicar todos os objetos que tenham o mesmo prefixo, escolha **Limit the scope of this rule using one or more filters (Limitar o escopo desta regra usando um ou mais filtros)**. Isso limita a replicação a todos os objetos que tenham nomes que começam com o prefixo especificado (por exemplo, `pictures`). Insira um prefixo na caixa **Prefixo**. 
**nota**  
Se você inserir um prefixo que seja o nome de uma pasta, é preciso usar **/** (barra) como o último caractere (por exemplo, `pictures/`).
   + Para replicar todos os objetos com uma ou mais tags de objeto, selecione **Adicionar tag** e insira o par de chave-valor nas caixas. Repita o procedimento para adicionar outra tag. Você pode combinar um prefixo e tags. Para obter mais informações sobre tags de objeto, consulte [Categorizar objetos usando tags](object-tagging.md).

   O novo esquema XML de configuração de replicação é compatível com os filtros de prefixo e tags e com a priorização das regras. Para obter mais informações sobre o novo esquema, consulte [Considerações sobre a compatibilidade com versões anteriores](replication-add-config.md#replication-backward-compat-considerations). Para obter mais informações sobre o XML usado com a API do Amazon S3 que funciona atrás da interface do usuário, consulte [Elementos do arquivo de configuração de replicação](replication-add-config.md). O novo esquema é descrito como *configuração de replicação XML V2*.

1. Em **Destino**, selecione o bucket no qual você deseja que o Amazon S3 replique objetos.
**nota**  
O número de buckets de destino é limitado ao número de Regiões da AWS em determinada partição. Uma partição é um agrupamento de regiões. Atualmente, a AWS tem três partições: `aws` (regiões padrão), `aws-cn` (regiões da China) e `aws-us-gov` (regiões AWS GovCloud (US)). Para solicitar um aumento da cota do bucket de destino, você pode usar [cotas de serviço](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).
   + Para replicar para um bucket ou buckets em sua conta, selecione **Escolher um bucket nesta conta** e digite ou procure nomes de buckets de destino. 
   + Para replicar em um ou mais buckets em uma Conta da AWS diferente, selecione **Selecionar um bucket em outra conta** e insira o ID e o nome da conta do bucket de destino. 

     Se o destino estiver um uma conta diferente do bucket de origem, você deverá adicionar uma política de bucket aos buckets de destino para conceder ao proprietário da conta do bucket de origem permissão para replicar objetos. Para obter mais informações, consulte [(Opcional) Etapa 3: conceder permissões quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes](setting-repl-config-perm-overview.md#setting-repl-config-crossacct).

     Opcionalmente, se você quiser padronizar a propriedade de novos objetos no bucket de destino, escolha **Alterar propriedade do objeto para o proprietário do bucket de destino**. Para obter mais informações sobre essa opção, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).
**nota**  
Se o versionamento não estiver ativado no bucket de destino, você receberá uma advertência que contém um botão **Enable versioning** (Habilitar versionamento). Escolha esse botão para habilitar o versionamento no bucket.

1. Configure uma função do AWS Identity and Access Management (IAM) que o Amazon S3 possa assumir para replicar objetos em seu nome.

   Para configurar um perfil do IAM, na seção **Perfil do IAM**, selecione uma das seguintes opções na lista suspensa de **perfis do IAM**:
   + Recomendamos que você escolha **Create new role (Criar nova função)** para que o Amazon S3 crie uma nova função do IAM para você. Quando você salva a regra, uma nova política é gerada para a função do IAM que coincide com os buckets de origem e de destino que você escolher.
   + Você pode usar uma função do IAM existente. Se fizer isso, escolha uma função que conceda ao Amazon S3 as permissões necessárias para a replicação. A replicação falhará se essa função não conceder ao Amazon S3 permissões suficientes para seguir sua regra de replicação.
**Importante**  
Quando você adiciona uma regra de replicação a um bucket, você deve ter a permissão `iam:PassRole` para poder transmitir a função do IAM que concede permissões de replicação do Amazon S3. 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*.

1. Para replicar objetos no bucket de origem que estão criptografados com a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), em **Criptografia**, selecione **Replicar objetos criptografados com o AWS KMS**. Em **chaves do AWS KMS para criptografar objetos de destino** estão as chaves de origem que você permite que a replicação use. Todas as chaves de origem do KMS são incluídas por padrão. Para limitar a seleção de chaves do KMS, você pode selecionar um alias ou um ID de chave. 

   Os objetos criptografados pelas AWS KMS keys que você não seleciona não são replicados. A chave do KMS ou um grupo de chaves do KMS é escolhido para você, mas você pode escolher as chaves do KMS, se desejar. Para obter informações sobre como usar o AWS KMS com replicação, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
**Importante**  
Ao replicar objetos que estão criptografados com AWS KMS, a taxa de solicitações do AWS KMS dobra na Região de origem e aumenta na Região de destino pelo mesmo valor. Essas taxas de chamada aprimoradas para AWS KMS se devem à forma com que os dados são recriptografados usando a chave do KMS que você define na região de destino de replicação. O AWS KMS tem uma cota de taxas de solicitação por conta de chamada por região. Para ter informações sobre os padrões de limite, consulte [Cotas do AWS KMS: solicitações por segundo: varia](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second) no *Guia do desenvolvedor do AWS Key Management Service*.   
Se a taxa de solicitações do objeto `PUT` do Amazon S3 durante a replicação for maior do que a metade do limite da taxa padrão do AWS KMS para sua conta, recomendamos que você solicite um aumento da cota de taxa de solicitação do AWS KMS. Para solicitar um aumento, crie um caso no Suporte Center em [Entre em contato conosco](https://aws.amazon.com/contact-us/). Por exemplo, suponha que a sua taxa de solicitação do objeto `PUT` seja 1.000 solicitações por segundo e você use o AWS KMS para criptografar seus objetos. Nesse caso, recomendamos solicitar que o Suporte aumente o limite da taxa do AWS KMS para 2,5 mil solicitações por segundo nas regiões de origem e de destino (se forem diferentes) para garantir que não haja nenhum controle de utilização por parte do AWS KMS.   
Para ver a taxa de solicitação de objeto `PUT` no bucket de origem, visualize `PutRequests` nas métricas de solicitação do Amazon CloudWatch para o Amazon S3. Consulte informações sobre como visualizar métricas do CloudWatch em [Uso do console do S3](configure-request-metrics-bucket.md#configure-metrics).

   Se você escolheu replicar objetos criptografados com o AWS KMS, faça o seguinte: 

   1. Em **AWS KMS key para criptografar objetos de destino**, especifique sua chave do KMS de uma das seguintes formas:
     + Para escolher em uma lista de chaves do KMS disponíveis, selecione **Escolher entre suas AWS KMS keys** e escolha sua **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 nome do recurso da Amazon (ARN) da chave do KMS, selecione **Inserir ARN da AWS KMS key** e insira o ARN da chave do KMS no campo exibido. Isso criptografa as réplicas no bucket de destino. Você pode encontrar o ARN da chave do KMS no [console do IAM](https://console.aws.amazon.com/iam/) em **Chaves de criptografia**. 
     + Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione **Criar uma chave do KMS**.

       Para ter 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*.
**Importante**  
Você só pode usar chaves do KMS habilitadas na mesma Região da AWS que o bucket. Quando você seleciona **Escolher de suas chaves do KMS**, o console do S3 lista somente 100 chaves do KMS por região. Se você tiver mais de 100 chaves do KMS na mesma região, será possível ver somente as primeiras 100 chaves do KMS no console do S3. Para usar uma chave do KMS que não esteja listada no console, escolha **Inserir o ARN da AWS KMS key** e insira o ARN de sua chave do KMS.  
Ao usar uma AWS KMS key para criptografia no lado do servidor no Amazon S3, você deve escolher uma chave de criptografia do KMS simétrica. O Amazon S3 só é compatível com chaves do KMS de criptografia simétrica, e não com chaves assimétricas do KMS. Para ter mais informações, consulte [Identificar chaves do KMS simétricas e assimétricas](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) no *Guia do desenvolvedor do AWS Key Management Service*.

     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*. Para obter mais informações sobre como usar o AWS KMS com o Amazon S3, consulte [Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS)](UsingKMSEncryption.md).

1. Em **Classe de armazenamento de destino**, se você quiser replicar seus dados em uma classe de armazenamento específica no destino, escolha **Alterar a classe de armazenamento dos objetos replicados**. Em seguida, escolha a classe de armazenamento que você deseja usar para os objetos replicados no destino. Se você não selecionar essa opção, a classe de armazenamento para objetos replicados será a mesma classe dos objetos originais.

1. Você tem as seguintes opções adicionais ao definir as **Opções de replicação adicionais**:
   + Se você quiser ativar o Controle do Tempo de Replicação do S3 (S3 RTC) na configuração de replicação, selecione **Controle do Tempo de Replicação (RTC)**. Para obter mais informações sobre essa opção, consulte [Atender aos requisitos de conformidade com o Controle do Tempo de Replicação do S3](replication-time-control.md).
   + Se você quiser habilitar métricas de replicação do S3 na configuração de replicação, selecione **Replication metrics and events** (Métricas e eventos de replicação). Para obter mais informações, consulte [Monitorar a replicação com métricas, notificações de eventos e status](replication-metrics.md).
   + Se quiser habilitar a replicação de marcadores de exclusão na configuração de replicação, selecione **Delete marker replication** (Excluir replicação de marcador). Para obter mais informações, consulte [Replicação de marcadores de exclusão entre intervalos](delete-marker-replication.md).
   + Se você quiser habilitar a sincronização de modificação de réplica do Amazon S3 em sua configuração de replicação, selecione **Replica modification sync** (Sincronização de modificação de réplica). Para obter mais informações, consulte [Replicação de alterações de metadados com sincronização de modificação de réplica](replication-for-metadata-changes.md).
**nota**  
Quando você usa métricas de replicação do S3 RTC ou S3, aplicam-se taxas adicionais.

1. Para terminar, escolha **Save** (Salvar).

1. Depois de salvar sua regra, você pode editar, ativar, desativar ou excluir sua regra selecionando sua regra e escolhendo **Edit rule (Editar regra)**. 

## Usar a AWS CLI
<a name="replication-ex1-cli"></a>

Para configurar a AWS CLI para configurar a replicação quando os buckets de origem e de destino pertencem à mesma Conta da AWS, faça o seguinte:
+ Crie os buckets de origem e de destino.
+ Habilite o versionamento nos buckets.
+ Crie um perfil do AWS Identity and Access Management (IAM) que dê ao Amazon S3 permissão para replicar objetos.
+ Adicione uma configuração de replicação ao bucket de origem.

Para verificar sua configuração, teste-a.

**Como configurar a replicação quando os buckets de origem e de destino pertencem à mesma Conta da AWS**

1. Defina 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*. 
**Importante**  
O perfil que você usar para este exemplo deve ter as permissões necessárias. Por exemplo, na configuração da replicação, especifique a função do IAM que o Amazon S3 pode assumir. Você só poderá fazer isso se o perfil usado tiver a permissão `iam:PassRole`. Consulte mais informações em [Conceda permissões a um usuário para passar um perfil para 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*. Se você usar credenciais de administrador para criar um perfil nomeado, poderá executar todas as tarefas. 

1. Crie um bucket de origem e habilite o versionamento nele usando os comandos da AWS CLI a seguir. Para usar esses comandos, substitua *`user input placeholders`* por suas próprias informações. 

   O comando `create-bucket` a seguir cria um bucket de origem chamado `amzn-s3-demo-source-bucket` na região Leste dos EUA (N. da Virgínia) (`us-east-1`):

   

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

   O comando `put-bucket-versioning` a seguir habilita o Versionamento do S3 no bucket do `amzn-s3-demo-source-bucket`: 

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

1. Crie um bucket de destino e habilite o versionamento nele usando os comandos da AWS CLI a seguir. Para usar esses comandos, substitua *`user input placeholders`* por suas próprias informações. 
**nota**  
Para fazer a configuração de uma replicação quando os buckets de origem e de destino estiverem na mesma Conta da AWS, use o mesmo perfil para os buckets de origem e destino. Este exemplo usa `acctA`.   
Para testar a configuração da replicação quando os buckets pertencerem a diferentes contas da Contas da AWS, especifique diferentes perfis para cada conta. Por exemplo, use um perfil `acctB` para o bucket de destino.

   

   O comando `create-bucket` a seguir cria um bucket de destino chamado `amzn-s3-demo-destination-bucket` na região Oeste dos EUA (Oregon) (`us-west-2`):

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

   O comando `put-bucket-versioning` a seguir habilita o Versionamento do S3 no bucket do `amzn-s3-demo-destination-bucket`: 

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

1. Crie uma função do IAM. Você especifica essa função na configuração da replicação que adiciona ao bucket de origem 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.
   + Anexar uma política de permissões à função.

   1. Crie a função do IAM.

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

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

****  

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

------

      1. Execute o comando a seguir para criar uma função.

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

   1. Anexar uma política de permissões à função.

      1. Copie a política de permissões a seguir e salve-a em um arquivo com o nome `s3-role-permissions-policy.json` no diretório atual do computador local. Essa política concede permissões para várias ações de bucket e objetos do Amazon S3. 

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

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Effect":"Allow",
                  "Action":[
                     "s3:GetObjectVersionForReplication",
                     "s3:GetObjectVersionAcl",
                     "s3:GetObjectVersionTagging"
                  ],
                  "Resource":[
                     "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
                  ]
               },
               {
                  "Effect":"Allow",
                  "Action":[
                     "s3:ListBucket",
                     "s3:GetReplicationConfiguration"
                  ],
                  "Resource":[
                     "arn:aws:s3:::amzn-s3-demo-source-bucket"
                  ]
               },
               {
                  "Effect":"Allow",
                  "Action":[
                     "s3:ReplicateObject",
                     "s3:ReplicateDelete",
                     "s3:ReplicateTags"
                  ],
                  "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
               }
            ]
         }
         ```

------
**nota**  
Se você quiser replicar objetos criptografados, também precisará conceder as permissões de chave do AWS Key Management Service (AWS KMS) necessárias. Para obter mais informações, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para usar a funcionalidade Bloqueio de Objetos com replicação, é necessário conceder duas permissões adicionais no bucket de origem do S3 no perfil do AWS Identity and Access Management (IAM) usado para configurar a replicação. As duas permissões adicionais são `s3:GetObjectRetention` e `s3:GetObjectLegalHold`. Se o perfil tiver uma instrução de permissão `s3:Get*`, essa instrução satisfará o requisito. Para obter mais informações, consulte [Usar a funcionalidade Bloqueio de Objetos com a funcionalidade Replicação do S3](object-lock-managing.md#object-lock-managing-replication). 

      1. Execute o comando a seguir para criar uma política e ligá-la à função. Substitua *`user input placeholders`* por suas próprias informações.

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

1. Adicione uma configuração de replicação ao bucket de origem. 

   1. Embora a API do Amazon S3 exija que você especifique a configuração da replicação como XML, a AWS CLI requer que você especifique a configuração de replicação como JSON. Salve o JSON a seguir em um arquivo chamado `replication.json` no diretório local do seu computador.

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

   1. Atualize o JSON substituindo os valores de `amzn-s3-demo-destination-bucket` e `IAM-role-ARN` por suas próprias informações. Salve as alterações.

   1. Execute o comando `put-bucket-replication` a seguir para adicionar a configuração de replicação ao bucket de origem. Dê um nome ao bucket de origem:

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

   Para recuperar a configuração de replicação, use o comando `get-bucket-replication`:

   ```
   $ aws s3api get-bucket-replication \
   --bucket amzn-s3-demo-source-bucket \
   --profile acctA
   ```

1. Teste a configuração no console do Amazon S3, seguindo estas etapas:

   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**. Na lista **Buckets de uso geral**, selecione o bucket de origem.

   1. No bucket de origem, crie uma pasta chamada `Tax`. 

   1. Adicione objetos de amostra à pasta `Tax` no bucket de origem. 
**nota**  
O tempo necessário para o Amazon S3 replicar um objeto depende do tamanho do objeto. Para obter informações sobre como ver o status da replicação, consulte [Obtenção de informações sobre o status da replicação](replication-status.md).

      No bucket de destino, verifique o seguinte:
      + Se o Amazon S3 replicou os objetos.
      + Se os objetos são réplicas. Na guia **Propriedades** dos objetos, role para baixo até a seção **Visão geral do gerenciamento de objetos**. Em **Configurações de gerenciamento**, veja o valor em **Status da replicação**. Esse valor deve ser definido como `REPLICA`.
      + Se as réplicas pertencem à conta do bucket de origem. É possível verificar a propriedade do objeto na guia **Permissões** dos objetos. 

        Se os buckets de origem e de destino pertencerem a contas diferentes, você poderá adicionar uma configuração opcional para instruir o Amazon S3 a alterar a propriedade da réplica à conta de destino. Para ver um exemplo, consulte [Como alterar o proprietário da réplica](replication-change-owner.md#replication-walkthrough-3). 

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

Use os exemplos de código a seguir para adicionar uma configuração de replicação ao bucket com AWS SDK para Java e AWS SDK para .NET, respectivamente.

**nota**  
Se você quiser replicar objetos criptografados, também precisará conceder as permissões de chave do AWS Key Management Service (AWS KMS) necessárias. Para obter mais informações, consulte [Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para usar a funcionalidade Bloqueio de Objetos com replicação, é necessário conceder duas permissões adicionais no bucket de origem do S3 no perfil do AWS Identity and Access Management (IAM) usado para configurar a replicação. As duas permissões adicionais são `s3:GetObjectRetention` e `s3:GetObjectLegalHold`. Se o perfil tiver uma instrução de permissão `s3:Get*`, essa instrução satisfará o requisito. Para obter mais informações, consulte [Usar a funcionalidade Bloqueio de Objetos com a funcionalidade Replicação do S3](object-lock-managing.md#object-lock-managing-replication). 

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

Para adicionar uma configuração de replicação a um bucket e, em seguida, recuperar e verificar a configuração usando o AWS SDK para Java, você pode usar a S3Client para gerenciar as configurações de replicação programaticamente.

Para obter exemplos de como configurar a replicação com o AWS SDK para Java, consulte [Set replication configuration on a bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutBucketReplication_section.html) na *Referência de API do Amazon S3*.

------
#### [ C\$1 ]

O exemplo de código de AWS SDK para .NET a seguir adiciona uma configuração de replicação a um bucket e, depois, a recupera. Para usar esse código, dê nomes aos buckets e o nome de recurso da Amazon (ARN) à função do IAM. Consulte informações sobre como configurar e executar exemplos de código, em [Getting Started with the AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config.html) no *Guia do desenvolvedor do AWS SDK para .NET*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class CrossRegionReplicationTest
    {
        private const string sourceBucket = "*** source bucket ***";
        // Bucket ARN example - arn:aws:s3:::destinationbucket
        private const string destinationBucketArn = "*** destination bucket ARN ***";
        private const string roleArn = "*** IAM Role ARN ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint sourceBucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 s3Client;
        public static void Main()
        {
            s3Client = new AmazonS3Client(sourceBucketRegion);
            EnableReplicationAsync().Wait();
        }
        static async Task EnableReplicationAsync()
        {
            try
            {
                ReplicationConfiguration replConfig = new ReplicationConfiguration
                {
                    Role = roleArn,
                    Rules =
                        {
                            new ReplicationRule
                            {
                                Prefix = "Tax",
                                Status = ReplicationRuleStatus.Enabled,
                                Destination = new ReplicationDestination
                                {
                                    BucketArn = destinationBucketArn
                                }
                            }
                        }
                };

                PutBucketReplicationRequest putRequest = new PutBucketReplicationRequest
                {
                    BucketName = sourceBucket,
                    Configuration = replConfig
                };

                PutBucketReplicationResponse putResponse = await s3Client.PutBucketReplicationAsync(putRequest);

                // Verify configuration by retrieving it.
                await RetrieveReplicationConfigurationAsync(s3Client);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
        private static async Task RetrieveReplicationConfigurationAsync(IAmazonS3 client)
        {
            // Retrieve the configuration.
            GetBucketReplicationRequest getRequest = new GetBucketReplicationRequest
            {
                BucketName = sourceBucket
            };
            GetBucketReplicationResponse getResponse = await client.GetBucketReplicationAsync(getRequest);
            // Print.
            Console.WriteLine("Printing replication configuration information...");
            Console.WriteLine("Role ARN: {0}", getResponse.Configuration.Role);
            foreach (var rule in getResponse.Configuration.Rules)
            {
                Console.WriteLine("ID: {0}", rule.Id);
                Console.WriteLine("Prefix: {0}", rule.Prefix);
                Console.WriteLine("Status: {0}", rule.Status);
            }
        }
    }
}
```

------

# Configuração da replicação de buckets em contas diferentes
<a name="replication-walkthrough-2"></a>

A replicação em tempo real é a cópia assíncrona automática de objetos em buckets na mesma região da AWS ou em Regiões da AWS diferentes. A replicação em tempo real copia os objetos recém-criados e as atualizações de objeto de um bucket de origem para buckets de destino. Para obter mais informações, consulte [Replicar objetos dentro de uma região e entre regiões](replication.md).

Ao configurar a replicação, você adiciona regras de replicação ao bucket de origem. As regras de replicação definem quais objetos do bucket de origem devem ser replicados e o bucket de destino ou buckets nos quais os objetos replicados são armazenados. Você pode criar uma regra para replicar todos os objetos dentro de um bucket ou um subgrupo de objetos com um prefixo específico de nome de chaves, uma ou mais tags de objetos ou ambos. Um bucket de destino pode estar na mesma Conta da AWS que o bucket de origem ou pode estar em uma conta diferente.

Se você especificar um ID da versão do objeto a ser excluído, o Amazon S3 excluirá essa versão do objeto no bucket de origem. No entanto, ele não replica a exclusão no bucket de destino. Em outras palavras: ele não exclui a mesma versão do objeto do bucket de destino. Isso protege os dados contra exclusões mal-intencionadas.

Quando você adiciona uma regra de replicação a um bucket, ela fica ativada por padrão, portanto, começa a funcionar assim que é salva. 

A configuração da replicação em tempo real quando os buckets de origem e de destino pertencem a Contas da AWS diferentes é semelhante à configuração da replicação quando os dois buckets pertencem à mesma conta. No entanto, há várias diferenças quando você configura a replicação em um cenário entre contas diferentes: 
+ O proprietário do bucket de destino deve conceder ao proprietário do bucket de destino permissão para replicar objetos na política do bucket de destino. 
+ Se você estiver replicando objetos criptografados com a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) em um cenário entre contas diferentes, o proprietário da chave do KMS deverá conceder ao proprietário do bucket de origem permissão para usar a chave do KMS. Para obter mais informações, consulte [Conceder permissões adicionais para cenários entre contas](replication-config-for-kms-objects.md#replication-kms-cross-acct-scenario). 
+ Por padrão, os objetos replicados pertencem ao proprietário do bucket de origem. Em um cenário entre contas diferentes, você pode querer configurar a replicação para alterar a propriedade dos objetos replicados ao proprietário do bucket de destino. Para obter mais informações, consulte [Alterar o proprietário da réplica](replication-change-owner.md).

**Para configurar a replicação quando os buckets de origem e destino pertencem a diferentes Contas da AWS**

1. Neste exemplo, você cria buckets de origem e de destino em duas Contas da AWS diferentes. Você deve ter dois perfis de credencial definidos para a AWS CLI. Este exemplo usa `acctA` e `acctB` para esses nomes de perfil. 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. Siga as instruções passo a passo em [Configurar a replicação para buckets na mesma conta](replication-walkthrough1.md) com as seguintes alterações:
   + Para todos os comandos da AWS CLI relacionados a atividades do bucket de origem (como criar o bucket de origem, habilitar o versionamento e criar o perfil do IAM), use o perfil `acctA`. Use o perfil `acctB` para criar o bucket de destino. 
   + Verifique se a política e permissões para o perfil do IAM especifica os buckets de origem e de destino que você criou para este exemplo.

1. No console, adicione a seguinte política do bucket ao bucket de destino para permitir que o proprietário do bucket de origem replique objetos. Para instruções, consulte [Adicionar uma política de bucket usando o console do Amazon S3](add-bucket-policy.md). Edite a política fornecendo o ID da Conta da AWS do proprietário do bucket de origem, o nome do perfil do IAM e o nome do bucket de destino. 
**nota**  
Para usar o exemplo a seguir, substitua os `user input placeholders` por suas próprias informações. Substitua `amzn-s3-demo-destination-bucket` pelo nome do bucket de destino. Substitua `source-bucket-account-ID:role/service-role/source-account-IAM-role` no nome do recurso da Amazon (ARN) pelo perfil do IAM que você está usando para essa configuração de replicação.  
Se você criou o perfil de serviço do IAM manualmente, defina o caminho do perfil no ARN do IAM como `role/service-role/`, conforme mostrado no exemplo de política a seguir. Para obter mais informações, consulte [ARNs do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) no *Guia do usuário do IAM*. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "",
       "Statement": [
           {
               "Sid": "Set-permissions-for-objects",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/service-role/source-account-IAM-role"
               },
               "Action": [
                   "s3:ReplicateObject",
                   "s3:ReplicateDelete"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
           },
           {
               "Sid": "Set-permissions-on-bucket",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/service-role/source-account-IAM-role"
               },
               "Action": [
                   "s3:GetBucketVersioning",
                   "s3:PutBucketVersioning"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket"
           }
       ]
   }
   ```

------

1. (Opcional) Se você estiver replicando objetos criptografados com a SSE-KMS, o proprietário da chave do KMS deverá conceder ao proprietário do bucket de origem permissão para usar a chave do KMS. Para obter mais informações, consulte [Conceder permissões adicionais para cenários entre contas](replication-config-for-kms-objects.md#replication-kms-cross-acct-scenario).

1. (Opcional) Na replicação, o proprietário do objeto de origem possui a réplica por padrão. Quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes, é possível adicionar configurações opcionais para alterar a propriedade da réplica para a Conta da AWS que possui os buckets de destino. Isso inclui conceder a permissão `ObjectOwnerOverrideToBucketOwner`. Para obter mais informações, consulte [Alterar o proprietário da réplica](replication-change-owner.md).

# Alterar o proprietário da réplica
<a name="replication-change-owner"></a>

Na replicação, por padrão o proprietário do objeto de origem também é proprietário da réplica. No entanto, quando os buckets de origem e de destino pertencem a Contas da AWS diferentes, você pode querer alterar a propriedade da réplica. Por exemplo, você pode querer alterar a propriedade para restringir o acesso a replicas de objetos. Na configuração de replicação, é possível adicionar configurações opcionais para alterar a propriedade da réplica para a Conta da AWS que possui os buckets de destino. 

Para alterar o proprietário da réplica, faça o seguinte:
+ Adicione a opção de *substituição do proprietário* à configuração da replicação para instruir o Amazon S3 a alterar a propriedade da réplica. 
+ Conceda ao Amazon S3 a permissão `s3:ObjectOwnerOverrideToBucketOwner` para alterar a propriedade da réplica. 
+ Adicione a permissão `s3:ObjectOwnerOverrideToBucketOwner` na política do bucket de destino para permitir a alteração da propriedade da réplica. A permissão `s3:ObjectOwnerOverrideToBucketOwner` autoriza que o proprietário do bucket de destino aceite a propriedade das réplicas de objetos.

Para obter mais informações, consulte [Considerações sobre a opção de substituição da propriedade](#repl-ownership-considerations) e [Adicionar a opção de substituição do proprietário à configuração da replicação](#repl-ownership-owneroverride-option). Para ver um exemplo funcional com instruções detalhadas, consulte [Como alterar o proprietário da réplica](#replication-walkthrough-3).

**Importante**  
Em vez de usar a opção de substituição do proprietário do bucket, é possível usar a configuração aplicada pelo proprietário do bucket em Propriedade de objeto. Quando você usa a replicação e os buckets de origem e de destino pertencem a Contas da AWS diferentes, o proprietário do bucket de destino pode usar a configuração aplicada pelo proprietário do bucket em Propriedade de objetos para alterar a propriedade da réplica para a Conta da AWS que possui o bucket de destino. Essa configuração desabilita listas de controle de acesso (ACLs) de objetos.   
A configuração aplicada pelo proprietário do bucket imita o comportamento de substituição do proprietário existente sem a necessidade da permissão `s3:ObjectOwnerOverrideToBucketOwner`. Todos os objetos que são replicados para o bucket de destino com a configuração aplicada pelo proprietário do bucket pertencem ao proprietário do bucket de destino. Para obter informações sobre o Object Ownership, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

## Considerações sobre a opção de substituição da propriedade
<a name="repl-ownership-considerations"></a>

Ao configurar a opção de substituição da propriedade, aplicam-se as seguintes considerações:
+ Por padrão, o proprietário do objeto de origem também possui a réplica. O Amazon S3 replica a versão do objeto e a ACL associada a ela.

  Se você adicionar a opção de substituição do proprietário à configuração de replicação, o Amazon S3 replicará somente a versão do objeto, não a ACL. Além disso, o Amazon S3 não replica as alterações subsequentes na ACL do objeto de origem. O Amazon S3 define a ACL na réplica que concede controle total ao proprietário do bucket de destino. 
+  Ao atualizar uma configuração de replicação para habilitar ou desabilitar a substituição do proprietário, ocorrerá o seguinte comportamento:
  + Se você adicionar a opção de substituição do proprietário à configuração da replicação:

    Quando o Amazon S3 replica uma versão do objeto, ele descarta a ACL associada ao objeto de origem. Em vez disso, o Amazon S3 define a ACL na réplica, dando o controle total ao proprietário do bucket de destino. O Amazon S3 não replica as alterações subsequentes na ACL do objeto de origem. No entanto, essa alteração na ACL não se aplica às versões de objeto replicadas antes de você definir a opção de substituição do proprietário. As atualizações da ACL nos objetos de origem replicados antes da substituição do proprietário foram definidas para continuarem a ser replicadas (porque o objeto e suas réplicas continuam a ter o mesmo proprietário).
  + Se você remover a opção de substituição do proprietário da configuração da replicação:

    O Amazon S3 replica novos objetos que aparecem no bucket de origem e as ACLs associadas aos buckets de destino. Para objetos replicados antes de você ter removido a substituição do proprietário, o Amazon S3 não replicará as ACLs, pois a propriedade do objeto muda, de maneira que o Amazon S3 feito permanece em vigor. Em outras palavras: as ACLs colocaram a versão do objeto que foi replicada quando a substituição do proprietário tinha sido substituída para não continuarem a ser replicadas.

## Adicionar a opção de substituição do proprietário à configuração da replicação
<a name="repl-ownership-owneroverride-option"></a>

**Atenção**  
Adicione a opção de substituição do proprietário somente quando os buckets de origem e de destino pertencerem a diferentes Contas da AWS. O Amazon S3 não verifica se os buckets pertencem à mesma conta ou a contas diferentes. Se você adicionar a substituição do proprietário quando os dois buckets pertencerem à mesma Conta da AWS, o Amazon S3 aplicará a substituição do proprietário. Essa opção concede permissões completas ao proprietário do bucket de destino e não replica as atualizações subsequentes às listas de controle de acesso (ACLs) dos objetos de origem. O proprietário da réplica pode alterar diretamente na ACL associada a uma réplica com uma solicitação `PutObjectAcl`, mas não por replicação.

Para especificar a opção de substituição do proprietário, adicione o seguinte ao elemento `Destination`: 
+ O elemento `AccessControlTranslation`, que diz ao Amazon S3 para alterar a propriedade da réplica
+ O elemento `Account`, que especifica a Conta da AWS do proprietário do bucket de destino 

```
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    ...
    <Destination>
      ...
      <AccessControlTranslation>
           <Owner>Destination</Owner>
       </AccessControlTranslation>
      <Account>destination-bucket-owner-account-id</Account>
    </Destination>
  </Rule>
</ReplicationConfiguration>
```

A configuração da replicação do exemplo a seguir instrui o Amazon S3 a replicar os objetos que têm o prefixo de chaves *`Tax`* ao bucket de destino `amzn-s3-demo-destination-bucket` e alterar a propriedade das réplicas. Para usar esse exemplo, substitua os `user input placeholders` por suas próprias informações.

```
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <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>
         <Account>destination-bucket-owner-account-id</Account>
         <AccessControlTranslation>
            <Owner>Destination</Owner>
         </AccessControlTranslation>
      </Destination>
   </Rule>
</ReplicationConfiguration>
```

## Conceder permissão do Amazon S3 para alterar a propriedade da réplica
<a name="repl-ownership-add-role-permission"></a>

Conceda permissões do Amazon S3 para alterar a propriedade da réplica adicionando permissão para a ação `s3:ObjectOwnerOverrideToBucketOwner` na política de permissões associada ao perfil do AWS Identity and Access Management (IAM). Esse é o perfil do IAM especificado na configuração de replicação que permite que o Amazon S3 assuma e replique objetos em seu nome. Para usar o exemplo a seguir, substitua `amzn-s3-demo-destination-bucket` pelo nome do bucket de destino.

```
...
{
    "Effect":"Allow",
         "Action":[
       "s3:ObjectOwnerOverrideToBucketOwner"
    ],
    "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}
...
```

## Adicionar a permissão na política do bucket de destino para permitir a alteração da propriedade da réplica
<a name="repl-ownership-accept-ownership-b-policy"></a>

O proprietário do bucket de destino deve conceder ao proprietário da permissão do bucket de origem para alterar a propriedade da réplica. A propriedade do bucket de destino concede ao proprietário do bucket de origem permissão para a ação `s3:ObjectOwnerOverrideToBucketOwner`. Essa permissão autoriza que o proprietário do bucket de destino aceite a propriedade das réplicas de objetos. O exemplo de declaração de política do bucket a seguir mostra como fazer isso. Para usar esse exemplo, substitua os `user input placeholders` por suas próprias informações.

```
...
{
    "Sid":"1",
    "Effect":"Allow",
    "Principal":{"AWS":"source-bucket-account-id"},
    "Action":["s3:ObjectOwnerOverrideToBucketOwner"],
    "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}
...
```

## Como alterar o proprietário da réplica
<a name="replication-walkthrough-3"></a>

Quando os buckets de origem e de destino em uma configuração de replicação pertencem a Contas da AWS diferentes, você pode instruir o Amazon S3 a alterar a propriedade da réplica para a Conta da AWS que possui o bucket de destino. Os exemplos a seguir mostram como usar o console do Amazon S3, a AWS Command Line Interface (AWS CLI) e os SDKs da AWS para alterar a propriedade da réplica. 

### Usar o console do S3
<a name="replication-ex3-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 pertencerem às mesmas Contas da AWS ou a contas diferentes.

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

O procedimento a seguir mostra como alterar a propriedade da réplica usando a AWS CLI. Neste procedimento, você faz o seguinte: 
+ Crie os buckets de origem e de destino.
+ Habilite o versionamento nos buckets.
+ Crie um perfil do AWS Identity and Access Management (IAM) que dê ao Amazon S3 permissão para replicar objetos.
+ Adicione uma configuração de replicação ao bucket de origem.
+ Na configuração da replicação, você instrui o Amazon S3 a alterar a propriedade da réplica.
+ Você testa a configuração de replicação.

**Como alterar o proprietário da réplica quando os buckets de origem e de destino pertencem a Contas da AWS diferentes (AWS CLI)**

Para usar os comandos AWS CLI de exemplo neste procedimento, substitua `user input placeholders` por suas informações. 

1. Neste exemplo, você cria os buckets de origem e de destino em duas Contas da AWS diferentes. Para trabalhar com essas duas contas, configure a AWS CLI com dois perfis nomeados. Este exemplo usa os perfis denominados *`acctA`* e *`acctB`*, respectivamente. 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*. 
**Importante**  
Os perfis que você usar para este procedimento devem ter as permissões necessárias. Por exemplo, na configuração da replicação, especifique a função do IAM que o Amazon S3 pode assumir. Você só poderá fazer isso se o perfil usado tiver a permissão `iam:PassRole`. Se usar as credenciais do usuário administrador para criar um perfil nomeado, você poderá realizar todas as tarefas nesse procedimento. 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*. 

1. Crie o bucket de origem e habilite o versionamento. Esse exemplo cria um bucket de origem chamado `amzn-s3-demo-source-bucket` na região Leste dos EUA (N. 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. Crie um bucket de destino e habilite o versionamento. Esse exemplo cria um bucket de destino chamado `amzn-s3-demo-destination-bucket` na região Oeste dos EUA (Oregon) (`us-west-2`). Use um perfil de Conta da AWS diferente do usado para o bucket de origem.

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

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

1. É necessário adicionar permissões à política de bucket de destino para permitir a alteração da propriedade da réplica.

   1.  Salve a política a seguir em um arquivo chamado `destination-bucket-policy.json`. Substitua *`user input placeholders`* por suas próprias informações.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "destination_bucket_policy_sid",
                  "Principal": {
                      "AWS": "source-bucket-owner-123456789012"
                  },
                  "Action": [
                      "s3:ReplicateObject",
                      "s3:ReplicateDelete",
                      "s3:ObjectOwnerOverrideToBucketOwner",
                      "s3:ReplicateTags",
                      "s3:GetObjectVersionTagging"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
                  ]
              }
          ]
      }
      ```

------

   1. Adicione a política anterior ao bucket de destino usando o seguinte comando `put-bucket-policy`:

      ```
      aws s3api put-bucket-policy --region $ {destination-region} --bucket $ {amzn-s3-demo-destination-bucket} --policy file://destination_bucket_policy.json
      ```

1. Crie uma função do IAM. Você especifica essa função na configuração da replicação que adiciona ao bucket de origem posteriormente. O Amazon S3 assume essa função para replicar objetos em seu nome. A função do IAM é criada em duas etapas:
   + Crie a função.
   + Anexar uma política de permissões à função.

   1. Crie a função do IAM.

      1. Copie a política de confiança a seguir e salve-a em um arquivo chamado `s3-role-trust-policy.json` no diretório atual do computador local. Essa política concede ao Amazon S3 permissões para assumir a função.

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

****  

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

------

      1. Execute o seguinte comando `create-role` da AWS CLI para criar o perfil do IAM:

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

         Anote o nome do recurso da Amazon (ARN) do perfil do IAM que você criou. Você precisará desse AR em uma etapa posterior.

   1. Anexar uma política de permissões à função.

      1. Copie a política de permissões a seguir e salve-a em um arquivo com o nome `s3-role-perm-pol-changeowner.json` no diretório atual do computador local. Essa política concede permissões para várias ações de bucket e objetos do Amazon S3. Nas etapas a seguir, anexe essa política ao perfil do IAM criado anteriormente. 

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

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Effect":"Allow",
                  "Action":[
                     "s3:GetObjectVersionForReplication",
                     "s3:GetObjectVersionAcl"
                  ],
                  "Resource":[
                     "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
                  ]
               },
               {
                  "Effect":"Allow",
                  "Action":[
                     "s3:ListBucket",
                     "s3:GetReplicationConfiguration"
                  ],
                  "Resource":[
                     "arn:aws:s3:::amzn-s3-demo-source-bucket"
                  ]
               },
               {
                  "Effect":"Allow",
                  "Action":[
                     "s3:ReplicateObject",
                     "s3:ReplicateDelete",
                     "s3:ObjectOwnerOverrideToBucketOwner",
                     "s3:ReplicateTags",
                     "s3:GetObjectVersionTagging"
                  ],
                  "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
               }
            ]
         }
         ```

------

      1. Para anexar a política de permissões anterior ao perfil, execute o seguinte comando `put-role-policy`:

         ```
         $ aws iam put-role-policy \
         --role-name replicationRole \
         --policy-document file://s3-role-perm-pol-changeowner.json \
         --policy-name replicationRolechangeownerPolicy \
         --profile acctA
         ```

1. Adicione uma configuração de replicação ao bucket de origem.

   1. A AWS CLI requer que você especifique a configuração de replicação como JSON. Salve o JSON a seguir em um arquivo chamado `replication.json` no diretório atual local do computador local. Na configuração, `AccessControlTranslation` especifica a mudança na propriedade da réplica do proprietário do bucket de origem para o proprietário do bucket de destino. 

      ```
      {
         "Role":"IAM-role-ARN",
         "Rules":[
            {
               "Status":"Enabled",
               "Priority":1,
               "DeleteMarkerReplication":{
                  "Status":"Disabled"
               },
               "Filter":{
               },
               "Status":"Enabled",
               "Destination":{
                  "Bucket":"arn:aws:s3:::amzn-s3-demo-destination-bucket",
                  "Account":"destination-bucket-owner-account-id",
                  "AccessControlTranslation":{
                     "Owner":"Destination"
                  }
               }
            }
         ]
      }
      ```

   1. Edite o JSON fornecendo os valores do nome do bucket de destino, o ID da conta do proprietário do bucket de destino e o `IAM-role-ARN`. Substitua *`IAM-role-ARN`* pelo ARN do perfil do IAM que você criou anteriormente. Salve as alterações.

   1. Para adicionar a configuração de replicação ao bucket de origem, execute o seguinte comando:

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

1. Teste a configuração de replicação verificando a propriedade da réplica no console do Amazon S3.

   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. Adicione objetos ao bucket de origem. Verifique se o bucket de destino contém as réplicas de objetos e se a propriedade das réplicas mudou para a Conta da AWS que possui o bucket de destino.

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

 Consulte um exemplo de código para adicionar uma configuração de replicação em [Uso da SDKs AWS](replication-walkthrough1.md#replication-ex1-sdk). Você precisa modificar a configuração de replicação adequadamente. Para obter informações conceituais, consulte [Alterar o proprietário da réplica](#replication-change-owner). 

# Atender aos requisitos de conformidade com o Controle do Tempo de Replicação do S3
<a name="replication-time-control"></a>

O Controle do tempo de replicação do S3 (S3 RTC) ajuda a atender aos requisitos empresariais ou de conformidade relacionados à replicação de dados, além de fornecer visibilidade dos tempos de replicação do Amazon S3. O S3 RTC replica a maioria dos objetos carregados no Amazon S3 em questão de segundos e 99,99% desses objetos em 15 minutos. 

Por padrão, o S3 RTC inclui duas maneiras de monitorar o progresso da replicação: 
+ **Métricas de Replicação do S3**: é possível usar as métricas de Replicação do S3 para monitorar o número total de operações de API do S3 com replicação pendente, o tamanho total dos objetos com replicação pendente, o tempo máximo de replicação para a região de destino e o número total de operações cuja replicação apresentou falha. Você pode monitorar cada conjunto de dados replicado separadamente. Também é possível habilitar as métricas de Replicação do S3 independentemente do S3 RTC. Para obter mais informações, consulte [Usar métricas de replicação do S3](repl-metrics.md).

  As regras de replicação com o Controle de Tempo de Replicação do S3 (S3 RTC) habilitado publicam as métricas de Replicação do S3. As métricas de replicação ficam disponíveis 15 minutos após a ativação do S3 RTC. As métricas de replicação estão disponíveis por meio do console do Amazon S3, da API do Amazon S3, dos SDKs da AWS, da AWS Command Line Interface (AWS CLI) e do Amazon CloudWatch. Para ter mais informações sobre métricas do CloudWatch, consulte [Monitoramento de métricas com o Amazon CloudWatch](cloudwatch-monitoring.md). Consulte mais informações sobre como visualizar métricas de replicação por meio do console do Amazon S3 em [Visualizar métricas de replicação](repl-metrics.md#viewing-replication-metrics).

  As métricas de replicação de S3 são cobradas usando a mesma taxa das métricas personalizadas do Amazon CloudWatch. Para obter mais informações, consulte [Definição de preço do Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/). 
+ **Notificações de Eventos do Amazon S3**: o S3 RTC fornece eventos `OperationMissedThreshold` e `OperationReplicatedAfterThreshold` que notificam o proprietário do bucket se a replicação do objeto exceder ou ocorrer após o limite de 15 minutos. Com o S3 RTC, as Notificações de Eventos do Amazon S3 podem notificar você nas raras vezes em que objetos não são replicados em até 15 minutos e quando esses objetos são replicados depois do limite de 15 minutos. 

  Os eventos de replicação estão disponíveis dentro de 15 minutos após a ativação do S3 RTC. As Notificações de Eventos do Amazon S3 estão disponíveis por meio do Amazon SQS, Amazon SNS ou AWS Lambda. Para obter mais informações, consulte [Receber eventos de falha de replicação com Notificações de Eventos do Amazon S3](replication-metrics-events.md).

 

## Melhores práticas e diretrizes do S3 RTC
<a name="rtc-best-practices"></a>

Ao replicar dados no Amazon S3 com o Controle de Tempo de Replicação do S3 (S3 RTC) habilitado, siga estas diretrizes de práticas recomendadas para otimizar o desempenho da replicação para workloads. 

**Topics**
+ [

### Diretrizes de performance da taxa de replicação e de solicitação do Amazon S3
](#rtc-request-rate-performance)
+ [

### Estimar as taxas de solicitação de replicação
](#estimating-replication-request-rates)
+ [

### Exceder as cotas da taxa de transferência de dados do S3 RTC
](#exceed-rtc-data-transfer-limits)
+ [

### AWS KMSTaxas de solicitação de replicação de objetos criptografados do
](#kms-object-replication-request-rates)

### Diretrizes de performance da taxa de replicação e de solicitação do Amazon S3
<a name="rtc-request-rate-performance"></a>

Ao fazer upload e recuperar armazenamento do Amazon S3, as aplicações podem realizar milhares de transações por segundo em performance de solicitação. Por exemplo, uma aplicação pode atingir pelo menos 3.500 solicitações `PUT`/`COPY`/`POST`/`DELETE` ou 5.500 solicitações `GET`/`HEAD` por segundo por prefixo em um bucket do S3, incluindo as solicitações que a Replicação do S3 faz em seu nome. Não há limite para o número de prefixos em um bucket. Você pode aumentar sua performance de leitura ou gravação paralelizando as leituras. Por exemplo, se criar 10 prefixos em um bucket do S3 para paralelizar leituras, você poderá escalar o desempenho de leitura para 55.000 solicitações de leitura por segundo. 

O Amazon S3 escala automaticamente em resposta a taxas de solicitação sustentadas acima dessas diretrizes ou taxas de solicitação sustentadas simultâneas às solicitações `LIST`. Enquanto o Amazon S3 estiver sendo otimizado internamente para a nova taxa de solicitação, você pode receber respostas de solicitação HTTP 503 temporariamente até que a otimização seja concluída. Esse comportamento pode ocorrer com aumentos nas taxas de solicitação por segundo ou quando você habilita o S3 RTC pela primeira vez. Durante esses períodos, sua latência de replicação pode aumentar. O acordo de nível de serviço (SLA) do S3 RTC não se aplica a períodos em que as diretrizes de performance do Amazon S3 em solicitações por segundo são excedidas. 

O SLA do S3 RTC também não se aplica durante períodos em que a taxa de transferência de dados de replicação excede a cota padrão de 1 gigabit por segundo (Gbps). Se você espera que a taxa de transferência de replicação exceda 1 Gbps, entre em contato com o [AWS Support Center](https://console.aws.amazon.com/support/home#/) ou use o [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) para solicitar um aumento na cota da taxa de transferência de replicação. 

### Estimar as taxas de solicitação de replicação
<a name="estimating-replication-request-rates"></a>

A taxa total de solicitações, incluindo as solicitações que a replicação do Amazon S3 faz em seu nome, deve estar dentro das diretrizes de taxa de solicitação do Amazon S3 para os buckets de origem e destino da replicação. Para cada objeto replicado, a replicação do Amazon S3 faz até cinco solicitações `GET`/`HEAD` e uma solicitação `PUT` para o bucket de origem e uma solicitação `PUT` para cada bucket de destino.

Por exemplo, se você espera replicar 100 objetos por segundo, a replicação do Amazon S3 pode executar mais 100 solicitações `PUT` em seu nome para um total de 200 solicitações `PUT` por segundo para o bucket do S3 de origem. A replicação do Amazon S3 também pode executar até 500 solicitações `GET`/`HEAD` (5 solicitações `GET`/`HEAD` para cada objeto replicado). 

**nota**  
Você receberá a cobrança por apenas uma solicitação `PUT` por objeto replicado. Consulte mais informações sobre o preço nas [Perguntas frequentes sobre replicação do Amazon S3](https://aws.amazon.com/s3/faqs/#Replication). 

### Exceder as cotas da taxa de transferência de dados do S3 RTC
<a name="exceed-rtc-data-transfer-limits"></a>

Se você espera que a taxa de transferência de dados do S3 RTC exceda a cota padrão de 1 Gbps, entre em contato com o [AWS Support Center](https://console.aws.amazon.com/support/home#/) ou use o [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) para solicitar um aumento na cota da taxa de transferência de replicação. 

### AWS KMSTaxas de solicitação de replicação de objetos criptografados do
<a name="kms-object-replication-request-rates"></a>

Quando você replica objetos criptografados com a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), cotas de solicitação por segundo do AWS KMS são aplicadas. O AWS KMS pode rejeitar uma solicitação válida, pois a taxa de solicitação excede a cota do número de solicitações por segundo. Quando uma solicitação é rejeitada, o AWS KMS retorna um erro `ThrottlingException`. A cota da taxa de solicitação do AWS KMS se aplica a solicitações feitas diretamente e a solicitações feitas pela replicação do Amazon S3 em seu nome. 

Por exemplo, se espera replicar 1.000 objetos por segundo, você poderá subtrair 2.000 solicitações da cota de taxa de solicitações do AWS KMS. A taxa de solicitação resultante por segundo está disponível para as workloads do AWS KMS, excluindo a replicação. Você pode usar [métricas de solicitação do AWS KMS no Amazon CloudWatch](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-cloudwatch.html) para monitorar a taxa total de solicitações do AWS KMS em sua Conta da AWS.

Para solicitar um aumento em sua cota de solicitações por segundo do AWS KMS, entre em contato com o [AWS Support Center](https://console.aws.amazon.com/support/home#/) ou use o [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). 

## Habilitar o Controle do tempo de replicação do S3
<a name="replication-walkthrough-5"></a>

Você pode começar a usar o Controle do tempo de replicação do S3 (S3 RTC) com uma regra de replicação nova ou existente. Você pode optar por aplicar a regra de replicação a um bucket inteiro ou a objetos com um prefixo ou uma tag específica. Quando você habilita o S3 RTC, as métricas de Replicação do S3 também são habilitadas na regra de replicação. 

É possível configurar o S3 RTC usando o console do Amazon S3, a API do Amazon S3, os SDKs da AWS e a AWS Command Line Interface (AWS CLI).

**Topics**

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

Para obter instruções detalhadas, consulte [Configurar a replicação para buckets na mesma conta](replication-walkthrough1.md). Este tópico traz instruções para ativar as métricas de replicação do S3 em sua configuração da replicação quando os buckets de origem e destino pertencerem às mesmas Contas da AWS ou a outras.

### Usar a AWS CLI
<a name="replication-ex5-cli"></a>

Para usar a AWS CLI para replicar objetos com o S3 RTC habilitado, crie buckets, habilite o versionamento nos buckets, crie uma função do IAM que conceda permissão ao Amazon S3 para replicar objetos e adicione a configuração da replicação ao bucket de origem. A configuração de replicação deve ter o S3 RTC habilitado, conforme mostrado no exemplo a seguir. 

Consulte instruções passo a passo para definir a configuração da replicação usando a AWS CLI em [Configurar a replicação para buckets na mesma conta](replication-walkthrough1.md).

O exemplo de configuração de replicação a seguir habilita e define os valores de `ReplicationTime` e `EventThreshold` para uma regra de replicação. Habilitar e definir esses valores habilita o S3 RTC na regra.

```
{
    "Rules": [
        {
            "Status": "Enabled",
            "Filter": {
                "Prefix": "Tax"
            },
            "DeleteMarkerReplication": {
                "Status": "Disabled"
            },
            "Destination": {
                "Bucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket",
                "Metrics": {
                    "Status": "Enabled",
                    "EventThreshold": {
                        "Minutes": 15
                    }
                },
                "ReplicationTime": {
                    "Status": "Enabled",
                    "Time": {
                        "Minutes": 15
                    }
                }
            },
            "Priority": 1
        }
    ],
    "Role": "IAM-Role-ARN"
}
```

**Importante**  
 `Metrics:EventThreshold:Minutes` e `ReplicationTime:Time:Minutes` só podem ter `15` como um valor válido. 

### Usar o AWS SDK para Java
<a name="replication-ex5-sdk"></a>

 O exemplo de Java a seguir adiciona a configuração da replicação com o Controle de Tempo de Replicação do S3 (S3 RTC) habilitado.

```
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.model.DeleteMarkerReplication;
import software.amazon.awssdk.services.s3.model.Destination;
import software.amazon.awssdk.services.s3.model.Metrics;
import software.amazon.awssdk.services.s3.model.MetricsStatus;
import software.amazon.awssdk.services.s3.model.PutBucketReplicationRequest;
import software.amazon.awssdk.services.s3.model.ReplicationConfiguration;
import software.amazon.awssdk.services.s3.model.ReplicationRule;
import software.amazon.awssdk.services.s3.model.ReplicationRuleFilter;
import software.amazon.awssdk.services.s3.model.ReplicationTime;
import software.amazon.awssdk.services.s3.model.ReplicationTimeStatus;
import software.amazon.awssdk.services.s3.model.ReplicationTimeValue;

public class Main {

  public static void main(String[] args) {
    S3Client s3 = S3Client.builder()
      .region(Region.US_EAST_1)
      .credentialsProvider(() -> AwsBasicCredentials.create(
          "AWS_ACCESS_KEY_ID",
          "AWS_SECRET_ACCESS_KEY")
      )
      .build();

    ReplicationConfiguration replicationConfig = ReplicationConfiguration
      .builder()
      .rules(
          ReplicationRule
            .builder()
            .status("Enabled")
            .priority(1)
            .deleteMarkerReplication(
                DeleteMarkerReplication
                    .builder()
                    .status("Disabled")
                    .build()
            )
            .destination(
                Destination
                    .builder()
                    .bucket("destination_bucket_arn")
                    .replicationTime(
                        ReplicationTime.builder().time(
                            ReplicationTimeValue.builder().minutes(15).build()
                        ).status(
                            ReplicationTimeStatus.ENABLED
                        ).build()
                    )
                    .metrics(
                        Metrics.builder().eventThreshold(
                            ReplicationTimeValue.builder().minutes(15).build()
                        ).status(
                            MetricsStatus.ENABLED
                        ).build()
                    )
                    .build()
            )
            .filter(
                ReplicationRuleFilter
                    .builder()
                    .prefix("testtest")
                    .build()
            )
        .build())
        .role("role_arn")
        .build();

    // Put replication configuration
    PutBucketReplicationRequest putBucketReplicationRequest = PutBucketReplicationRequest
      .builder()
      .bucket("source_bucket")
      .replicationConfiguration(replicationConfig)
      .build();

    s3.putBucketReplication(putBucketReplicationRequest);
  }
}
```

# 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. 

 

# Replicação de alterações de metadados com sincronização de modificação de réplica
<a name="replication-for-metadata-changes"></a>

A sincronização da modificação de réplica do Amazon S3 pode ajudar a manter metadados de objetos, como tags, listas de controle de acesso (ACLs) e configurações do Bloqueio de Objetos replicadas entre réplicas e objetos de origem. Por padrão, o Amazon S3 replica metadados dos objetos de origem somente para as réplicas. Quando a sincronização de modificação de réplica está habilitada, o Amazon S3 replica as alterações de metadados feitas nas cópias da réplica de volta ao objeto de origem, tornando a replicação bidirecional.

## Ativação da sincronização de modificação da réplica
<a name="enabling-replication-for-metadata-changes"></a>

Você pode usar a sincronização de modificação de réplica do Amazon S3 com regras de replicação novas ou existentes. É possível aplicá-la a um bucket inteiro ou a objetos que tenham um prefixo específico.

Para habilitar a sincronização de modificação de réplica usando o console do Amazon S3, consulte [Exemplos para configurar a replicação em tempo real](replication-example-walkthroughs.md). Este tópico fornece instruções para habilitar a sincronização da modificação de réplicas na configuração de replicação quando os buckets de origem e de destino pertencem às mesmas Contas da AWS ou a contas diferentes.

Para habilitar a sincronização da modificação de réplicas usando a AWS Command Line Interface (AWS CLI), você deve adicionar uma configuração de replicação ao bucket que contém as réplicas com `ReplicaModifications` habilitado. Para configurar a replicação bidirecional, crie uma regra de replicação do bucket de origem (`amzn-s3-demo-source-bucket`) para o bucket que contém as réplicas (`amzn-s3-demo-destination-bucket`). Depois, crie uma segunda regra de replicação do bucket que contém as réplicas (`amzn-s3-demo-destination-bucket`) para o bucket de origem (`amzn-s3-demo-source-bucket`). Os buckets de origem e de destino podem estar em Regiões da AWS diferentes ou na mesma região.

**nota**  
Você deve habilitar a sincronização de modificação de réplica em ambos os buckets, de origem e de destino, para replicar alterações de metadados de réplica, como listas de controle de acesso (ACLs) de objetos, tags de objeto ou configurações de Bloqueio de Objetos nos objetos replicados. Como todas as regras de replicação, é possível aplicá-las a todo o bucket ou a um subconjunto de objetos filtrados por prefixo ou tags de objeto.

No exemplo de configuração a seguir, o Amazon S3 replica alterações de metadados sob o prefixo `Tax` para o bucket `amzn-s3-demo-source-bucket`, que conteria os objetos de origem.

```
{
    "Rules": [
        {
            "Status": "Enabled",
            "Filter": {
                "Prefix": "Tax"
            },
            "SourceSelectionCriteria": {
                "ReplicaModifications":{
                    "Status": "Enabled"
                }
            },
            "Destination": {
                "Bucket": "arn:aws:s3:::amzn-s3-demo-source-bucket"
            },
            "Priority": 1
        }
    ],
    "Role": "IAM-Role-ARN"
}
```

Consulte instruções completas sobre como criar regras de replicação usando a AWS CLI em [Configurar a replicação para buckets na mesma conta](replication-walkthrough1.md).

# Replicação de marcadores de exclusão entre intervalos
<a name="delete-marker-replication"></a>

Por padrão, quando a replicação do S3 está habilitada e um objeto é excluído no bucket de origem, o Amazon S3 adiciona um marcador de exclusão somente no bucket de origem. Essa ação ajuda a proteger os dados nos buckets de destino contra exclusões acidentais ou mal-intencionadas. Se você tiver a *replicação de marcadores de exclusão* habilitada, esses marcadores serão copiados para os buckets de destino e o Amazon S3 se comportará como se o objeto tivesse sido excluído nos buckets de origem e de destino. Para obter mais informações sobre como funcionam os marcadores de exclusão, consulte [Trabalhar com marcadores de exclusão](DeleteMarker.md).

**nota**  
A replicação de marcadores de exclusão não é permitida para regras de replicação baseadas em tags. A replicação de marcadores de exclusão também não adere ao acordo de serviço (SLA) de 15 minutos concedido ao usar o Controle de Tempo de Replicação do S3 (S3 RTC).
Se você não estiver usando a versão XML da configuração de replicação mais recente, as operações de exclusão afetarão a replicação de forma diferente. Para obter mais informações, consulte [Como a exclusão de operações afeta a replicação](replication-what-is-isnot-replicated.md#replication-delete-op).
Se você habilitar a replicação do marcador de exclusão e o bucket de origem tiver uma regra de expiração do Ciclo de Vida do S3, os marcadores de exclusão adicionados por essa regra não serão replicados no bucket de destino.

## Habilitando a replicação de marcadores de exclusão
<a name="enabling-delete-marker-replication"></a>

Você pode começar a usar a replicação de marcadores de exclusão com uma regra de replicação nova ou existente. É possível aplicar a replicação do marcador de exclusão a um bucket inteiro ou a objetos que tenham um prefixo específico.

Para habilitar a replicação de marcadores de exclusão usando o console do Amazon S3, consulte [Usar o console do S3](replication-walkthrough1.md#enable-replication). Este tópico fornece instruções para habilitar a replicação de marcadores de exclusão na configuração de replicação quando os buckets de origem e destino pertencem às mesmas Contas da AWS ou a contas diferentes.

Para habilitar a replicação de marcadores de exclusão usando a AWS Command Line Interface (AWS CLI), você deve adicionar uma configuração de replicação ao bucket de origem com `DeleteMarkerReplication` habilitado, conforme mostrado no exemplo de configuração a seguir. 

No exemplo de configuração de replicação a seguir, os marcadores de exclusão são replicados para o bucket de destino `amzn-s3-demo-destination-bucket` para objetos sob o prefixo `Tax`.

```
{
    "Rules": [
        {
            "Status": "Enabled",
            "Filter": {
                "Prefix": "Tax"
            },
            "DeleteMarkerReplication": {
                "Status": "Enabled"
            },
            "Destination": {
                "Bucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            },
            "Priority": 1
        }
    ],
    "Role": "IAM-Role-ARN"
}
```

Consulte instruções completas sobre como criar regras de replicação por meio da AWS CLI em [Configurar a replicação para buckets na mesma conta](replication-walkthrough1.md).