

# Descripción general de la configuración de la replicación en directo
<a name="replication-how-setup"></a>

**nota**  
Los objetos que existían antes de configurar la replicación no se replican automáticamente. En otras palabras, Amazon S3 no replica los objetos retroactivamente. Para replicar objetos creados antes de la configuración de replicación, utilice la replicación por lotes de S3. Para obtener información sobre de la configuración de Replicación por lotes, consulte [Replicación de objetos existentes](s3-batch-replication-batch.md).

Para habilitar la replicación en directo, (replicación en la misma región [SRR] o la replicación entre regiones [CRR]), añada una configuración de replicación al bucket de origen. Esta configuración indica a Amazon S3 que replique los objetos de la forma especificada. En la configuración de replicación, debe proporcionar lo siguiente:
+ **Los buckets de destino**: el bucket o los buckets en los que desea que Amazon S3 replique los objetos.
+ **Los objetos que desea replicar**: puede replicar todos los objetos del bucket de origen o de un subconjunto de objetos. Para identificar un subconjunto, proporcione un [prefijo de nombre de clave](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#keyprefix), una o más etiquetas de objeto, o ambos en la configuración.

  Por ejemplo, si configura una regla de replicación para replicar solo objetos con el prefijo de nombre de clave `Tax/`, Amazon S3 replica objetos con claves como `Tax/doc1` o `Tax/doc2`. Pero no replica objetos con la clave `Legal/doc3`. Si especifica un prefijo y una o más etiquetas, Amazon S3 replica solo los objetos que tienen el prefijo de clave específico y las etiquetas.
+ **Un rol de AWS Identity and Access Management (IAM)**: Amazon S3 asume este rol de IAM para replicar objetos en su nombre. Para obtener más información sobre la creación de este rol de IAM y la administración de permisos, consulte [Configuración de permisos para la replicación en directo](setting-repl-config-perm-overview.md).

Además de estos requisitos mínimos, puede elegir las siguientes opciones: 
+ **Clase de almacenamiento de réplica**: de forma predeterminada, Amazon S3 almacena réplicas de objetos mediante la misma clase de almacenamiento que el objeto de origen. Puede especificar una clase de almacenamiento diferente para las réplicas.
+ **Propiedad de la réplica**: Amazon S3 supone que una réplica de objeto le pertenece al propietario del objeto de origen. Por tanto, cuando replica objetos, también replica la lista de control de acceso (ACL) del objeto correspondiente o configuración de S3 Object Ownership. Si los buckets de origen y destino pertenecen a dos Cuentas de AWS diferentes, puede configurar la replicación para cambiar el propietario de una réplica a la Cuenta de AWS que posee el bucket de destino. Para obtener más información, consulte [Cambiar el propietario de la réplica](replication-change-owner.md).

Puede configurar la replicación mediante la consola de Amazon S3, la AWS Command Line Interface (AWS CLI), los AWS SDK o la API de REST de Amazon S3. Para ver tutoriales detallados sobre cómo configurar la replicación, consulte [Ejemplos para configurar la replicación en directo](replication-example-walkthroughs.md).

 Amazon S3 proporciona operaciones de API de REST para permitir la configuración de reglas de replicación. Para obtener más información, consulte los siguientes temas en la *referencia de la API de 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 del archivo de configuración de la replicación
](replication-add-config.md)
+ [

# Configuración de permisos para la replicación en directo
](setting-repl-config-perm-overview.md)
+ [

# Ejemplos para configurar la replicación en directo
](replication-example-walkthroughs.md)

# Elementos del archivo de configuración de la replicación
<a name="replication-add-config"></a>

Amazon S3 almacena una configuración de replicación como XML. Si configura la replicación mediante programación a través de la API de REST de Amazon S3, debe especificar los distintos elementos de la configuración de replicación en este archivo XML. Si configura la replicación mediante la AWS Command Line Interface (AWS CLI), debe especificar la configuración de replicación mediante el formato JSON. Para obtener ejemplos de JSON, consulte los tutoriales en [Ejemplos para configurar la replicación en directo](replication-example-walkthroughs.md).

