Elementos del archivo de configuración de la replicación - Amazon Simple Storage Service

Elementos del archivo de configuración de la replicación

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.

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

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.

Las secciones siguientes facilitarán información adicional.

Configuración básica de reglas

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.

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

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.

Configuraciones de destino adicionales

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.

Especificar la clase de almacenamiento

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

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

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

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.

Habilitar el control del tiempo de replicación de S3

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. Para obtener ejemplos de API, consulte PutBucketReplication en la Amazon Simple Storage Service API Reference.

Replicar objetos creados con cifrado del lado del servidor mediante AWS KMS

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

Ejemplo de configuraciones de replicación

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 en la Guía del usuario de IAM.

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

ejemplo 2: configuración de replicación con dos reglas

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>
ejemplo 3: configuración de replicación con dos reglas con superposición de prefijos

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>
ejemplo 4: explicaciones de ejemplo

Para ver tutoriales de ejemplo, consulte Ejemplos para configurar la replicación en directo.

Para obtener más información acerca de la estructura de XML de configuración de replicación, consulte PutBucketReplication en la referencia de la API de Amazon Simple Storage Service.

Consideraciones sobre compatibilidad con versiones anteriores

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