Configuración de replicación - Amazon Simple Storage Service

Configuración de replicación

Amazon S3 almacena una configuración de replicación como XML. En el archivo XML de configuración de reproducción, usted especifica un rol de AWS Identity and Access Management (IAM) y una o más reglas.

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

Amazon S3 no puede replicar objetos sin su permiso. Usted otorga permisos con el rol de IAM que especifique en la configuración de replicación. Amazon S3 asume el 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.

Usted agrega una regla en una configuración de replicación en los siguientes casos:

  • Desea replicar todos los objetos.

  • Desea replicar un subconjunto de objetos. Identifica el subconjunto de objetos añadiendo un filtro en la regla. En el filtro, usted 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.

Agrega varias reglas en una configuración de replicación si desea replicar un subconjunto diferente de objetos. En cada regla, se especifica un filtro que selecciona un subconjunto diferente de objetos. 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.

  • Status indica si la regla está habilitada o desactivada mediante los valores Enabled o Disabled. Si una regla está desactivada, Amazon S3 no realiza las acciones especificadas en ella.

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

  • DeleteMarkerReplication indica si debe replicar marcadores de eliminación mediante los valores Enabled o Disabled.

En la configuración de destino, debe proporcionar el nombre del bucket o buckets 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 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:::DOC-EXAMPLE-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 código. Puede especificar solo un prefijo.

<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 código. 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 código siguiente. 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 una etiqueta de filtro vacía, la regla se aplica a todos los objetos del bucket.

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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-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 EventThreshold y Time.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-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 el control de tiempo de replicación de S3 (S3 RTC). Para conocer los ejemplos de la API, consulte PutBucketReplication en la referencia de la API de Amazon Simple Storage Service.

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:::DOC-EXAMPLE-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 creados con cifrado del servidor (SSE-C, SSE-S3, SSE-KMS, DSSE-KMS).

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 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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET</Bucket></Destination> </Rule> </ReplicationConfiguration>

Si especifica el elemento Filter, también debe incluir los elementos Priority y DeleteMarkerReplication. En este ejemplo, 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. Priority no corresponde porque hay una sola 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:::DOC-EXAMPLE-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:::DOC-EXAMPLE-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:

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

  • 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:::DOC-EXAMPLE-BUCKET1</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:::DOC-EXAMPLE-BUCKET1</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:::DOC-EXAMPLE-BUCKET1</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:::DOC-EXAMPLE-BUCKET1</Bucket> </Destination> </Rule> </ReplicationConfiguration>
ejemplo 4: explicaciones de ejemplo

Para ver tutoriales de ejemplo, consulte Tutoriales: ejemplos para configurar la replicación.

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.

Compatibilidad con versiones anteriores

La última versión del 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 la configuración de replicación XML V1. Si ha utilizado la configuración de replicación XML V1, tenga en cuenta los siguientes problemas que afectan a la compatibilidad con versiones anteriores:

  • El XML de configuración de replicación V2 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. La configuración de réplica XML V1 admite filtrado basado solo en el prefijo de clave. En tal caso, añade el Prefix directamente 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:::DOC-EXAMPLE-BUCKET</Bucket></Destination> </Rule> </ReplicationConfiguration>

    Para compatibilidad con versiones anteriores, Amazon S3 sigue siendo compatible con la configuración V1.

  • 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 la configuración de replicación XML V1, Amazon S3 replica los marcadores de eliminación que resultan de las acciones de 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 caducado (como parte de una acción del ciclo de vida), Amazon S3 no replica el marcador de eliminación.

    En configuraciones de replicación V2, 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.