**nota**  
La última versión del formato XML de la configuración de replicación es V2. Las configuraciones de replicación XML V2 son aquellas que contienen el elemento `<Filter>` para las reglas y las reglas que especifican S3 RTC (Control del tiempo de replicación de S3).  
Para ver la versión de configuración de replicación, puede utilizar la operación de API `GetBucketReplication`. Para obtener más información, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) en la *Referencia de la API de Amazon Simple Storage Service*.   
Para la compatibilidad con versiones anteriores, Amazon S3 sigue siendo compatible con el formato de la configuración de replicación XML V1. Si ha utilizado el formato de la configuración de replicación XML V1, consulte [Consideraciones sobre compatibilidad con versiones anteriores](#replication-backward-compat-considerations) para tener en cuenta una serie de aspectos sobre la compatibilidad con versiones anteriores.

En el archivo XML de configuración de replicación, debe especificar un rol de AWS Identity and Access Management (IAM) y una o más reglas, tal y como se muestra en el siguiente ejemplo:

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

Amazon S3 no puede replicar objetos sin su permiso. Otorga permisos a Amazon S3 con el rol de IAM que especifique en la configuración de replicación. Amazon S3 asume este rol de IAM para replicar objetos en su nombre. Debe conceder primero los permisos necesarios al rol de IAM. Para obtener más información acerca de la administración de permisos, consulte [Configuración de permisos para la replicación en directo](setting-repl-config-perm-overview.md).

Agrega solo una regla en una configuración de replicación en los siguientes casos:
+ Desea replicar todos los objetos.
+ Desea replicar solo un subconjunto de objetos. Identifica el subconjunto de objetos añadiendo un filtro en la regla. En el filtro, especifica un prefijo de clave de objeto, etiquetas o una combinación de ambos, para identificar el subconjunto de objetos a los que se aplica la regla. Los filtros se dirigen a los objetos que coinciden con los valores exactos que especifique.

Si quiere replicar diferentes subconjuntos de objetos, agregue varias reglas en una configuración de replicación. En cada regla, se especifica un filtro que selecciona un subconjunto diferente. Por ejemplo, puede elegir replicar objetos que tengan los prefijos de clave `tax/` o `document/`. Para ello, agregue dos reglas, una que especifique el filtro de prefijo de clave `tax/` y otro que especifique el prefijo de clave `document/`. Para obtener más información acerca de los prefijos de clave de objeto, consulte [Organizar objetos con prefijos](using-prefixes.md).

Las secciones siguientes facilitarán información adicional.

**Topics**
+ [

## Configuración básica de reglas
](#replication-config-min-rule-config)
+ [

## Opcional: especificación de un filtro
](#replication-config-optional-filter)
+ [

## Configuraciones de destino adicionales
](#replication-config-optional-dest-config)
+ [

## Ejemplo de configuraciones de replicación
](#replication-config-example-configs)
+ [

## Consideraciones sobre compatibilidad con versiones anteriores
](#replication-backward-compat-considerations)

## Configuración básica de reglas
<a name="replication-config-min-rule-config"></a>

En cada regla se debe incluir el estado y la prioridad de la regla. Además, debe indicar si debe replicar marcadores de eliminación. 
+ El elemento `<Status>` indica si la regla está habilitada o deshabilitada mediante los valores `Enabled` o `Disabled`. Si una regla está desactivada, Amazon S3 no realiza las acciones especificadas en ella. 
+ El elemento `<Priority>` indica qué regla tiene prioridad cada vez que entran en conflicto dos o más reglas de replicación. Amazon S3 intenta replicar objetos de acuerdo con todas las reglas de replicación. Sin embargo, si hay dos o más reglas con el mismo bucket de destino, los objetos se replican de acuerdo a la regla con la prioridad más alta. Cuanto mayor sea el número, mayor será la prioridad.
+ El elemento `<DeleteMarkerReplication>` indica si debe replicar marcadores de eliminación mediante los valores `Enabled` o `Disabled`.

En la configuración del elemento `<Destination>`, debe proporcionar el nombre del bucket o los buckets de destino donde desea que Amazon S3 replique los objetos. 

En el siguiente ejemplo, se muestran los requisitos mínimos para una regla V2. Para la compatibilidad con versiones anteriores, Amazon S3 sigue siendo compatible con el formato XML V1. Para obtener más información, consulte [Consideraciones sobre compatibilidad con versiones 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>
     ...
...
```

También puede especificar otras opciones de configuración. Por ejemplo, puede elegir utilizar una clase de almacenamiento para réplicas de objetos que difieran de la clase para el objeto de origen. 

## Opcional: especificación de un filtro
<a name="replication-config-optional-filter"></a>

Para elegir un subconjunto de objetos a los que se aplica la regla, añada un filtro opcional. Puede especificar un filtro utilizando un prefijo de clave de objeto, etiquetas de objeto o una combinación de ambos. Si filtra en un prefijo de clave y en etiquetas de objeto, Amazon S3 combina los filtros mediante un operador lógico `AND`. En otras palabras, la regla se aplica a un subconjunto de objetos con un prefijo de clave específico y etiquetas específicas. 

**Filtrar en función del prefijo de clave de objeto**  
Para especificar una regla con un filtro basado en un prefijo de la clave de un objeto, utilice el siguiente XML. Puede especificar solo un prefijo por regla.

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

**Filtrar en función de las etiquetas de objeto**  
Para especificar una regla con un filtro basado en etiquetas del objeto, utilice el siguiente XML. También puede especificar una o varias etiquetas del objeto.

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

**Filtrar con un prefijo de clave y etiquetas de objeto**  
Para especificar un filtro de reglas con una combinación de un prefijo de clave y etiquetas del objeto, use el siguiente XML. Estos filtros se ajustan en un elemento `<And>` principal. Amazon S3 realiza una operación `AND` lógica para combinar estos filtros. En otras palabras, la regla se aplica a un subconjunto de objetos con un prefijo de clave específico y etiquetas específicas. 

```
<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**  
Si especifica una regla con un elemento `<Filter>` vacío, la regla se aplica a todos los objetos del bucket.
Cuando utiliza reglas de replicación basadas en etiquetas con replicación en vivo, los objetos nuevos deben etiquetarse con la etiqueta de regla de replicación correspondiente en la operación `PutObject`. De lo contrario, los objetos no se replicarán. Si los objetos se etiquetan después de la operación `PutObject`, tampoco se replicarán.   
Para replicar objetos etiquetados después de la operación `PutObject`, debe utilizar la replicación por lotes de S3. Para obtener más información sobre la replicación por lotes, consulte [Replicación de objetos existentes](s3-batch-replication-batch.md).

## Configuraciones de destino adicionales
<a name="replication-config-optional-dest-config"></a>

En la configuración de destino, especifique el bucket o los buckets en los que desea que Amazon S3 replique los objetos. Puede establecer configuraciones para replicar objetos de un bucket de origen a uno o más buckets de destino. 

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

Puede agregar las siguientes opciones en el `<Destination>` elemento.

**Topics**
+ [

### Especificar la clase de almacenamiento
](#storage-class-configuration)
+ [

### Agregar varios buckets de destino
](#multiple-destination-buckets-configuration)
+ [

### Especificar diferentes parámetros para cada regla de replicación con varios buckets de destino
](#replication-rule-configuration)
+ [

### Cambiar la propiedad de la réplica
](#replica-ownership-configuration)
+ [

### Habilitar el control del tiempo de replicación de S3
](#rtc-configuration)
+ [

### Replicar objetos creados con cifrado del lado del servidor mediante AWS KMS
](#sse-kms-configuration)

### Especificar la clase de almacenamiento
<a name="storage-class-configuration"></a>

Puede especificar la clase de almacenamiento para las réplicas de objetos. De forma predeterminada, Amazon S3 utiliza la clase de almacenamiento del objeto de origen para crear réplicas de objetos, como en el ejemplo siguiente.

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

### Agregar varios buckets de destino
<a name="multiple-destination-buckets-configuration"></a>

Puede agregar varios buckets de destino en una única configuración de replicación, como se indica a continuación.

```
...
<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 diferentes parámetros para cada regla de replicación con varios buckets de destino
<a name="replication-rule-configuration"></a>

Al agregar varios buckets de destino en una única configuración de replicación, puede especificar parámetros diferentes para cada regla de replicación, como se indica a continuación.

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

### Cambiar la propiedad de la réplica
<a name="replica-ownership-configuration"></a>

Cuando los buckets de origen y destino no pertenecen a las mismas cuentas, puede cambiar el propietario de la réplica a la Cuenta de AWS que posee el bucket de destino. Para ello, agregue el elemento `<AccessControlTranslation>`. Este elemento toma el valor `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>
...
```

Si no agrega el elemento `<AccessControlTranslation>` a la configuración de replicación, las réplicas pertenecen a la misma Cuenta de AWS a la que pertenece el objeto de origen. Para obtener más información, consulte [Cambiar el propietario de la réplica](replication-change-owner.md).

### Habilitar el control del tiempo de replicación de S3
<a name="rtc-configuration"></a>

Puede habilitar S3 RTC (Control de tiempo de replicación de S3) en la configuración de replicación S3 RTC replica la mayoría de los objetos en pocos segundos y el 99,99 % de ellos en 15 minutos (con el respaldo de un acuerdo de nivel de servicio). 

**nota**  
Solo se acepta un valor de `<Minutes>15</Minutes>` para los elementos `<EventThreshold>` y `<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 obtener más información, consulte [Cumplimiento de los requisitos de conformidad mediante Control del tiempo de replicación de S3](replication-time-control.md). Para obtener ejemplos de API, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) en la *Amazon Simple Storage Service API Reference*.

### Replicar objetos creados con cifrado del lado del servidor mediante AWS KMS
<a name="sse-kms-configuration"></a>

Es posible que el bucket de origen contenga objetos creados con cifrado del lado del servidor mediante claves de AWS Key Management Service (AWS KMS) (SSE-KMS). De forma predeterminada, Amazon S3 no replica estos objetos. Opcionalmente, puede indicar a Amazon S3 que replique estos objetos. Para ello, primero opte explícitamente por esta característica agregando el elemento `<SourceSelectionCriteria>`. A continuación, proporcione la AWS KMS key (para la Región de AWS del bucket de destino) que se utilizará para cifrar réplicas de objetos. En el siguiente ejemplo, se muestra cómo especificar estos 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 obtener más información, consulte [Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).

## Ejemplo de configuraciones de replicación
<a name="replication-config-example-configs"></a>

Para comenzar, puede añadir los siguientes ejemplos de configuraciones de replicación a su bucket, según corresponda.

**importante**  
Para añadir una configuración de replicación a un bucket, debe tener el permiso `iam:PassRole`. Este permiso le permite pasar el rol de IAM que otorga permisos de replicación de Amazon S3. Usted especifica el rol de IAM proporcionando el Nombre de recurso de Amazon (ARN) que se usa en el elemento `<Role>` en el XML de configuración de replicación. Para obtener más información, consulte [Concesión de permisos a un usuario para transferir un rol a un servicio de Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la *Guía del usuario de IAM*.

**Example 1: configuración de replicación con una sola regla**  
La siguiente configuración de replicación básica especifica una regla. La regla especifica un rol de IAM que Amazon S3 puede asumir y un único bucket de destino para las réplicas de objetos. El valor del elemento `<Status>` de `Enabled` indica que la regla está en 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 elegir un subconjunto de objetos para replicar, puede añadir un filtro. En la siguiente configuración, el filtro especifica un prefijo de clave de objeto. Esta regla se aplica a objetos que tienen el prefijo `Tax/` en sus nombres de clave.   

```
<?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>
```
Si especifica el elemento `<Filter>`, también debe incluir los elementos `<Priority>` y `<DeleteMarkerReplication>`. En este ejemplo, el valor que establezca para el elemento `<Priority>` es irrelevante porque solo hay una regla.  
En la siguiente configuración, el filtro especifica un prefijo y dos etiquetas. La regla se aplica al subconjunto de objetos que tengan el prefijo de clave y las etiquetas especificados. Específicamente, se aplica al objeto que tiene el prefijo `Tax/` en sus nombres de clave y las dos etiquetas de objetos especificadas. En este ejemplo, el valor que establezca para el elemento `<Priority>` es irrelevante porque solo hay una regla.  

```
<?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>
```
Puede especificar una clase de almacenamiento para las réplicas de objetos como se indica a continuación:  

```
<?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>
```
Puede especificar cualquier clase de almacenamiento compatible con Amazon S3.

**Example 2: configuración de replicación con dos reglas**  

**Example**  
En la siguiente configuración de replicación, las reglas especifican lo siguiente:  
+ Cada regla filtra un prefijo de clave diferente para que cada regla se aplique a un subconjunto distinto de objetos. En este ejemplo, Amazon S3 replica objetos con los nombres de clave *`Tax/doc1.pdf`* y *`Project/project1.txt`*, pero no replica ningún objeto con el nombre de clave *`PersonalDoc/documentA`*. 
+ Aunque ambas reglas especifican un valor para el elemento `<Priority>`, la prioridad de regla es irrelevante porque las reglas se aplican a dos conjuntos de objetos distintos. El siguiente ejemplo muestra lo que ocurre cuando se aplica una prioridad de regla. 
+ En la segunda regla, se especifica la clase de almacenamiento S3 Standard-IA para las réplicas de objetos. Amazon S3 utiliza la clase de almacenamiento especificada para esas 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: configuración de replicación con dos reglas con superposición de prefijos**  <a name="overlap-rule-example"></a>
En esta configuración, las dos reglas especifican filtros con superposición de prefijos de clave, *`star`* y *`starship`*. Ambas reglas se aplican a objetos con el nombre de clave *`starship-x`*. En este caso, Amazon S3 usará la prioridad de la regla para determinar la regla que se va a aplicar. Cuanto mayor sea el número, mayor será la prioridad.  

```
<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: explicaciones de ejemplo**  
Para ver tutoriales de ejemplo, consulte [Ejemplos para configurar la replicación en directo](replication-example-walkthroughs.md).

Para obtener más información acerca de la estructura de XML de configuración de replicación, consulte [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) en la *referencia de la API de Amazon Simple Storage Service*. 

## Consideraciones sobre compatibilidad con versiones anteriores
<a name="replication-backward-compat-considerations"></a>

La última versión del formato XML de la configuración de replicación es V2. Las configuraciones de replicación XML V2 son aquellas que contienen el elemento `<Filter>` para las reglas y las reglas que especifican S3 RTC (Control del tiempo de replicación de S3).

Para ver la versión de configuración de replicación, puede utilizar la operación de API `GetBucketReplication`. Para obtener más información, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) en la *Referencia de la API de Amazon Simple Storage Service*. 

Para la compatibilidad con versiones anteriores, Amazon S3 sigue siendo compatible con el formato de la configuración de replicación XML V1. Si ha utilizado el formato de configuración de replicación XML V1, tenga en cuenta los siguientes problemas que afectan a la compatibilidad con versiones anteriores:
+ El formato XML V2 de configuración de replicación incluye el elemento `<Filter>` para reglas. Con el elemento `<Filter>`, puede especificar filtros de objetos basados en el prefijo de la clave del objeto, etiquetas o ambos para abarcar los objetos a los que se aplica la regla. El formato XML V1 de configuración de replicación admite filtrado basado solo en el prefijo de clave. En tal caso, añade el directamente el elemento `<Prefix>` como un elemento secundario del elemento `<Rule>`, como en el ejemplo siguiente:

  ```
  <?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>
  ```
+ Cuando elimina un objeto de su bucket de origen sin especificar un ID de versión del objeto, Amazon S3 agrega un marcador de eliminación. Si utiliza el formato XML V1 de configuración de replicación, Amazon S3 replica solo los marcadores de eliminación que resultan de las acciones del usuario. Dicho de otro modo, Amazon S3 replica el marcador de eliminación solo si un usuario elimina un objeto. Si Amazon S3 elimina un objeto vencido (como parte de una acción del ciclo de vida), Amazon S3 no replica el marcador de eliminación. 

  En el formato XML V2 de configuraciones de replicación, puede habilitar la replicación de marcadores de eliminación para reglas no basadas en etiquetas. Para obtener más información, consulte [Replicación de marcadores de eliminación entre buckets](delete-marker-replication.md). 

 

# Configuración de permisos para la replicación en directo
<a name="setting-repl-config-perm-overview"></a>

Cuando configura la replicación en directo en Amazon S3, debe adquirir los permisos necesarios de la siguiente manera:
+ Debe conceder a la entidad principal de AWS Identity and Access Management (IAM) (usuario o rol) que va a crear las reglas de replicación un conjunto determinado de permisos.
+ Amazon S3 necesita permisos para replicar objetos en su nombre. Puede conceder estos permisos creando un rol de IAM y luego especificando ese rol en la configuración de replicación.
+ Cuando los buckets de origen y destino no pertenecen a las mismas cuentas, el propietario del bucket de destino también debe otorgar al propietario del bucket de origen permisos para almacenar las réplicas.

**nota**  
Si utiliza Operaciones por lotes de S3 para replicar objetos bajo demanda en lugar de configurar la replicación en directo, se requieren políticas y roles de IAM diferentes para la replicación por lotes de S3. Para ver ejemplos de políticas y roles de IAM de Replicación por lotes, consulte [Configuración de un rol de IAM para Replicación por lotes de S3](s3-batch-replication-policies.md).

**Topics**
+ [

## Paso 1: Concesión de permisos a la entidad principal de IAM que crea las reglas de replicación
](#setting-repl-config-role)
+ [

## Paso 2: Creación de un rol de IAM para que Amazon S3 pueda asumirlo
](#setting-repl-config-same-acctowner)
+ [

## (Opcional) Paso 3: Concesión de permisos cuando los buckets de origen y destino son propiedad de Cuentas de AWS diferentes
](#setting-repl-config-crossacct)
+ [

## (Opcional) Paso 4: Concesión de permisos para cambiar al propietario de la réplica
](#change-replica-ownership)

## Paso 1: Concesión de permisos a la entidad principal de IAM que crea las reglas de replicación
<a name="setting-repl-config-role"></a>

El usuario o rol de IAM que utilizará para crear reglas de replicación necesita permisos para crear reglas de replicación para replicaciones unidireccionales o bidireccionales. Si el usuario o rol no dispone de estos permisos, no podrá crear reglas de replicación. Para obtener más información, consulte [Identidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) en la *Guía del usuario de IAM*.

El usuario o rol necesita las siguientes acciones:
+ `iam:AttachRolePolicy`
+ `iam:CreatePolicy`
+ `iam:CreateServiceLinkedRole`
+ `iam:PassRole`
+ `iam:PutRolePolicy`
+ `s3:GetBucketVersioning`
+ `s3:GetObjectVersionAcl`
+ `s3:GetObjectVersionForReplication`
+ `s3:GetReplicationConfiguration`
+ `s3:PutReplicationConfiguration`

A continuación se muestra una política de IAM de ejemplo que incluye estas acciones.

------
#### [ 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*"
            ]
        }
    ]
}
```

------

## Paso 2: Creación de un rol de IAM para que Amazon S3 pueda asumirlo
<a name="setting-repl-config-same-acctowner"></a>



De forma predeterminada, todos los recursos de Amazon S3 (buckets, objetos y subrecursos relacionados) son privados y solo el propietario del recurso puede acceder al él. Amazon S3 necesita permisos de lectura y replicación de objetos del bucket fuente. Puede conceder estos permisos creando un rol de IAM y especificando ese rol en la configuración de replicación. 

En esta sección se explica la política de confianza y la política de permisos mínimos necesarios que se asocian a este rol de IAM. Los tutoriales de ejemplo proporcionan instrucciones paso a paso para crear un rol de IAM. Para obtener más información, consulte [Ejemplos para configurar la replicación en directo](replication-example-walkthroughs.md).

**nota**  
Si utiliza la consola para crear la configuración de replicación, le recomendamos que omita esta sección y, en su lugar, pida a la consola que cree este rol de IAM y las políticas de confianza y permisos necesarias por usted.

La *política de confianza* identifica qué identidades de entidad principal pueden asumir el rol de IAM. La *política de permisos* especifica qué acciones puede realizar el rol de IAM, en qué recursos y en qué condiciones. 
+ En el siguiente ejemplo, se muestra una *política de confianza* donde identifica a Amazon S3 como entidad principal de Servicio de AWS que puede asumir el rol:

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

****  

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

------
+ En el siguiente ejemplo, se muestra una *política de confianza* donde identifica a Amazon S3 y Operaciones por lotes de S3 como entidades principales del servicio que puede asumir el rol. Utilice este enfoque si va a crear un trabajo de Replicación por lotes. Para obtener más información, consulte [Creación de un trabajo de Replicación por lotes para nuevas reglas de replicación o nuevos destinos](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 obtener más información acerca de los roles de IAM, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) en la *Guía del usuario de IAM*.
+ En el siguiente ejemplo, se muestra una *política de permisos* donde concede al rol de IAM permisos para realizar tareas de replicación en su nombre. Cuando Amazon S3 asume el rol, adopta los permisos que especifique en esta política. En esta política, `amzn-s3-demo-source-bucket` es el bucket de origen y `amzn-s3-demo-destination-bucket` es el 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/*"
        }
     ]
  }
  ```

------

  La política de permisos concede permisos para las siguientes acciones:
  +  `s3:GetReplicationConfiguration` y `s3:ListBucket`: los permisos para estas acciones en el bucket de `amzn-s3-demo-source-bucket` permiten a Amazon S3 recuperar la configuración de replicación y mostrar el contenido del bucket. (El modelo de permisos actual requiere el permiso `s3:ListBucket` para acceder a marcadores de eliminación).
  + `s3:GetObjectVersionForReplication` y `s3:GetObjectVersionAcl`: los permisos para estas acciones se conceden en todos los objetos para permitir que Amazon S3 obtenga una versión de objeto específica y una lista de control de acceso (ACL) asociada con los objetos. 

    
  + `s3:ReplicateObject` y `s3:ReplicateDelete`: los permisos para estas acciones en todos los objetos del bucket `amzn-s3-demo-destination-bucket` permiten que Amazon S3 replique los objetos o marcadores de eliminación en el bucket de destino. Para obtener información acerca de los marcadores de eliminación, consulte [Cómo afectan las operaciones de eliminación a la replicación](replication-what-is-isnot-replicated.md#replication-delete-op). 
**nota**  
Los permisos para la acción `s3:ReplicateObject` en el bucket de `amzn-s3-demo-destination-bucket` también permiten la replicación de metadatos, como las etiquetas de objetos y las ACL. Por lo tanto, no es necesario que conceda permiso de forma explícita para la acción `s3:ReplicateTags`.
  + `s3:GetObjectVersionTagging`: los permisos para esta acción en los objetos del bucket `amzn-s3-demo-source-bucket` permiten que Amazon S3 lea las etiquetas de objetos para la replicación. Para obtener más información acerca de las etiquetas de objeto, consulte [Categorización de los objetos mediante etiquetas](object-tagging.md). Si Amazon S3 no tiene el permiso `s3:GetObjectVersionTagging`, replica los objetos pero no las etiquetas de objetos.

  Para obtener una lista de las acciones de Amazon S3, consulte [Acciones, recursos y claves de condición para Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#list_amazons3-actions-as-permissions) en la *Referencia de autorizaciones de servicios*.

  Para obtener más información sobre los permisos para las operaciones de la API de S3 por tipos de recursos de S3, consulte [Permisos necesarios para las operaciones de la API de Amazon S3](using-with-s3-policy-actions.md).
**importante**  
La Cuenta de AWS propietaria del rol de IAM debe tener los permisos para las acciones que concede al rol de IAM.   
Por ejemplo, imagine que el bucket de origen contiene objetos que pertenecen a otra Cuenta de AWS. El propietario de los objetos debe conceder explícitamente a la Cuenta de AWS que posee el rol de IAM los permisos necesarios a través de las listas de control de acceso (ACL) del objeto. De lo contrario, Amazon S3 no puede acceder a los objetos y la replicación de los objetos dará un error. Para obtener más información acerca de los permisos de ACL, consulte [Información general de las Listas de control de acceso (ACL)](acl-overview.md).  
  
Los permisos aquí descritos están relacionados con la configuración de replicación mínima. Si elige agregar configuraciones de replicación opcionales, debe otorgar permisos adicionales a Amazon S3:   
Para replicar objetos cifrados, también debe conceder los permisos de claves de AWS Key Management Service (AWS KMS) necesarios. Para obtener más información, consulte [Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para utilizar Bloqueo de objetos con replicación, debe conceder dos nuevos permisos en el bucket de S3 de origen del rol de AWS Identity and Access Management (IAM) que utiliza para configurar la replicación. Los dos nuevos permisos adicionales son `s3:GetObjectRetention` y `s3:GetObjectLegalHold`. Si el rol tiene una instrucción de permisos `s3:Get*`, esa instrucción cumple el requisito. Para obtener más información, consulte [Uso de Bloqueo de objetos con la replicación de S3](object-lock-managing.md#object-lock-managing-replication).

## (Opcional) Paso 3: Concesión de permisos cuando los buckets de origen y destino son propiedad de Cuentas de AWS diferentes
<a name="setting-repl-config-crossacct"></a>

Cuando los buckets de origen y destino no pertenecen a las mismas cuentas, el propietario del bucket de destino también debe agregar una política de bucket para conceder al propietario los permisos del bucket de origen con el objetivo de realizar las acciones de replicación, tal y como se muestra en el siguiente ejemplo. En esta política de ejemplo, `amzn-s3-demo-destination-bucket` es el bucket de destino.

También puede usar la consola de Amazon S3 para generar automáticamente esta política de bucket. Para obtener más información, consulte [Habilitar la recepción de objetos replicados desde un bucket de origen](#receiving-replicated-objects).

**nota**  
El formato de ARN del rol podría parecer diferente. Si el rol se crea mediante la consola, el formato de ARN es `arn:aws:iam::account-ID:role/service-role/role-name`. Si el rol se creó mediante la AWS CLI, el formato de ARN es `arn:aws:iam::account-ID:role/role-name`. Para obtener más información, consulte [Roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) en la *Guía del usuario de 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 un ejemplo, consulte [Configuración de replicación de buckets en cuentas diferentes](replication-walkthrough-2.md).

Si los objetos en el bucket de origen tienen etiquetas, tenga en cuenta lo siguiente:
+ Si el propietario del bucket de origen concede permisos a Amazon S3 para las acciones `s3:GetObjectVersionTagging` y `s3:ReplicateTags` para replicar las etiquetas de los objetos (mediante el rol de IAM), Amazon S3 replicará las etiquetas junto con los objetos. Para obtener información acerca del rol de IAM, consulte [Paso 2: Creación de un rol de IAM para que Amazon S3 pueda asumirlo](#setting-repl-config-same-acctowner).
+ Si el propietario del bucket de destino no desea replicar las etiquetas, puede añadir la siguiente instrucción a la política del bucket de destino para denegar el permiso explícitamente para la acción `s3:ReplicateTags`: En esta política, `amzn-s3-demo-destination-bucket` es el 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**  
Si desea replicar objetos cifrados, también debe conceder los permisos de claves de AWS Key Management Service (AWS KMS) necesarios. Para obtener más información, consulte [Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para utilizar Bloqueo de objetos con replicación, debe conceder dos nuevos permisos en el bucket de S3 de origen del rol de AWS Identity and Access Management (IAM) que utiliza para configurar la replicación. Los dos nuevos permisos adicionales son `s3:GetObjectRetention` y `s3:GetObjectLegalHold`. Si el rol tiene una instrucción de permisos `s3:Get*`, esa instrucción cumple el requisito. Para obtener más información, consulte [Uso de Bloqueo de objetos con la replicación de S3](object-lock-managing.md#object-lock-managing-replication). 

**Habilitar la recepción de objetos replicados desde un bucket de origen**  
En lugar de agregar manualmente la política anterior al bucket de destino, puede generar rápidamente las políticas necesarias para habilitar la recepción de objetos replicados desde un bucket de origen a través de la consola de Amazon S3. 

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el bucket que desea utilizar como bucket de destino.

1. Elija la pestaña **Administración** y desplácese hacia abajo hasta **Reglas de replicación**.

1. Para **Acciones**, elija **Recibir objetos replicados**. 

   Siga las peticiones e introduzca el ID de Cuenta de AWS de la cuenta del bucket de origen y elija **Generar políticas**. La consola genera una política de bucket de Amazon S3 y una política de claves de KMS.

1. Para agregar esta política a la política de bucket existente, elija **Aplicar configuración** o elija **Copiar** para copiar manualmente los cambios. 

1. (Opcional) Copie la política de AWS KMS a la política de claves de KMS deseada en la consola de AWS Key Management Service. 

## (Opcional) Paso 4: Concesión de permisos para cambiar al propietario de la réplica
<a name="change-replica-ownership"></a>

Cuando las diferentes Cuentas de AWS son propietarias de los buckets de origen y destino, puede indicar a Amazon S3 que cambie la propiedad de la réplica a la Cuenta de AWS que posee el bucket de destino. Para invalidar la propiedad de las réplicas, debe conceder algunos permisos adicionales o ajustar la configuración de propiedad de los objetos de S3 para el bucket de destino. Para obtener más información sobre invalidar al propietario, consulte [Cambiar el propietario de la réplica](replication-change-owner.md).

# Ejemplos para configurar la replicación en directo
<a name="replication-example-walkthroughs"></a>

Los siguientes ejemplos ofrecen tutoriales paso a paso que muestran cómo configurar la replicación en directo para casos de uso comunes. 

**nota**  
La replicación en directo hace referencia a la replicación en la misma región (SRR) y a la replicación entre regiones (CRR). La replicación en directo no replica ningún objeto que hubiera en el bucket antes de configurar la replicación. Para replicar objetos que existían antes de configurar la replicación, utilice la replicación bajo demanda. Para sincronizar buckets y replicar objetos existentes bajo demanda, consulte [Replicación de objetos existentes](s3-batch-replication-batch.md).

En estos ejemplos se muestra cómo crear una configuración de replicación con la consola de Amazon S3, AWS Command Line Interface (AWS CLI) y los SDK de AWS (se muestran ejemplos de AWS SDK para Java y AWS SDK para .NET). 

Para obtener más información acerca de cómo instalar y configurar la AWS CLI, consulte los siguientes temas en la *Guía del usuario de la AWS Command Line Interface*:
+  [Comenzar a utilizar AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 
+  [Configuración de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html): debe configurar al menos un perfil. Si está explorando escenarios que afectan a varias cuentas, configure dos perfiles.

Para obtener información sobre los AWS SDK, consulte [AWS SDK para Java](https://aws.amazon.com/sdk-for-java/) y [AWS SDK para .NET](https://aws.amazon.com/sdk-for-net/).

**sugerencia**  
Para ver un tutorial paso a paso en el que se muestra cómo usar la replicación en directo para replicar datos, consulte el [Tutorial: Replicación de datos dentro y entre Regiones de AWS mediante la replicación de S3](https://aws.amazon.com/getting-started/hands-on/replicate-data-using-amazon-s3-replication/?ref=docs_gateway/amazons3/replication-example-walkthroughs.html).

**Topics**
+ [Configuración de buckets en la misma cuenta](replication-walkthrough1.md)
+ [Configuración de buckets en cuentas diferentes](replication-walkthrough-2.md)
+ [Uso del control de tiempo de replicación S3](replication-time-control.md)
+ [Replicar objetos cifrados](replication-config-for-kms-objects.md)
+ [Replicación de cambios de metadatos](replication-for-metadata-changes.md)
+ [Replicación de marcadores de eliminación](delete-marker-replication.md)

# Configuración de replicación para buckets en la misma cuenta
<a name="replication-walkthrough1"></a>

La replicación en directo consiste en la copia automática y asíncrona de los objetos de los buckets de uso general en las mismas Regiones de AWS o en otras diferentes. La replicación en directo copia los objetos creados recientemente y las actualizaciones de objetos de un bucket de origen a un bucket o buckets de destino. Para obtener más información, consulte [Replicación de objetos dentro de regiones y entre regiones](replication.md).

Al configurar la replicación, se agregan reglas de replicación al bucket de origen. Las reglas de replicación definen qué objetos del bucket de origen se deben replicar y el bucket o buckets de destino donde se almacenan los objetos replicados. Puede crear una regla para replicar todos los objetos en un bucket o un subconjunto de objetos con un prefijo de nombre de clave específico, una o varias etiquetas de objeto, o ambos métodos. El bucket de destino puede estar en la misma Cuenta de AWS que el bucket de origen o puede estar en una cuenta diferente.

Si especifica el ID de versión de objeto que desea eliminar, Amazon S3 elimina esa versión del objeto en el bucket de origen. Pero no replica la eliminación en el bucket de destino. En otras palabras, no elimina la misma versión del objeto del bucket de destino. Esto protege los datos de eliminaciones malintencionadas.

Cuando se añade una regla de replicación a un bucket, la regla está activada de forma predeterminada, por lo que comienza a funcionar tan pronto como se guarda. 

En este ejemplo, configura la replicación en directo de los buckets de origen y destino que son propiedad de la misma Cuenta de AWS. Se proporcionan ejemplos de cómo utilizar la consola de Amazon S3, la AWS Command Line Interface (AWS CLI), y AWS SDK para Java y AWS SDK para .NET.

## Requisitos previos
<a name="replication-prerequisites"></a>

Antes de utilizar los siguientes procedimientos, asegúrese de haber configurado los permisos necesarios para la replicación, en función de si los buckets de origen y destino son propiedad de la misma cuenta o de cuentas diferentes. Para obtener más información, consulte [Configuración de permisos para la replicación en directo](setting-repl-config-perm-overview.md).

**nota**  
Si desea replicar objetos cifrados, también debe conceder los permisos de claves de AWS Key Management Service (AWS KMS) necesarios. Para obtener más información, consulte [Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para utilizar Bloqueo de objetos con replicación, debe conceder dos nuevos permisos en el bucket de S3 de origen del rol de AWS Identity and Access Management (IAM) que utiliza para configurar la replicación. Los dos nuevos permisos adicionales son `s3:GetObjectRetention` y `s3:GetObjectLegalHold`. Si el rol tiene una instrucción de permisos `s3:Get*`, esa instrucción cumple el requisito. Para obtener más información, consulte [Uso de Bloqueo de objetos con la replicación de S3](object-lock-managing.md#object-lock-managing-replication). 

## Uso de la consola de S3
<a name="enable-replication"></a>

Siga estos pasos para configurar una regla de replicación cuando el bucket de destino esté en la misma Cuenta de AWS que el bucket de origen.

Si el bucket de destino está en una cuenta distinta de la del bucket de origen, se debe añadir una política de bucket al bucket de destino para conceder al propietario de la cuenta del bucket de origen permiso para replicar objetos en el bucket de destino. Para obtener más información, consulte [(Opcional) Paso 3: Concesión de permisos cuando los buckets de origen y destino son propiedad de Cuentas de AWS diferentes](setting-repl-config-perm-overview.md#setting-repl-config-crossacct).

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de uso general**.

1. En la lista de buckets, elija el nombre del bucket en cuestión.

1. Elija **Administración**, desplácese hacia abajo hasta **Reglas de replicación** y, a continuación, elija **Crear regla de replicación**.

    

1. En la sección **Configuración de la regla de replicación** en **Nombre de la regla de replicación**, introduzca un nombre para la regla para poder identificarla más adelante. El nombre es obligatorio y debe ser único dentro del bucket.

1. En **Status (Estado)**, **Enabled (Habilitada)** está seleccionado de forma predeterminada. Una regla activada comienza a funcionar tan pronto se guarda. Si desea habilitar la regla más adelante, elija **Deshabilitada**.

1. Si el bucket tiene reglas de replicación existentes, se le indicará que establezca una prioridad para la regla. Debe establecer una prioridad para la regla para evitar conflictos causados por objetos incluidos en el ámbito de más de una regla. En caso de solaparse las reglas, Amazon S3 usará la prioridad de la regla para determinar la regla que se va a aplicar. Cuanto mayor sea el número, mayor será la prioridad. Para obtener más información acerca de la prioridad de regla, consulte [Elementos del archivo de configuración de la replicación](replication-add-config.md).

1. En **Bucket de origen**, tiene las siguientes opciones para establecer el origen de la replicación:
   + Para replicar todo el bucket, elija **Apply to all objects in the bucket** (Aplicar a todos los objetos del bucket). 
   + Para replicar todos los objetos que tengan mismo prefijo, elija **Limit the scope of this rule using one or more filters** (Limitar el ámbito de esta regla mediante uno o varios filtros). Esto limita la replicación a todos los objetos que tienen nombres que comienzan con el prefijo que ha especificado (por ejemplo, `pictures`). Introduzca un prefijo en el cuadro **Prefijo**. 
**nota**  
Si utiliza un prefijo que es el nombre de una carpeta, debe introducir **/** (barra inclinada) como último carácter (por ejemplo: `pictures/`).
   + Para replicar todos los objetos con una o varias etiquetas de objeto, seleccione **Agregar etiqueta** y escriba el par clave-valor en los cuadros. Repita el procedimiento para añadir otra etiqueta. Puede hacer uso combinado de un prefijo y etiquetas. Para obtener más información acerca de las etiquetas de objeto, consulte [Categorización de los objetos mediante etiquetas](object-tagging.md).

   El nuevo esquema XML de configuración de replicación admite el filtrado por prefijos y etiquetas y la priorización de reglas. Para obtener más información acerca del nuevo esquema, consulte [Consideraciones sobre compatibilidad con versiones anteriores](replication-add-config.md#replication-backward-compat-considerations). Para obtener más información sobre el XML utilizado con la API de Amazon S3 que funciona detrás de la interfaz de usuario, consulte [Elementos del archivo de configuración de la replicación](replication-add-config.md). El nuevo esquema se describe como *configuración de replicación XML V2*.

1. En **Destino**, seleccione el bucket en el que desea que Amazon S3 replique los objetos.
**nota**  
El número de buckets de destino está limitado al número de Regiones de AWS en una partición determinada. Una partición es una agrupación de regiones. AWS actualmente tiene tres particiones: `aws` (regiones estándar), `aws-cn` (regiones de China) y `aws-us-gov` (regiones de AWS GovCloud (US)). Puede usar [cuotas de servicio](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) para solicitar un aumento de la cuota del bucket de destino.
   + Para replicar en un bucket o buckets de la cuenta, seleccione **Elegir un bucket en esta cuenta** y escriba o examine los nombres del bucket de destino. 
   + Para replicar en un bucket o buckets de una Cuenta de AWS diferente, seleccione **Elegir un bucket de otra cuenta)** e ingrese el ID de la cuenta del bucket de destino y el nombre del bucket. 

     Si el destino está en una cuenta diferente de la del bucket de origen, debe agregar una política de bucket a los buckets de destino a fin de otorgar al propietario de la cuenta del bucket de origen permiso para replicar objetos. Para obtener más información, consulte [(Opcional) Paso 3: Concesión de permisos cuando los buckets de origen y destino son propiedad de Cuentas de AWS diferentes](setting-repl-config-perm-overview.md#setting-repl-config-crossacct).

     De forma opcional, si desea ayudar a estandarizar la propiedad de nuevos objetos en el bucket de destino, elija **Cambiar la propiedad del objeto al propietario del bucket de destino**. Para obtener más información acerca de esta opción, consulta [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).
**nota**  
Si el control de versiones no está habilitado en el bucket de destino, recibirá una advertencia que contiene un botón **Enable versioning** (Habilitar control de versiones). Elija este botón para activar el control de versiones en el bucket.

1. Configure un rol de AWS Identity and Access Management (IAM) que Amazon S3 pueda asumir para replicar objetos en su nombre.

   Para configurar un rol de IAM, en la sección **Rol de IAM**, seleccione una de las opciones siguientes en la lista desplegable **Rol de IAM**:
   + Es absolutamente recomendable que elija **Create new role (Crear nuevo rol)** para que Amazon S3 cree un nuevo rol de IAM automáticamente. Cuando se guarda la regla, se genera una política nueva para el rol de IAM que coincide con los buckets de origen y de destino elegidos.
   + Puede elegir usar un rol de IAM existente. Si lo hace, debe elegir un rol que conceda a Amazon S3 los permisos necesarios para la replicación. La replicación dará un error si este rol no concede a Amazon S3 permisos suficientes para seguir la regla de replicación.
**importante**  
Cuando añada una regla de replicación a un bucket, debe tener el permiso `iam:PassRole` para poder pasar el rol de IAM que concede los permisos de replicación de Amazon S3. Para obtener más información, consulte [Concesión de permisos a un usuario para transferir un rol a un Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la *Guía del usuario de IAM*.

1. Para replicar objetos en el bucket de origen cifrados en el lado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), en **Cifrado** seleccione **Replicar objetos cifrados con AWS KMS**. En **Claves de AWS KMS para cifrar objetos de destino** están las claves de origen que permiten utilizar la replicación. De forma predeterminada, se incluyen todas las claves de KMS de origen. Para acotar la selección de claves de KMS puede seleccionar una alias o ID de clave. 

   Los objetos cifrados por AWS KMS keys que no seleccione no se replican. Una clave de KMS o un grupo de claves de KMS se seleccionan para usted, pero puede elegir las claves de KMS que desee. Para obtener información acerca del uso de AWS KMS con reproducción, consulte [Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
**importante**  
Cuando replica objetos que están cifrados con AWS KMS, la velocidad de solicitudes de AWS KMS se duplica en la región de origen y aumenta en la región de destino en la misma cantidad. Estas mayores tasas de llamada a AWS KMS se deben a la forma en la que los datos se vuelven a cifrar por medio de la clave de KMS que define para la región de destino de la replicación. AWS KMS tiene un cuota de tasa de solicitud por cada cuenta que realiza la llamada por cada región. Para obtener información acerca de los valores predeterminados de las cuotas, consulte [Cuotas de AWS KMS - Solicitudes por segundo: varían](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html#requests-per-second) en la *Guía para desarrolladores de AWS Key Management Service*.   
Si su tasa de solicitud actual de objeto `PUT` de Amazon S3 durante la replicación es más que la mitad del límite de la tasa de AWS KMS predeterminado para la cuenta, recomendamos que solicite un aumento de la cuota de tasa de solicitud de AWS KMS. Para solicitar un aumento, abra un caso en el Soporte Center en [Contáctese con nosotros](https://aws.amazon.com/contact-us/). Por ejemplo, suponga que su tasa de solicitud de objeto `PUT` actual es de 1000 solicitudes por segundo y utiliza AWS KMS para cifrar sus objetos. En ese caso, recomendamos que pida a Soporte que aumente su límite de tasa de AWS KMS a 2500 solicitudes por segundo, tanto en la región de origen como en la de destino (si son diferentes), para garantizar que no haya una limitación controlada por AWS KMS.   
Para ver su tasa de solicitud de objeto `PUT` en el bucket de origen, consulte `PutRequests` en las métricas de solicitudes de Amazon CloudWatch para Amazon S3. Para obtener información sobre cómo ver las métricas de CloudWatch, consulte [Uso de la consola de S3](configure-request-metrics-bucket.md#configure-metrics).

   Si ha elegido los objetos replicados cifrados con AWS KMS, haga lo siguiente: 

   1. En **AWS KMS key para cifrar objetos de destino**, especifique su clave de KMS de una de las siguientes maneras:
     + Para seleccionar de una lista de claves de KMS disponibles, marque **Elija entre sus claves de AWS KMS keys** y seleccione su **clave de KMS** en la lista de claves disponibles.

       En esta lista aparecen tanto la Clave administrada de AWS (`aws/s3`) como las claves administradas por el cliente. Para obtener más información acerca de las claves administradas por el cliente, consulte [Claves de cliente y claves de AWS](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) en la *Guía para desarrolladores de AWS Key Management Service*.
     + Para introducir el nombre de recurso de Amazon (ARN) de la clave de KMS, elija **Introducir el ARN de AWS KMS key** e introduzca el ARN de la clave de KMS en el campo que aparece. Esto cifra las réplicas en el bucket de destino. Puede buscar el ARN de su clave de KMS en la [Consola de IAM](https://console.aws.amazon.com/iam/) bajo **Claves de cifrado**. 
     + Para crear una nueva clave administrada por el cliente en la consola de AWS KMS, elija **Crear una clave de KMS**.

       Para obtener más información acerca de cómo crear una AWS KMS key, consulte [Creación de claves](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) en la *AWS Key Management Service Guía para desarrolladores*.
**importante**  
Solo puede utilizar las claves de KMS que estén habilitadas en la misma Región de AWS que el bucket. Cuando elige **Elegir entre las claves de KMS**, la consola de S3 solo muestra 100 claves de KMS por región. Si tiene más de 100 claves de KMS en la misma región, solo podrá ver las primeras 100 KMS en la consola S3. Para utilizar una clave de KMS que no aparece en la consola, elija **Introducir el ARN de AWS KMS key** y escriba el ARN de la clave de KMS.  
Cuando utilice una AWS KMS key para el cifrado en el lado del servidor en Amazon S3, debe elegir una clave de cifrado de KMS simétrica. Amazon S3 admite solo claves de KMS de cifrado simétricas y no claves de KMS asimétricas. Para obtener más información, consulte [Identificación de claves de KMS simétricas y asimétricas](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) en la *Guía para desarrolladores de AWS Key Management Service*.

     Para obtener más información acerca de cómo crear una AWS KMS key, consulte [Creación de claves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) en la *AWS Key Management Service Guía para desarrolladores*. Para obtener más información acerca del uso de AWS KMS con Amazon S3, consulte [Uso del cifrado del servidor con claves de AWS KMS (SSE-KMS)](UsingKMSEncryption.md).

1. Si desea replicar los datos en una clase de almacenamiento específica del destino, en **Clase de almacenamiento de destino**, elija **Cambiar la clase de almacenamiento para los objetos replicados**. A continuación, elija la clase de almacenamiento que desea utilizar para los objetos replicados en el destino. Si no selecciona esta opción, la clase de almacenamiento de objetos replicados es la misma que la de los objetos originales.

1. Tiene las siguientes opciones adicionales al configurar las **Opciones de replicación adicionales**:
   + Si desea habilitar el Control del tiempo de replicación de S3 (S3 RTC) en la configuración de replicación, seleccione **Control de tiempo de replicación (RTC)**. Para obtener más información acerca de esta opción, consulta [Cumplimiento de los requisitos de conformidad mediante Control del tiempo de replicación de S3](replication-time-control.md).
   + Si desea habilitar métricas de replicación de S3 en la configuración de replicación, seleccione **Replication metrics and events** (Métricas y eventos de replicación). Para obtener más información, consulte [Supervisión de replicación con métricas, notificaciones de eventos y estados](replication-metrics.md).
   + Si desea habilitar la replicación de marcador de eliminación en la configuración de replicación, seleccione **Delete marker replication** (Eliminar replicación de marcadores). Para obtener más información, consulte [Replicación de marcadores de eliminación entre buckets](delete-marker-replication.md).
   + Si desea habilitar la sincronización de modificación de réplica de Amazon S3 en la configuración de replicación, seleccione **Replica modification sync (Sincronización de modificación de réplica)**. Para obtener más información, consulte [Replicación de cambios de metadatos con la sincronización de modificación de réplica](replication-for-metadata-changes.md).
**nota**  
Cuando utiliza métricas de replicación S3 o S3 RTC, se aplican tarifas adicionales.

1. Para terminar, elija **Guardar**.

1. Después de guardar la regla, puede seleccionar la regla y elegir **Edit rule (Editar regla)** para editarla, habilitarla, deshabilitarla o eliminarla. 

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

Para utilizar la AWS CLI con el objetivo de configurar la replicación cuando los buckets de origen y destino son propiedad de la misma Cuenta de AWS, debe hacer lo siguiente:
+ Cree buckets de origen y destino.
+ Habilite el control de versiones en los buckets.
+ Cree un rol de AWS Identity and Access Management (IAM) que conceda a Amazon S3 permisos para replicar objetos.
+ Agregue la configuración de replicación al bucket de origen.

Para verificar la configuración, debe probarla.

**Configuración de la replicación cuando los buckets de origen y destino son propiedad de la misma Cuenta de AWS**

1. Configure un perfil de credenciales para la AWS CLI. En este ejemplo, usamos el nombre de perfil `acctA`. Para obtener más información sobre los perfiles de credenciales y usar perfiles con nombre, consulte [Opciones de los archivos de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) en la *Guía del usuario de AWS Command Line Interface*. 
**importante**  
El perfil utilizado para este ejemplo debe tener los permisos necesarios. Por ejemplo, en la configuración de replicación especifica el rol de IAM que Amazon S3 puede asumir. Solo puede hacer esto si el perfil que utiliza tiene el permiso `iam:PassRole`. Para obtener más información, consulte [Concesión de permisos a un usuario para transferir un rol a un Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la *Guía del usuario de IAM*. Si utiliza credenciales de administrador para crear un perfil con nombre, puede realizar todas las tareas. 

1. Cree un bucket de origen y habilite el control de versiones en él utilizando los siguientes comandos de AWS CLI. Para utilizar estos comandos, sustituya *`user input placeholders`* con su información. 

   El siguiente comando `create-bucket` crea un bucket de origen llamado `amzn-s3-demo-source-bucket` en la región Este de EE. UU. (Norte de Virginia) (`us-east-1`):

   

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

   El siguiente comando `put-bucket-versioning` habilita el control de versiones de S3 en el bucket `amzn-s3-demo-source-bucket`: 

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

1. Cree un bucket de destino y habilite el control de versiones en él utilizando los siguientes comandos de AWS CLI. Para utilizar estos comandos, sustituya *`user input placeholders`* con su información. 
**nota**  
Para establecer la configuración de replicación cuando los buckets de origen y destino están en la misma Cuenta de AWS, debe utilizar el mismo perfil para los buckets de origen y de destino. En este ejemplo se utiliza `acctA`.   
Para probar una configuración de replicación cuando los buckets son propiedad de diferentes Cuentas de AWS, especifique diferentes perfiles para cada cuenta. En este ejemplo, utilice un perfil `acctB` para el bucket de destino.

   

   El siguiente comando `create-bucket` crea un bucket de destino `amzn-s3-demo-destination-bucket` en la región Oeste de EE. UU. (Oregón) (`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
   ```

   El siguiente comando `put-bucket-versioning` habilita el control de versiones de S3 en el bucket `amzn-s3-demo-destination-bucket`: 

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

1. Crear un rol de IAM. Especifique este rol en la configuración de replicación que agregue al bucket de origen más adelante. Amazon S3 asume este rol para replicar objetos en su nombre. Crea el rol de IAM en dos pasos:
   + Crear un rol.
   + Asocie una política de permisos al rol.

   1. Cree el rol de IAM.

      1. Copie la siguiente política de confianza y guárdela en un archivo llamado `s3-role-trust-policy.json` en el directorio actual en su equipo local. Esta política concede a la entidad principal de servicio de Amazon S3 permisos para asumir el rol.

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

****  

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

------

      1. Ejecute el siguiente comando para crear un rol.

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

   1. Asocie una política de permisos al rol.

      1. Copie la siguiente política de permisos y guárdela en un archivo llamado `s3-role-permissions-policy.json` en el directorio actual en su equipo local. Esta política concede permisos para varias acciones de buckets y objetos de 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**  
Si desea replicar objetos cifrados, también debe conceder los permisos de claves de AWS Key Management Service (AWS KMS) necesarios. Para obtener más información, consulte [Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para utilizar Bloqueo de objetos con replicación, debe conceder dos nuevos permisos en el bucket de S3 de origen del rol de AWS Identity and Access Management (IAM) que utiliza para configurar la replicación. Los dos nuevos permisos adicionales son `s3:GetObjectRetention` y `s3:GetObjectLegalHold`. Si el rol tiene una instrucción de permisos `s3:Get*`, esa instrucción cumple el requisito. Para obtener más información, consulte [Uso de Bloqueo de objetos con la replicación de S3](object-lock-managing.md#object-lock-managing-replication). 

      1. Ejecute el siguiente comando para crear una política y asociarla al rol. Sustituya *`user input placeholders`* por su propia información.

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

1. Añada una configuración de replicación al bucket de origen. 

   1. Si bien la API de Amazon S3 requiere que especifique la configuración de replicación como XML, la AWS CLI requiere que especifique la configuración de replicación como JSON. Guarde la siguiente JSON en un archivo denominado `replication.json` en el directorio local en su equipo.

      ```
      {
        "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. Actualice el JSON sustituyendo los valores de `amzn-s3-demo-destination-bucket` y `IAM-role-ARN` con su propia información. Guarde los cambios.

   1. Ejecute el siguiente comando `put-bucket-replication` para agregar la configuración de replicación al bucket de origen. Asegúrese de proporcionar el nombre del bucket de origen:

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

   Para recuperar la configuración de replicación, utilice el comando `get-bucket-replication`:

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

1. Pruebe la configuración en la consola de Amazon S3 mediante los siguientes pasos:

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. En el panel de navegación izquierdo, elija **Buckets**. En la lista **Buckets de uso general**, elija el bucket de origen.

   1. En el bucket de origen, cree una carpeta llamada `Tax`. 

   1. Agregue objetos de ejemplo a la carpeta `Tax` en el bucket de origen. 
**nota**  
La cantidad de tiempo que Amazon S3 tarda en replicar un objeto depende del tamaño del objeto. Para obtener más información sobre cómo ver el estado de la replicación, consulte [Obtención de información del estado de replicación](replication-status.md).

      En el bucket de destino, compruebe lo siguiente:
      + Que Amazon S3 haya replicado los objetos.
      + Que los objetos son réplicas. En la pestaña **Propiedades** de sus objetos, desplácese hacia abajo hasta la sección **Información general sobre la administración de objetos**. En **Configuraciones de administración**, consulte el valor en **Estado de replicación**. Asegúrese de que este valor esté establecido en `REPLICA`.
      + Que las réplicas sean propiedad de la cuenta del bucket de origen. Puede verificar la propiedad del objeto en la pestaña **Permisos** de sus objetos. 

        Si los buckets de origen y destino son propiedad de diferentes cuentas, puede agregar una configuración opcional para indicar a Amazon S3 que cambie la propiedad de la réplica a la cuenta de destino. Para ver un ejemplo, consulta [Cómo cambiar al propietario de la réplica](replication-change-owner.md#replication-walkthrough-3). 

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

Utilice los siguientes ejemplos de código para añadir una configuración de replicación a un bucket con AWS SDK para Java y AWS SDK para .NET, respectivamente.

**nota**  
Si desea replicar objetos cifrados, también debe conceder los permisos de claves de AWS Key Management Service (AWS KMS) necesarios. Para obtener más información, consulte [Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md).
Para utilizar Bloqueo de objetos con replicación, debe conceder dos nuevos permisos en el bucket de S3 de origen del rol de AWS Identity and Access Management (IAM) que utiliza para configurar la replicación. Los dos nuevos permisos adicionales son `s3:GetObjectRetention` y `s3:GetObjectLegalHold`. Si el rol tiene una instrucción de permisos `s3:Get*`, esa instrucción cumple el requisito. Para obtener más información, consulte [Uso de Bloqueo de objetos con la replicación de S3](object-lock-managing.md#object-lock-managing-replication). 

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

Para agregar una configuración de replicación a un bucket y, a continuación, recuperar y verificar la configuración mediante el AWS SDK para Java, puede utilizar S3Client para administrar la configuración de replicación mediante programación.

Para ver ejemplos de cómo configurar la replicación con el 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) en la *Referencia de la API de Amazon S3*.

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

El siguiente código de ejemplo de AWS SDK para .NET añade una configuración de replicación a un bucket y luego la recupera. Para usar este código, proporcione los nombres de los buckets y el nombre de recurso de Amazon (ARN) para el rol de IAM. Para obtener información acerca de cómo configurar y ejecutar ejemplos de código, consulte [Introducción a AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config.html) en la *Guía para desarrolladores de 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);
            }
        }
    }
}
```

------

# Configuración de replicación de buckets en cuentas diferentes
<a name="replication-walkthrough-2"></a>

La replicación en directo consiste en la copia automática y asíncrona de los objetos de los buckets en las mismas o en diferentes Regiones de AWS. La replicación en directo copia los objetos creados recientemente y las actualizaciones de objetos de un bucket de origen a un bucket o buckets de destino. Para obtener más información, consulte [Replicación de objetos dentro de regiones y entre regiones](replication.md).

Al configurar la replicación, se agregan reglas de replicación al bucket de origen. Las reglas de replicación definen qué objetos del bucket de origen se deben replicar y el bucket o buckets de destino donde se almacenan los objetos replicados. Puede crear una regla para replicar todos los objetos en un bucket o un subconjunto de objetos con un prefijo de nombre de clave específico, una o varias etiquetas de objeto, o ambos métodos. El bucket de destino puede estar en la misma Cuenta de AWS que el bucket de origen o puede estar en una cuenta diferente.

Si especifica el ID de versión de objeto que desea eliminar, Amazon S3 elimina esa versión del objeto en el bucket de origen. Pero no replica la eliminación en el bucket de destino. En otras palabras, no elimina la misma versión del objeto del bucket de destino. Esto protege los datos de eliminaciones malintencionadas.

Cuando se añade una regla de replicación a un bucket, la regla está activada de forma predeterminada, por lo que comienza a funcionar tan pronto como se guarda. 

La configuración de replicación en directo cuando los buckets de origen y destino son propiedad de diferentes Cuentas de AWS es similar a la configuración de replicación cuando ambos buckets son propiedad de la misma cuenta. Sin embargo, existen varias diferencias a la hora de configurar la replicación en un escenario en el que las cuentas son diferentes: 
+ El propietario del bucket de destino debe conceder al propietario del bucket de origen permiso para replicar objetos en la política de bucket de destino. 
+ Si está replicando objetos cifrados en el servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS) en un caso con diferentes cuentas, el propietario de la clave de KMS debe conceder al propietario del bucket de origen permiso para usar la clave de KMS. Para obtener más información, consulte [Conceder permisos adicionales para escenarios que afectan a varias cuentas](replication-config-for-kms-objects.md#replication-kms-cross-acct-scenario). 
+ De forma predeterminada, los objetos replicados son propiedad del propietario del bucket de origen. En un caso de diferentes cuentas, podría configurar la replicación para que cambie la propiedad de los objetos replicados al propietario del bucket de destino. Para obtener más información, consulte [Cambiar el propietario de la réplica](replication-change-owner.md).

**Para configurar la replicación cuando los buckets de origen y destino son propiedad de diferentes Cuentas de AWS**

1. En este ejemplo, crea los buckets de origen y destino en dos Cuentas de AWS diferentes. Debe tener dos perfiles de credenciales configurados para la AWS CLI. En este ejemplo se utiliza `acctA` y `acctB` para esos nombres de perfil. Para obtener más información sobre los perfiles de credenciales y usar perfiles con nombre, consulte [Opciones de los archivos de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) en la *Guía del usuario de AWS Command Line Interface*. 

1. Siga las instrucciones paso a paso en [Configuración de replicación para buckets en la misma cuenta](replication-walkthrough1.md) con los siguientes cambios:
   + Para todos los comandos de la AWS CLI relacionados con actividades del bucket de origen (como crear el bucket de origen, habilitar el control de versiones y crear el rol de IAM), utilice el perfil `acctA`. Utilice el perfil `acctB` para crear el bucket de destino. 
   + Asegúrese de que la política de permisos del rol de IAM especifica los bucket de origen y de destino creados para este ejemplo.

1. En la consola, añada la siguiente política de bucket al bucket de destino para permitir al propietario del bucket de origen replicar objetos: Para obtener instrucciones, consulte [Agregar una política de bucket mediante la consola de Amazon S3](add-bucket-policy.md). Asegúrese de editar la política proporcionando el ID de la Cuenta de AWS del propietario del bucket de origen, el nombre del rol de IAM y el nombre del bucket de destino. 
**nota**  
Para utilizar el ejemplo siguiente, sustituya `user input placeholders` con su propia información. Sustituya `amzn-s3-demo-destination-bucket` con el nombre del bucket de destino. Sustituya `source-bucket-account-ID:role/service-role/source-account-IAM-role` en el Nombre de recurso de Amazon (ARN) de IAM con el rol de IAM que utiliza para esta configuración de replicación.  
Si creó el rol de servicio de IAM de forma manual, establezca la ruta del rol en el ARN de IAM como `role/service-role/`, tal y como se muestra en el siguiente ejemplo de política. Para obtener más información, consulte [ARN de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) en la *guía del usuario de 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) Si va a replicar objetos cifrados en el servidor con SSE-KMS, el propietario de la clave de KMS debe conceder al propietario del bucket de origen permiso para usar la clave de KMS. Para obtener más información, consulte [Conceder permisos adicionales para escenarios que afectan a varias cuentas](replication-config-for-kms-objects.md#replication-kms-cross-acct-scenario).

1. (Opcional) En la replicación, el propietario del objeto de origen es propietario de la réplica de manera predeterminada. Cuando los buckets de origen y destino son propiedad de diferentes Cuentas de AWS, puede agregar ajustes de configuración opcionales para cambiar la propiedad de la réplica a la Cuenta de AWS propietaria de los buckets de destino. Esto incluye la concesión del permiso `ObjectOwnerOverrideToBucketOwner`. Para obtener más información, consulte [Cambiar el propietario de la réplica](replication-change-owner.md).

# Cambiar el propietario de la réplica
<a name="replication-change-owner"></a>

En la replicación, el propietario del objeto de origen también es propietario de la réplica de manera predeterminada. Sin embargo, cuando los buckets de origen y destino son propiedad de diferentes Cuentas de AWS, es posible que quiera cambiar la propiedad de la réplica. Por ejemplo, es posible que quiera cambiar la propiedad para restringir el acceso a las réplicas de objetos. En la configuración de replicación, puede agregar ajustes de configuración opcionales para cambiar la propiedad de la réplica a la Cuenta de AWS propietaria de los buckets de destino. 

Para cambiar el propietario de la réplica, haga lo siguiente:
+ Añada la opción de *invalidación del propietario* a la configuración de replicación para indicar a Amazon S3 que cambie la propiedad de la réplica. 
+ Conceda a Amazon S3 el permiso `s3:ObjectOwnerOverrideToBucketOwner` para cambiar la propiedad de la réplica. 
+ Añada el permiso `s3:ObjectOwnerOverrideToBucketOwner` en la política del bucket de destino para permitir el cambio de propiedad de la réplica. El permiso `s3:ObjectOwnerOverrideToBucketOwner` permite al propietario de los buckets de destino aceptar la propiedad de las réplicas de objetos.

Para obtener más información, consulte [Consideraciones sobre la opción de anulación de la propiedad](#repl-ownership-considerations) y [Agregar la opción de invalidación del propietario a la configuración de la replicación](#repl-ownership-owneroverride-option). Para ver un ejemplo práctico con instrucciones paso a paso, consulte [Cómo cambiar al propietario de la réplica](#replication-walkthrough-3).

**importante**  
En lugar de utilizar la opción de invalidación del propietario, puede utilizar la configuración de propietario del bucket obligatorio de Propiedad de objetos. Cuando utiliza la replicación y los buckets de origen y destino pertenecen a diferentes Cuentas de AWS, el propietario del bucket de destino puede utilizar la configuración aplicada por el propietario del bucket para Propiedad de objetos con el fin de cambiar la propiedad de réplica a la Cuenta de AWS que posee el bucket de destino. Esta configuración deshabilita las listas de control de acceso (ACL) a objetos.   
La configuración aplicada por el propietario del bucket imita el comportamiento de anulación del propietario existente sin necesidad del permiso `s3:ObjectOwnerOverrideToBucketOwner`. Todos los objetos que se replican en el bucket de destino con la configuración de propietario del bucket obligatorio pertenecen al propietario del bucket de destino. Para obtener más información acerca de la propiedad de objetos, consulte [Control de la propiedad de los objetos y desactivación de las ACL del bucket](about-object-ownership.md).

## Consideraciones sobre la opción de anulación de la propiedad
<a name="repl-ownership-considerations"></a>

Al configurar la opción de anulación de propiedad, se aplican las siguientes consideraciones:
+ De forma predeterminada, el propietario del objeto de origen también es propietario de la réplica. Amazon S3 replica la versión del objeto y la ACL asociada a ella.

  Si agrega la opción de anulación del propietario a la configuración de replicación, Amazon S3 replica solo la versión del objeto, no la ACL. Además, Amazon S3 no replica los cambios que se realicen posteriormente en la ACL del objeto de origen. Amazon S3 establece la ACL de la réplica de forma que se conceda control completo al propietario del bucket de destino. 
+  Al actualizar una configuración de replicación para habilitar o deshabilitar la anulación del propietario, se produce el siguiente comportamiento:
  + Si añade la opción de invalidación del propietario a la configuración de replicación:

    Cuando Amazon S3 replica una versión del objeto, descarta la ACL asociada al objeto de origen. En su lugar, Amazon S3 establece la ACL de la réplica de forma que se conceda control completo al propietario del bucket de destino. Amazon S3 no replica los cambios que se realicen posteriormente en la ACL del objeto de origen. No obstante, este cambio a la ACL no se aplica a las versiones de objetos que se replicaron antes de configurar la opción de invalidación del propietario. Las actualizaciones de las ACL de los objetos de origen que se replicaron antes de que se configurara la opción de invalidación del propietario se seguirán replicando (porque el objeto y sus réplicas siguen teniendo el mismo propietario).
  + Si elimina la opción de invalidación del propietario de la configuración de replicación:

    Amazon S3 replica objetos nuevos que aparecen en el bucket de origen y las ACL asociadas a los buckets de destino. Para objetos que se replicaron antes de que eliminar la invalidación del propietario, Amazon S3 no replica las ACL porque el cambio de titularidad del objeto que realizó Amazon S3 permanece en vigor. Es decir, las ACL aplicadas a la versión del objeto que se replicaban cuando se estableció la opción de invalidación del propietario siguen sin replicarse.

## Agregar la opción de invalidación del propietario a la configuración de la replicación
<a name="repl-ownership-owneroverride-option"></a>

**aviso**  
Agregue la opción de invalidación del propietario solo cuando los buckets de origen y destino pertenezcan a distintas Cuentas de AWS. Amazon S3 no comprueba si los buckets pertenecen a las mismas cuentas o a cuentas diferentes. Si agrega la opción de invalidación del propietario cuando ambos buckets pertenecen a la misma Cuenta de AWS, Amazon S3 aplica la opción de invalidación del propietario. Esta opción concede permisos completos al propietario del bucket de destino y no replica las actualizaciones que se realicen posteriormente en la lista de control de acceso (ACL) del objeto de origen. El propietario de la réplica puede cambiar directamente la ACL asociada a una réplica con una solicitud `PutObjectAcl`, pero no a través de la replicación.

Para especificar la opción de sustitución de propietario, agregue lo siguiente a cada `Destination` elemento: 
+ El elemento `AccessControlTranslation`, que indica a Amazon S3 que cambie la titularidad de la réplica.
+ El elemento `Account`, que especifica la Cuenta de AWS del propietario del 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>
```

La siguiente configuración de replicación de ejemplo, indica a Amazon S3 que replique objetos que tienen el prefijo de clave *`Tax`* en el bucket de destino `amzn-s3-demo-destination-bucket` y cambie la propiedad de las réplicas. Para utilizar este ejemplo, sustituya `user input placeholders` por su propia información.

```
<?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>
```

## Concesión de permisos a Amazon S3 para cambiar la titularidad de la réplica
<a name="repl-ownership-add-role-permission"></a>

Conceda a Amazon S3 permisos para cambiar la propiedad de las réplicas añadiendo permisos para la acción `s3:ObjectOwnerOverrideToBucketOwner` en la política de permisos asociada con el rol de AWS Identity and Access Management (IAM). Se trata del rol de IAM que especificó en la configuración de replicación que permite a Amazon S3 asumir y replicar objetos en su nombre. Para usar el siguiente ejemplo, sustituya `amzn-s3-demo-destination-bucket` con el nombre del bucket de destino.

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

## Agregar permiso a la política del bucket de destino para permitir cambiar la titularidad de la réplica
<a name="repl-ownership-accept-ownership-b-policy"></a>

El propietario del bucket de destino debe otorgar al propietario del bucket de origen permiso para cambiar la titularidad de la réplica. El propietario del bucket de destino otorga al propietario del bucket de origen permiso para la acción `s3:ObjectOwnerOverrideToBucketOwner`. Este permiso permite al propietario del bucket de destino aceptar la propiedad de las réplicas de objetos. En el siguiente ejemplo de instrucción de política de buckets se muestra cómo se hace esto. Para utilizar este ejemplo, sustituya `user input placeholders` por su propia información.

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

## Cómo cambiar al propietario de la réplica
<a name="replication-walkthrough-3"></a>

Cuando los buckets de origen y destino de una configuración de replicación son propiedad de diferentes Cuentas de AWS, puede indicar a Amazon S3 que cambie la propiedad de la réplica a la Cuenta de AWS que posee el bucket de destino. En los ejemplos siguientes, se muestra cómo utilizar la consola de Amazon S3, la AWS Command Line Interface (AWS CLI) y los AWS SDK para cambiar la propiedad de las réplicas. 

### Uso de la consola de S3
<a name="replication-ex3-console"></a>

Para obtener instrucciones paso a paso, consulte [Configuración de replicación para buckets en la misma cuenta](replication-walkthrough1.md). En este tema, se proporcionan instrucciones para establecer la configuración de replicación cuando los buckets de origen y destino son propiedad de la misma y de diferentes Cuentas de AWS.

### Uso de AWS CLI
<a name="replication-ex3-cli"></a>

En el siguiente procedimiento, se muestra cómo cambiar la propiedad de la réplica mediante la AWS CLI. En este procedimiento, hará lo siguiente: 
+ Cree buckets de origen y destino.
+ Habilite el control de versiones en los buckets.
+ Cree un rol de AWS Identity and Access Management (IAM) que conceda a Amazon S3 permisos para replicar objetos.
+ Agregue la configuración de replicación al bucket de origen.
+ En la configuración de replicación, indique a Amazon S3 que cambie la propiedad de la réplica.
+ Pruebe la configuración de replicación.

**Cambio de la propiedad de réplicas cuando los buckets de origen y destino son propiedad de diferentes Cuentas de AWS (AWS CLI)**

Para usar los comandos AWS CLI de ejemplo, sustituya `user input placeholders` con su información. 

1. En este ejemplo, se crean los buckets de origen y destino en dos Cuentas de AWS diferentes. Para trabajar con estas dos cuentas, configure la AWS CLI con dos perfiles con nombre. En este ejemplo, se usan los nombres de perfil *`acctA`* y *`acctB`* respectivamente. Para obtener más información sobre los perfiles de credenciales y usar perfiles con nombre, consulte [Opciones de los archivos de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) en la *Guía del usuario de AWS Command Line Interface*. 
**importante**  
Los perfiles utilizados para este procedimiento deben tener los permisos necesarios. Por ejemplo, en la configuración de replicación especifica el rol de IAM que Amazon S3 puede asumir. Solo puede hacer esto si el perfil que utiliza tiene el permiso `iam:PassRole`. Si utiliza credenciales de usuario de administrador para crear un perfil con nombre, puede realizar todas las tareas en este procedimiento. Para obtener más información, consulte [Concesión de permisos a un usuario para transferir un rol a un servicio de Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la *Guía del usuario de IAM*. 

1. Cree el bucket de origen y habilite el control de versiones. En este ejemplo, se crea el bucket de origen llamado `amzn-s3-demo-source-bucket` en la región Este de EE. UU. (Norte de Virginia) (`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. Cree un bucket de destino y habilite el control de versiones. En este ejemplo, se crea el bucket de destino llamado `amzn-s3-demo-destination-bucket` en la región Oeste de EE. UU. (Oregón) (`us-west-2`). Utilice un perfil de Cuenta de AWS diferente al utilizado para el bucket de origen.

   ```
   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. Debe añadir permisos a la política del bucket de destino para permitir el cambio de titularidad de la réplica.

   1.  Guarde la siguiente política en un archivo denominado `destination-bucket-policy.json`. Asegúrese de sustituir *`user input placeholders`* con su propia información.

------
#### [ 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. Agregue la política anterior al bucket de destino mediante el siguiente 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. Crear un rol de IAM. Especifique este rol en la configuración de replicación que agregue al bucket de origen más adelante. Amazon S3 asume este rol para replicar objetos en su nombre. Crea el rol de IAM en dos pasos:
   + Creación del rol.
   + Asocie una política de permisos al rol.

   1. Cree el rol de IAM.

      1. Copie la siguiente política de confianza y guárdela en un archivo llamado `s3-role-trust-policy.json` en el directorio actual en su equipo local. Esta política concede a Amazon S3 permisos para asumir el rol.

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

****  

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

------

      1. Ejecute el siguiente comando `create-role` de AWS CLI para crear el rol de IAM:

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

         Anote el nombre de recurso de Amazon (ARN) del rol de IAM que creó. Necesitará este ARN en un paso posterior.

   1. Asocie una política de permisos al rol.

      1. Copie la siguiente política de permisos y guárdela en un archivo llamado `s3-role-perm-pol-changeowner.json` en el directorio actual en su equipo local. Esta política concede permisos para varias acciones de buckets y objetos de Amazon S3. En los siguientes pasos, asocie esta política al rol de IAM que ha creado antes. 

------
#### [ 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 asociar la política de permisos anterior al rol, ejecute el siguiente 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. Agregar una configuración de replicación al bucket de origen.

   1. La AWS CLI requiere que especifique la configuración de replicación como JSON. Guarde la siguiente JSON en un archivo denominado `replication.json` en el directorio actual en su equipo local. En la configuración, `AccessControlTranslation` especifica el cambio en la propiedad de la réplica del propietario del bucket de origen al propietario del 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 el JSON proporcionando valores para el nombre del bucket de destino, el ID de la cuenta del propietario del bucket de destino y `IAM-role-ARN`. Sustituya *`IAM-role-ARN`* por el ARN del rol de IAM que ha creado anteriormente. Guarde los cambios.

   1. Para agregar la configuración de replicación al bucket de origen, ejecute el siguiente comando:

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

1. Pruebe la configuración de replicación comprobando la propiedad de la réplica en la consola de Amazon S3.

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Agregar objetos al bucket de origen. Compruebe que el bucket de destino contenga las réplicas de objeto y que la propiedad de las réplicas haya cambiado a la Cuenta de AWS propietaria del bucket de destino.

### Uso de los AWS SDK
<a name="replication-ex3-sdk"></a>

 Para obtener un ejemplo de código para agregar una configuración de replicación, consulte [Uso de la SDKs AWS](replication-walkthrough1.md#replication-ex1-sdk). Tendrá que modificar la configuración de replicación en concordancia. Para obtener información conceptual, consulte [Cambiar el propietario de la réplica](#replication-change-owner). 

# Cumplimiento de los requisitos de conformidad mediante Control del tiempo de replicación de S3
<a name="replication-time-control"></a>

S3 RTC (Control del tiempo de replicación de S3) le ayuda a cumplir requisitos de conformidad o requisitos empresariales para la replicación de datos y proporciona visibilidad de los tiempos de replicación de Amazon S3. S3 RTC replica la mayoría de los objetos que se cargan en Amazon S3 en unos segundos y el 99,9 % de esos objetos en un plazo de 15 minutos. 

De forma predeterminada, S3 RTC incluye dos formas de realizar un seguimiento del progreso de la replicación: 
+ **Métricas de Replicación de S3**: puede utilizar las métricas de Replicación de S3 para monitorizar el número total de operaciones de la API de S3 que están pendientes de replicación, el tamaño total de los objetos pendientes de replicación, el tiempo máximo de replicación en la región de destino y el número total de operaciones que no se ha podido replicar. A continuación, puede monitorizar cada conjunto de datos que se replica por separado. También puede habilitar las métricas de Replicación de S3 independientemente de S3 RTC. Para obtener más información, consulte [Uso de métricas de replicación de S3](repl-metrics.md).

  Las reglas de replicación con Control del tiempo de replicación de S3 (S3 RTC) habilitado pueden publicar métricas de replicación de S3. Las métricas de replicación están disponibles dentro de los 15 minutos siguientes a la habilitación de S3 RTC. Las métricas de replicación están disponibles a través de la consola de Amazon S3, la API de Amazon S3, los AWS SDK, la AWS Command Line Interface (AWS CLI) y Amazon CloudWatch. Para obtener más información acerca de las métricas de CloudWatch, consulte [Monitorización de métricas con Amazon CloudWatch](cloudwatch-monitoring.md). Para obtener más información sobre cómo visualizar métricas de replicación a través de la consola de Amazon S3, consulte [Consultar métricas de replicación](repl-metrics.md#viewing-replication-metrics).

  Las métricas de replicación de S3 se facturan al mismo precio que las métricas personalizadas de Amazon CloudWatch. Para obtener más información, consulte los [precios de Amazon CloudWatch](https://aws.amazon.com/cloudwatch/pricing/). 
+ **Notificaciones de eventos de Amazon S3**: S3 RTC proporciona eventos `OperationMissedThreshold` y `OperationReplicatedAfterThreshold` que notifican al propietario del bucket si la replicación de objetos supera o se produce después del umbral de 15 minutos. Con S3 RTC, las notificaciones de eventos de Amazon S3 le pueden notificar los casos poco habituales en que los objetos no se replican en 15 minutos y cuando esos objetos se replican después del umbral de 15 minutos. 

  Las métricas de replicación están disponibles dentro de los 15 minutos siguientes a la habilitación de S3 RTC. Las notificaciones de eventos de Amazon S3 están disponibles a través de Amazon SQS, Amazon SNS o AWS Lambda. Para obtener más información, consulte [Recepción de eventos de error de replicación con notificaciones de eventos de Amazon S3](replication-metrics-events.md).

 

## Prácticas recomendadas y directrices para S3 RTC
<a name="rtc-best-practices"></a>

Al replicar datos en Amazon S3 con el Control del tiempo de replicación de S3 (S3 RTC) habilitado, siga estas prácticas recomendadas para optimizar el rendimiento de replicación de sus cargas de trabajo. 

**Topics**
+ [

### Directrices para optimizar la tasa de solicitudes y el rendimiento de replicación de Amazon S3
](#rtc-request-rate-performance)
+ [

### Cálculo de las tasas de solicitudes de replicación
](#estimating-replication-request-rates)
+ [

### Superación de las cuotas de la tasa de transferencia de datos de S3 RTC
](#exceed-rtc-data-transfer-limits)
+ [

### AWS KMSTasas de solicitudes de replicación de objetos cifrados con
](#kms-object-replication-request-rates)

### Directrices para optimizar la tasa de solicitudes y el rendimiento de replicación de Amazon S3
<a name="rtc-request-rate-performance"></a>

Al cargar y recuperar almacenamiento de Amazon S3, sus aplicaciones pueden lograr fácilmente miles de transacciones por segundo en el rendimiento de la solicitud. Por ejemplo, una aplicación puede lograr al menos 3500 solicitudes `PUT`/`COPY`/`POST`/`DELETE` o 5500 `GET`/`HEAD` por segundo y prefijo en un bucket de S3, incluidas las solicitudes que realiza Replicación de S3 en su nombre. No existe ningún límite en cuanto al número de prefijos dentro de un bucket. Puede aumentar el rendimiento de lectura o escritura ejecutando en paralelo las operaciones de lectura. Por ejemplo, si crea 10 prefijos en un bucket de S3 para ejecutar en paralelo las operaciones de lectura, puede escalar el rendimiento de lectura a 55 000 solicitudes de lectura por segundo. 

Amazon S3 se reduce horizontalmente de forma automática en respuesta a las tasas de solicitudes sostenidas por encima de estas directrices, o de tasas de solicitudes sostenidas simultáneas con solicitudes `LIST`. Aunque Amazon S3 se está optimizando internamente para una nueva velocidad de solicitudes, podría recibir respuestas a las solicitudes HTTP 503 de forma temporal hasta que se complete la optimización. Este comportamiento puede tener lugar cuando se producen aumentos en las tasas de solicitudes por segundo o cuando se habilita S3 RTC por primera vez. Durante estos periodos, la latencia de replicación puede aumentar. El acuerdo de nivel de servicio (SLA) de S3 RTC no se aplica a los periodos en los que se exceden las directrices de rendimiento de Amazon S3 sobre solicitudes por segundo. 

El SLA de S3 RTC tampoco se aplica durante los periodos de tiempo en los que la velocidad de transferencia de datos de replicación supera la cuota predeterminada de 1 gigabit por segundo. Si prevé que la tasa de transferencia de replicación superará 1 Gbps, puede contactar con el [Centro de AWS Support](https://console.aws.amazon.com/support/home#/) o utilizar [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) para solicitar un aumento de la cuota de tasa de transferencia de replicación. 

### Cálculo de las tasas de solicitudes de replicación
<a name="estimating-replication-request-rates"></a>

Su tasa total de solicitudes, incluidas las solicitudes que realiza Replicación de Amazon S3 en su nombre, debe estar comprendida en las directrices de tasa de solicitudes de Amazon S3 para los buckets de origen y destino de la replicación. Para cada objeto replicado, Replicación de Amazon S3 realiza hasta cinco solicitudes `GET`/`HEAD` y una solicitud `PUT` al bucket de origen, además de una solicitud `PUT` destinada al bucket de destino.

Por ejemplo, si prevé replicar 100 objetos por segundo, Replicación de Amazon S3 podría realizar 100 solicitudes `PUT` adicionales en su nombre para un total de 200 solicitudes `PUT` por segundo al bucket de S3 de origen. Además, Replicación de Amazon S3 podría realizar hasta 500 solicitudes `GET`/`HEAD` (5 solicitudes `GET`/`HEAD` por cada objeto replicado). 

**nota**  
Usted incurre en costos solamente por una solicitud `PUT` por cada objeto replicado. Para obtener más información, consulte la información de precios en las [preguntas frecuentes sobre replicación de Amazon S3](https://aws.amazon.com/s3/faqs/#Replication). 

### Superación de las cuotas de la tasa de transferencia de datos de S3 RTC
<a name="exceed-rtc-data-transfer-limits"></a>

Si prevé que la tasa de transferencia de datos de S3 RTC superará la cuota predeterminada de 1 Gbps, contacte con el [Centro de AWS Support](https://console.aws.amazon.com/support/home#/) o utilice [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) para solicitar un aumento de la cuota de tasa de transferencia de replicación. 

### AWS KMSTasas de solicitudes de replicación de objetos cifrados con
<a name="kms-object-replication-request-rates"></a>

Al replicar objetos cifrados con cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), se aplican las cuotas de solicitudes por segundo de AWS KMS. AWS KMS podría rechazar una solicitud por lo demás válida porque su tasa de solicitudes excede la cuota del número de solicitudes por segundo. Cuando se limita de forma controlada una solicitud, AWS KMS devuelve un error `ThrottlingException`. La cuota de la tasa de solicitudes de AWS KMS se aplica a las solicitudes que realiza directamente y a aquellas que Replicación de Amazon S3 efectúa en su nombre. 

Por ejemplo, si prevé replicar 1000 objetos por segundo, puede restar 2000 solicitudes de la cuota de tasa de solicitudes de AWS KMS. La tasa de solicitudes por segundo resultante será la que estará disponible para las cargas de trabajo de AWS KMS, excluida la replicación. Puede utilizar las [métricas de solicitudes de AWS KMS en Amazon CloudWatch](https://docs.aws.amazon.com/kms/latest/developerguide/monitoring-cloudwatch.html) para monitorear la tasa total de solicitudes de AWS KMS en la Cuenta de AWS.

Para solicitar un aumento de su cuota de solicitudes de AWS KMS por segundo, contacte con el [Centro de AWS Support](https://console.aws.amazon.com/support/home#/) o utilice [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). 

## Habilitación del control del tiempo de replicación de S3
<a name="replication-walkthrough-5"></a>

Puede comenzar a utilizar S3 Replication Time Control (S3, RTC, Control del tiempo de replicación de S3) con una regla de replicación nueva o existente. Puede optar por aplicar la regla de replicación a un bucket completo o a objetos con un prefijo o etiqueta específicos. Cuando habilita S3 RTC, las métricas de Replicación de S3 también se habilitan en la regla de replicación. 

Puede configurar S3 RTC mediante la consola de Amazon S3, la API de Amazon S3, los AWS SDK y la AWS Command Line Interface (AWS CLI).

**Topics**

### Uso de la consola de S3
<a name="replication-ex5-console"></a>

Para obtener instrucciones paso a paso, consulte [Configuración de replicación para buckets en la misma cuenta](replication-walkthrough1.md). Este tema proporciona instrucciones para habilitar S3 RTC en la configuración de replicación cuando los buckets de origen y destino pertenecen a la misma o a otras Cuentas de AWS.

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

Para utilizar la AWS CLI con el propósito de replicar objetos con S3 RTC habilitado, es necesario crear buckets, habilitar el control de versiones en los buckets, crear un rol de IAM que conceda permiso a Amazon S3 para replicar objetos y agregar la configuración de replicación al bucket de origen. La configuración de replicación debe tener habilitada S3 RTC, como se muestra en el siguiente ejemplo. 

Para obtener instrucciones paso a paso para realizar la configuración de replicación mediante la AWS CLI, consulte [Configuración de replicación para buckets en la misma cuenta](replication-walkthrough1.md).

El siguiente ejemplo de configuración de replicación habilita y establece los valores `ReplicationTime` y `EventThreshold` de una regla de replicación. Al habilitar y establecer estos valores, se habilita S3 RTC en la regla.

```
{
    "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` y `ReplicationTime:Time:Minutes` solo aceptan `15` como valor válido. 

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

 En el siguiente ejemplo de Java, se agrega la configuración de replicación con Control del tiempo de replicación de 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);
  }
}
```

# Replicación de objetos cifrados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)
<a name="replication-config-for-kms-objects"></a>

**importante**  
Amazon S3 aplica ahora el cifrado del servidor con claves administradas por Amazon S3 (SSE-S3) como el nivel básico de cifrado para cada bucket de Amazon S3. Desde el 5 de enero de 2023, todas las cargas de objetos nuevos a Amazon S3 se cifran automáticamente sin costo adicional y sin afectar al rendimiento. El estado de cifrado automático para la configuración de cifrado predeterminada del bucket de S3 y para cargas de objetos nuevos está disponible en registros de CloudTrail, inventario de S3, Lente de almacenamiento de S3, la consola de Amazon S3 y como encabezado de respuesta a la API de Amazon S3 adicional en la AWS CLI y los AWS SDK. Para obtener más información, consulte [Preguntas frecuentes del cifrado predeterminado](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Existen algunas consideraciones especiales cuando replica objetos que se han cifrado mediante el cifrado en el servidor. Amazon S3 admite los siguientes tipos de cifrado en el servidor:
+ Cifrado en el servidor con claves administradas por Amazon S3 (SSE-S3)
+ Cifrado del lado del servidor con claves AWS Key Management Service (AWS KMS) (SSE-KMS)
+ Cifrado del servidor de doble capa con claves de AWS KMS (DSSE-KMS)
+ Cifrado en el servidor con claves proporcionadas por el cliente (SSE-C)

Para obtener más información acerca del cifrado del lado del servidor, consulte [Protección de los datos con el cifrado del servidor](serv-side-encryption.md).

En este tema se explican los permisos que necesita para dirigir Amazon S3 a la replicación de objetos que se han cifrado mediante el cifrado en el servidor. En este tema también se proporcionan elementos de configuración adicionales que puede agregar y políticas de AWS Identity and Access Management (IAM) de ejemplo que conceden los permisos necesarios para replicar objetos cifrados. 

Para ver un ejemplo con instrucciones paso a paso, consulte [Habilitación de la replicación de objetos cifrados](#replication-walkthrough-4). Para obtener información acerca de la creación de configuración de replicación, consulte [Replicación de objetos dentro de regiones y entre regiones](replication.md). 

**nota**  
Puede utilizar AWS KMS keys multirregionales en Amazon S3. No obstante, Amazon S3 trata las claves multirregionales como si fueran claves de una sola región y no utiliza las características multirregionales de la clave. Para obtener más información, consulte [Using multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) en la *AWS Key Management Service Developer Guide*.

**Topics**
+ [

## Cómo afecta el cifrado de buckets predeterminado a la replicación
](#replication-default-encryption)
+ [

## Replicación de objetos cifrados con SSE-C
](#replicationSSEC)
+ [

## Replicación de objetos cifrados con SSE-S3, SSE-KMS o DSSE-KMS
](#replications)
+ [

## Habilitación de la replicación de objetos cifrados
](#replication-walkthrough-4)

## Cómo afecta el cifrado de buckets predeterminado a la replicación
<a name="replication-default-encryption"></a>

Cuando habilita el cifrado predeterminado para un bucket de destino de replicación, se aplica el siguiente comportamiento de cifrado:
+ Si los objetos del bucket de origen no están cifrados, los objetos de réplica del bucket de destino se cifran mediante la configuración de cifrado predeterminado del bucket de destino. Como resultado, las etiquetas de entidad (ETags) de los objetos de origen difieren de las ETags de los objetos de réplica. Si tiene aplicaciones que utilizan ETags, deberá actualizarlas para tener en cuenta esta diferencia.
+ Si los objetos del bucket de origen se cifran mediante el cifrado del servidor con claves administradas por Amazon S3 (SSE-S3), el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS) o con cifrado del servidor de doble capa con claves de AWS KMS (DSSE-KMS), los objetos de réplica del bucket de destino utilizarán el mismo tipo de cifrado que los objetos de origen. La configuración de cifrado predeterminado del bucket de destino no se utiliza.

## Replicación de objetos cifrados con SSE-C
<a name="replicationSSEC"></a>

Al utilizar cifrado en el servidor con claves proporcionadas por el cliente (SSE-C), puede administrar sus propias claves de cifrado. Con SSE-C, usted administra las claves mientras que Amazon S3 administra el proceso de cifrado y descifrado. Debe proporcionar una clave de cifrado como parte de su solicitud, pero no necesita escribir ningún código para realizar el cifrado o descifrado de objetos. Cuando carga un objeto, Amazon S3 cifra el objeto mediante la clave que ha proporcionado. A continuación, Amazon S3 purga dicha clave de la memoria. Al recuperar un objeto, debe facilitar la misma clave de cifrado como parte de la solicitud. Para obtener más información, consulte [Uso de cifrado en el lado del servidor con claves proporcionadas por el cliente (SSE-C)](ServerSideEncryptionCustomerKeys.md).

Replicación de S3 admite objetos cifrados con SSE-C. Puede configurar la replicación de objetos de SSE-C en la consola de Amazon S3 o con los AWS SDK, de la misma manera que configura la replicación para objetos no cifrados. No hay permisos de SSE-C adicionales a los que se requieren actualmente para la replicación. 

La replicación de S3 replica automáticamente los objetos cifrados con SSE-C recién cargados si son elegibles, tal como se especifique en la configuración de replicación de S3. Para replicar objetos existentes en sus buckets, utilice la replicación por lotes de S3. Para obtener más información sobre la replicación de objetos, consulte [Descripción general de la configuración de la replicación en directo](replication-how-setup.md) y [Replicación de objetos existentes con Replicación por lotes](s3-batch-replication-batch.md).

No se aplican cargos adicionales por replicar objetos SSE-C. Para obtener detalles sobre los precios de replicación, consulte los [precios de Amazon S3](https://aws.amazon.com/s3/pricing/). 

## Replicación de objetos cifrados con SSE-S3, SSE-KMS o DSSE-KMS
<a name="replications"></a>

De forma predeterminada, Amazon S3 no replica objetos cifrados con SSE-KMS o DSSE-KMS. En esta sección se explican los elementos de configuración adicionales que puede agregar para indicar a Amazon S3 que replique estos objetos. 

Para ver un ejemplo con instrucciones paso a paso, consulte [Habilitación de la replicación de objetos cifrados](#replication-walkthrough-4). Para obtener información acerca de la creación de configuración de replicación, consulte [Replicación de objetos dentro de regiones y entre regiones](replication.md). 

### Especificar información adicional en la configuración de replicación
<a name="replication-kms-extra-config"></a>

En la configuración de replicación, haga lo siguiente:
+ En el elemento `Destination` de su configuración de replicación, agregue el ID de la clave de AWS KMS simétrica administrada por el cliente que desea que Amazon S3 utilice para cifrar las réplicas de objetos, como se muestra en el siguiente ejemplo de configuración de replicación. 
+ Opte explícitamente por permitir la replicación de objetos cifrados mediante claves de KMS (SSE-KMS o DSSE-KMS). Para ello, agregue el elemento `SourceSelectionCriteria`, como se muestra en el siguiente ejemplo de configuración de la replicación.

 

```
<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ón de AWS as the destination bucket.</ReplicaKmsKeyID>
          </EncryptionConfiguration>
       </Destination>
      ...
   </Rule>
</ReplicationConfiguration>
```

**importante**  
La clave de KMS debe haberse creado en la misma Región de AWS que el bucket de destino. 
La clave de KMS *debe* ser válida. La operación de la API `PutBucketReplication` no comprueba la validez de las claves de KMS. Si usa una clave de KMS no válida, recibirá el código de estado `200 OK` de HTTP en respuesta, pero la replicación genera un error.

En el siguiente ejemplo se muestra una configuración de replicación que incluye elementos de configuración opcionales. Esta configuración de replicación tiene una regla. La regla se aplica a los objetos con el prefijo de clave `Tax`. Amazon S3 utiliza el ID de AWS KMS key especificado para cifrar estas réplicas de objetos.

```
<?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ón de AWS as the destination bucket.</ReplicaKmsKeyID>
         </EncryptionConfiguration>
      </Destination>
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
            <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>
   </Rule>
</ReplicationConfiguration>
```

### Conceder permisos adicionales para el rol de IAM
<a name="replication-kms-permissions"></a>

Para replicar objetos cifrados en reposo mediante SSE-S3, SSE-KMS o DSSE-KMS, conceda los siguientes permisos adicionales al rol de AWS Identity and Access Management (IAM) que especifique en la configuración de replicación. Estos permisos los otorga actualizando la política de permisos asociada con el rol de IAM. 
+ **Acción `s3:GetObjectVersionForReplication` para objetos de origen**: esta acción permite que Amazon S3 replique tanto los objetos sin cifrar como los creados con cifrado del servidor mediante claves de SSE-S3, SSE-KMS o DSSE-KMS.
**nota**  
Se recomienda utilizar la `s3:GetObjectVersionForReplication` acción en lugar de la acción `s3:GetObjectVersion`, ya que `s3:GetObjectVersionForReplication` proporciona a Amazon S3 solo los permisos mínimos necesarios para la replicación. Además, la acción `s3:GetObjectVersion` permite replicar objetos sin cifrar y cifrados con SSE-S3, pero no replicar objetos cifrados con claves de KMS (SSE-KMS o DSSE-KMS). 
+ **Acciones `kms:Decrypt` y `kms:Encrypt` de AWS KMS para las claves de KMS**
  + Debe conceder permisos `kms:Decrypt` para la AWS KMS key que se utilizó para descifrar el objeto de origen.
  + Debe conceder permisos `kms:Encrypt` para la AWS KMS key que se utilizó para cifrar la réplica del objeto.
+ **Acción `kms:GenerateDataKey` para replicar objetos de texto sin formato**: si está replicando objetos de texto sin formato en un bucket con el cifrado SSE-KMS o DSSE-KMS habilitado de forma predeterminada, debe incluir el permiso `kms:GenerateDataKey` para el contexto de cifrado de destino y la clave de KMS en la política de IAM.

**importante**  
Si usa la replicación por lotes de S3 para replicar conjuntos de datos entre regiones y los objetos anteriormente actualizaron el tipo de cifrado del servidor de SSE-S3 a SSE-KMS, es posible que necesite permisos adicionales. En el bucket de la región de origen, debe tener permisos `kms:decrypt`. A continuación, necesitará los permisos `kms:decrypt` y `kms:encrypt` para el bucket en la región de destino. 

Se recomienda restringir estos permisos solo a los buckets y objetos de destino que utilicen las claves de condición de AWS KMS. La Cuenta de AWS que posea el rol de IAM debe tener permisos para la acciones `kms:Encrypt` y `kms:Decrypt` para las claves de KMS que se indican en la política. Si las claves de KMS pertenecen a otra cuenta de Cuenta de AWS, el propietario de las claves de KMS debe conceder estos permisos a la Cuenta de AWS que posee el rol de IAM. Para obtener más información acerca de cómo administrar el acceso a estas claves de KMS, consulte [Using IAM policies with AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) en la* AWS Key Management Service Developer Guide*.

### Claves de bucket y replicación de S3
<a name="bk-replication"></a>

Para utilizar la replicación con una clave de Bucket de S3, la política de AWS KMS key para la clave de KMS utilizada para cifrar la réplica de objeto debe incluir el permiso `kms:Decrypt` para la entidad principal que realiza la llamada. La llamada a `kms:Decrypt` verifica la integridad de la clave de bucket de S3 antes de usarla. Para obtener más información, consulte [Uso de una clave de bucket de S3 con replicación](bucket-key.md#bucket-key-replication).

Cuando se habilita una clave de bucket de S3 para el bucket de origen o de destino, el contexto de cifrado será el nombre de recurso de Amazon (ARN) del bucket y no el ARN del objeto (por ejemplo, `arn:aws:s3:::bucket_ARN`). Debe actualizar las políticas de IAM para usar el ARN del bucket para el contexto de cifrado:

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

Para obtener más información, consulte [Contexto de cifrado (`x-amz-server-side-encryption-context`)](specifying-kms-encryption.md#s3-kms-encryption-context) (en la sección “Uso de la API de REST”) y [Cambios para tener en cuenta antes de habilitar una clave de bucket de S3](bucket-key.md#bucket-key-changes).

### Ejemplo de políticas: Uso de SSE-S3 y SSE-KMS con replicación
<a name="kms-replication-examples"></a>

En las siguientes políticas de IAM de ejemplo se muestran instrucciones para utilizar SSE-S3 y SSE-KMS con replicación.

**Example : uso de SSE-KMS con buckets de destino independientes**  
En la siguiente política de ejemplo, se muestran instrucciones para utilizar SSE-KMS con buckets de destino independientes. 

**Example : replicación de objetos creados con SSE-S3 y SSE-KMS**  
A continuación, se muestra una política de IAM completa que concede los permisos necesarios para replicar objetos no cifrados, objetos creados con SSE-KMS y objetos creados con 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 : replicación de objetos con claves de bucket de S3**  
A continuación, se muestra una política de IAM completa que concede los permisos necesarios para replicar objetos con claves de bucket de 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 permisos adicionales para escenarios que afectan a varias cuentas
<a name="replication-kms-cross-acct-scenario"></a>

En un escenario de replicación entre cuentas en el que los buckets de origen y destino pertenecen a Cuentas de AWS diferentes, puede utilizar una clave de KMS para cifrar réplicas de objetos. El propietario de la clave de KMS debe conceder al propietario del bucket de origen permiso para usar la clave de KMS. 

**nota**  
Si necesita replicar datos de SSE-KMS entre cuentas, la regla de replicación debe especificar una [clave administrada por el cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) de AWS KMS para la cuenta de destino. Las [Claves administradas por AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) no permiten el uso entre cuentas y, por tanto, no se pueden usar para realizar la replicación entre cuentas.<a name="cross-acct-kms-key-permission"></a>

**Para conceder permiso al propietario del bucket de origen para usar la clave de KMS (consola de AWS KMS)**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS KMS en [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superior derecha de la página.

1. Si desea ver las claves de la cuenta que usted crea y administra, en el panel de navegación, elija **Customer managed keys** (Claves administradas por el cliente).

1. Seleccione la clave de KMS;.

1. En **Configuración general**, elija la pestaña **Política de claves**.

1. Desplácese hacia abajo hasta **Otras Cuentas de AWS**.

1. Elija **Agregar otras Cuentas de AWS**. 

   Aparecerá el cuadro de diálogo **Otras Cuentas de AWS**. 

1. En el cuadro de diálogo, elija **Agregar otro Cuenta de AWS**. Para **arn:aws:iam::**, introduzca el ID de la cuenta de bucket de origen.

1. Seleccione **Save changes (Guardar cambios)**.

**Para conceder permiso al propietario del bucket de origen para usar la clave de KMS (AWS CLI)**
+ Para obtener información sobre el comando `put-key-policy` 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) en la *Referencia de comandos de AWS CLI*. Para obtener información acerca de la operación de la API `PutKeyPolicy` subyacente, consulte [https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) en la [Referencia de la API de AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/APIReference/).

### Consideraciones sobre cuotas de transacciones de AWS KMS
<a name="crr-kms-considerations"></a>

Cuando agregue muchos objetos nuevos con cifrado de AWS KMS después de activar la replicación entre regiones (CRR), es posible que experimente una limitación (errores `503 Service Unavailable` de HTTP). La limitación controlada se produce cuando el número de transacciones de AWS KMS por segundo supera las cuotas actuales. Para obtener más información, consulte [Cuotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) en la *Guía para desarrolladores de AWS Key Management Service*.

Para solicitar un aumento de una cuota, use Service Quotas. Para obtener más información, consulte [Solicitud de un aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html). Si Service Quotas no es compatible en su región, [abra un caso de AWS Support](https://console.aws.amazon.com/support/home#/). 

## Habilitación de la replicación de objetos cifrados
<a name="replication-walkthrough-4"></a>

De forma predeterminada, Amazon S3 no replica los objetos cifrados mediante el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS) ni el cifrado del servidor de doble capa con claves de AWS KMS (DSSE-KMS). Para replicar objetos cifrados con SSE-KMS o DSS-KMS, es necesario modificar la configuración de replicación del bucket para indicar a Amazon S3 que replique estos objetos. Este ejemplo explica cómo usar la consola de Amazon S3 y la AWS Command Line Interface (AWS CLI) para cambiar la configuración de replicación del bucket con el fin de habilitar la replicación de objetos cifrados.

**nota**  
Cuando se habilita una clave de bucket de S3 para el bucket de origen o de destino, el contexto de cifrado será el nombre de recurso de Amazon (ARN) del bucket y no el ARN del objeto. Debe actualizar las políticas de IAM para usar el ARN del bucket para el contexto de cifrado. Para obtener más información, consulte [Claves de bucket y replicación de S3](#bk-replication).

**nota**  
Puede utilizar AWS KMS keys multirregionales en Amazon S3. No obstante, Amazon S3 trata las claves multirregionales como si fueran claves de una sola región y no utiliza las características multirregionales de la clave. Para obtener más información, consulte [Using multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) en la *AWS Key Management Service Developer Guide*.

### Uso de la consola de S3
<a name="replication-ex4-console"></a>

Para obtener instrucciones paso a paso, consulte [Configuración de replicación para buckets en la misma cuenta](replication-walkthrough1.md). En este tema, se proporcionan instrucciones para establecer la configuración de replicación cuando los buckets de origen y destino son propiedad de la misma y de diferentes Cuentas de AWS.

### Uso de AWS CLI
<a name="replication-ex4-cli"></a>

Para replicar los objetos replicados cifrados con AWS CLI, haga lo siguiente: 
+ Cree los buckets de origen y de destino y habilite el control de versiones de dichos buckets. 
+ Cree un rol de servicio de AWS Identity and Access Management (IAM) que conceda permiso para replicar objetos en Amazon S3. Los permisos del rol de IAM incluye los permisos necesarios para replicar los objetos cifrados.
+ Añada una configuración de replicación al bucket de origen. La configuración de replicación proporciona información relacionada con objetos de replicación cifrados mediante claves de KMS.
+ Agregue objetos al bucket de origen. 
+ Pruebe la configuración para confirmar que los objetos cifrados se están replicando en el bucket de destino.

Los siguientes procedimientos le guiarán por este proceso. 

**Para replicar objetos cifrados del lado del servidor (AWS CLI)**

Para usar los ejemplos de este procedimiento, sustituya `user input placeholders` con su información.

1. En este ejemplo, crea tanto el bucket de origen (*`amzn-s3-demo-source-bucket`*) como el de destino (*`amzn-s3-demo-destination-bucket`*) en la misma Cuenta de AWS. También puede configurar un perfil de credenciales para la AWS CLI. En este ejemplo, usamos el nombre de perfil `acctA`. 

   Para obtener más información sobre los perfiles de credenciales y usar perfiles con nombre, consulte [Opciones de los archivos de configuración y credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) en la *Guía del usuario de AWS Command Line Interface*. 

1. Use los siguientes comandos para crear el bucket `amzn-s3-demo-source-bucket` y habilitar el control de versiones en él. Los comandos de ejemplo siguientes crean el bucket `amzn-s3-demo-source-bucket` en la región Este de EE. UU. (Norte de Virginia) (`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 los siguientes comandos para crear el bucket `amzn-s3-demo-destination-bucket` y habilitar el control de versiones en él. Los comandos de ejemplo siguientes crean el bucket `amzn-s3-demo-destination-bucket` en la región Oeste de EE. UU. (Oregón) (`us-west-2`). 
**nota**  
Para establecer la configuración de replicación cuando los buckets `amzn-s3-demo-source-bucket` y `amzn-s3-demo-destination-bucket` están en la misma Cuenta de AWS, debe utilizar el mismo perfil. En este ejemplo se utiliza `acctA`. Para configurar la replicación cuando los buckets son propiedad de diferentes Cuentas de AWS, debe especificar diferentes perfiles para cada uno. 

   

   ```
   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. A continuación, cree un rol de servicio de IAM. Especificará este rol en la configuración de replicación que agregue al bucket de `amzn-s3-demo-source-bucket` más adelante. Amazon S3 asume este rol para replicar objetos en su nombre. Crea el rol de IAM en dos pasos:
   + Cree un rol de servicio.
   + Asocie una política de permisos al rol.

   1. Para crear un rol de servicio de IAM, haga lo siguiente:

      1. Copie la siguiente política de confianza y guárdela en un archivo llamado `s3-role-trust-policy-kmsobj.json` en el directorio actual en su equipo local. Esta política concede permisos a la entidad principal de servicio de Amazon S3 para asumir el rol para que Amazon S3 puede realizar tareas en su nombre.

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

****  

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

------

      1. Utilice el siguiente comando para crear el rol:

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

   1. A continuación, asocie una política de permisos al rol. Esta política concede permisos para varias acciones de buckets y objetos de Amazon S3. 

      1. Copie la siguiente política de permisos y guárdela en un archivo llamado `s3-role-permissions-policykmsobj.json` en el directorio actual en su equipo local. Creará un rol de IAM y le asociará la política más adelante. 
**importante**  
En la política de permisos, debe especificar los ID de la clave AWS KMS que se emplearán para el cifrado de los buckets `amzn-s3-demo-source-bucket` y `amzn-s3-demo-destination-bucket`. Debe crear dos claves de KMS para los buckets `amzn-s3-demo-source-bucket` y `amzn-s3-demo-destination-bucket`. Las AWS KMS keys no se comparten fuera de la Región de AWS en la que se crearon. 

------
#### [ 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. Cree una política y asóciela al rol.

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

1. A continuación, añada la siguiente configuración de replicación al bucket `amzn-s3-demo-source-bucket`, que le indica a Amazon S3 que replique los objetos con el prefijo `Tax/` en el bucket `amzn-s3-demo-destination-bucket`. 
**importante**  
En la configuración de replicación, debe especificar el rol de IAM que puede asumir Amazon S3. Solo puede hacer esto si tiene el permiso `iam:PassRole`. El perfil que especifique en el comando de la CLI tiene que tener este permiso. Para obtener más información, consulte [Concesión de permisos a un usuario para transferir un rol a un servicio de Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la *Guía del usuario de 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 añadir una configuración de replicación al bucket `amzn-s3-demo-source-bucket`, haga lo siguiente:

   1. La AWS CLI requiere que especifique la configuración de replicación como JSON. Guarde la siguiente JSON en un archivo (`replication.json`) en el directorio actual en su equipo 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 el JSON para proporcionar valores para el bucket `amzn-s3-demo-destination-bucket`, `AWS KMS key IDs (in ARN format)` y `IAM-role-ARN`. Guarde los cambios.

   1. Use el siguiente comando para añadir la configuración de replicación al bucket `amzn-s3-demo-source-bucket`. Asegúrese de proporcionar el nombre del bucket `amzn-s3-demo-source-bucket`.

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

1. Compruebe la configuración para verificar que se hayan replicado los objetos cifrados. En la consola de Amazon S3, haga lo siguiente:

   1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. En el bucket `amzn-s3-demo-source-bucket`, cree una carpeta llamada `Tax`. 

   1. Añada objetos de ejemplo a la carpeta. Asegúrese de elegir la opción de cifrado y especifique su clave de KMS para cifrar los objetos. 

   1. Compruebe que el bucket `amzn-s3-demo-destination-bucket` contenga las réplicas de objeto y que se hayan cifrado con la clave de KMS que especificó en la configuración. Para obtener más información, consulte [Obtención de información del estado de replicación](replication-status.md).

### Uso de los AWS SDK
<a name="replication-ex4-sdk"></a>

Para ver un ejemplo de código sobre cómo agregar una configuración de replicación, consulte [Uso de la SDKs AWS](replication-walkthrough1.md#replication-ex1-sdk). Tendrá que modificar la configuración de replicación en concordancia. 

 

# Replicación de cambios de metadatos con la sincronización de modificación de réplica
<a name="replication-for-metadata-changes"></a>

La sincronización de modificación de réplicas de Amazon S3 puede ayudarle a mantener los metadatos de objetos, como etiquetas, listas de control de acceso (ACL) y configuraciones de Bloqueo de objetos replicados entre réplicas y objetos de origen. De forma predeterminada, Amazon S3 replica metadatos de los objetos de origen únicamente a las réplicas. Cuando se habilita la sincronización de modificación de réplica, Amazon S3 replica los cambios de metadatos realizados en las copias de réplica en el objeto de origen, lo que hace que la replicación sea bidireccional (replicación en dos direcciones).

## Habilitación de la sincronización de modificación de réplica
<a name="enabling-replication-for-metadata-changes"></a>

Puede utilizar la sincronización de modificación de réplica de Amazon S3 con reglas de replicación nuevas o existentes. Puede aplicarlo a un bucket completo o a objetos que tengan un prefijo específico.

Para habilitar la sincronización de modificación de réplicas mediante la consola de Amazon S3, consulte [Ejemplos para configurar la replicación en directo](replication-example-walkthroughs.md). En este tema, se proporcionan instrucciones para habilitar la sincronización de modificación de réplicas en la configuración de replicación cuando los buckets de origen y destino pertenecen a la misma o diferentes Cuentas de AWS.

Para habilitar la sincronización de modificación de réplicas mediante AWS Command Line Interface (AWS CLI), debe agregar una configuración de replicación al bucket que contenga las réplicas con `ReplicaModifications` habilitado. Para configurar la replicación bidireccional, cree una regla de replicación desde el bucket de origen (`amzn-s3-demo-source-bucket`) hasta el bucket que contiene las réplicas (`amzn-s3-demo-destination-bucket`). A continuación, cree una segunda regla de replicación desde el bucket que contiene las réplicas (`amzn-s3-demo-destination-bucket`) hasta el bucket de origen (`amzn-s3-demo-source-bucket`). Los buckets de origen y de destino pueden estar en la misma o en diferentes Regiones de AWS.

**nota**  
Debe habilitar la sincronización de modificaciones de réplicas tanto en el bucket de origen como en el de destino para replicar los cambios en los metadatos de la réplica, como listas de control de acceso (ACL) a objetos, etiquetas de objetos o configuraciones de Bloqueo de objetos en los objetos replicados. Como todas las reglas de replicación, puede aplicar estas reglas a todo el bucket o a un subconjunto de objetos filtrado por un prefijo o etiquetas de objeto.

En la siguiente configuración de ejemplo, Amazon S3 replica los cambios de metadatos con el prefijo `Tax` en el bucket `amzn-s3-demo-source-bucket`, que contiene los objetos de origen.

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

Para obtener instrucciones completas sobre la creación de reglas de replicación mediante la AWS CLI, consulte [Configuración de replicación para buckets en la misma cuenta](replication-walkthrough1.md).

# Replicación de marcadores de eliminación entre buckets
<a name="delete-marker-replication"></a>

De forma predeterminada, cuando se habilita la replicación de S3 y se elimina un objeto en el bucket de origen, Amazon S3 agrega un marcador de eliminación solo en el bucket de origen. Esta acción ayuda a proteger los datos en los buckets de destino de eliminaciones involuntarias o malintencionadas. Si tiene habilitada la *replicación de marcadores de eliminación*, estos marcadores se copian en los buckets de destino y Amazon S3 se comporta como si el objeto se eliminara tanto en los buckets de origen como de destino. Para obtener más información sobre cómo funcionan los marcadores de eliminación, consulte [Trabajar con marcadores de eliminación](DeleteMarker.md).

**nota**  
La replicación de marcador de eliminación no es compatible con las reglas de replicación basadas en etiquetas. La replicación de marcador de eliminación cumple el acuerdo de nivel de servicio (SLA) de 15 minutos concedido al utilizar Control del tiempo de replicación de S3 (S3 RTC).
Si no utiliza la última versión XML de configuración de replicación, las operaciones de eliminación afectan a la replicación de manera diferente. Para obtener más información, consulte [Cómo afectan las operaciones de eliminación a la replicación](replication-what-is-isnot-replicated.md#replication-delete-op).
Si habilita la replicación de marcadores de eliminación y el bucket de origen tiene una regla de vencimiento de S3 Lifecycle, los marcadores de eliminación añadidos por esta regla no se replicarán en el bucket de destino.

## Habilitar la replicación de marcador de eliminación
<a name="enabling-delete-marker-replication"></a>

Puede comenzar a utilizar la replicación de marcador de eliminación con una regla de replicación nueva o existente. Puede aplicar la replicación de marcadores de eliminación a un bucket completo o a objetos que tengan un prefijo específico.

Para habilitar la replicación de marcadores de eliminación mediante la consola de Amazon S3, consulte [Uso de la consola de S3](replication-walkthrough1.md#enable-replication). En este tema, se proporcionan instrucciones para habilitar la replicación de marcadores de eliminación en la configuración de replicación cuando los buckets de origen y de destino pertenecen a la misma o a diferentes Cuentas de AWS.

Para habilitar la replicación de marcadores de eliminación mediante la AWS Command Line Interface (AWS CLI), debe agregar una configuración de replicación al bucket de origen con `DeleteMarkerReplication` habilitado, tal y como se muestra en la siguiente configuración de ejemplo. 

En la siguiente configuración de ejemplo, los marcadores de eliminación se replican en el bucket de destino `amzn-s3-demo-destination-bucket` para los objetos con el prefijo `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"
}
```

Para obtener instrucciones completas sobre la creación de reglas de replicación a través de la AWS CLI, consulte [Configuración de replicación para buckets en la misma cuenta](replication-walkthrough1.md).