Configuration de réplication - Amazon Simple Storage Service

Configuration de réplication

Amazon S3 stocke une configuration de réplication au format XML. Dans le fichier XML de configuration de réplication, vous spécifiez un rôle AWS Identity and Access Management (IAM) et une ou plusieurs règles.

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

Amazon S3 ne peut pas répliquer d'objets sans votre autorisation. Vous accordez des autorisations avec le rôle IAM que vous spécifiez dans la configuration de réplication. Amazon S3 endosse le rôle IAM pour répliquer des objets en votre nom. Vous devez accorder les autorisations requises au rôle IAM en premier. Pour de plus amples informations sur la gestion des autorisations, consultez Configurer les autorisations.

Vous ajoutez une règle dans la configuration de réplication pour les scénarios suivants :

  • Vous souhaitez répliquer tous les objets.

  • Vous souhaitez répliquer un sous-ensemble d'objets. Vous identifiez le sous-ensemble d'objets en ajoutant un filtre dans la règle. Dans le filtre, vous spécifiez un préfixe de clé d'objet et/ou des balises pour identifier le sous-ensemble d'objets auquel la règle s'applique.

Vous ajoutez plusieurs règles dans une configuration de réplication si vous souhaitez répliquer un sous-ensemble d'objets distinct. Dans chaque règle, vous spécifiez un filtre qui sélectionne un sous-ensemble d'objets différent. Par exemple, vous pouvez choisir de répliquer des objets qui possèdent les préfixes de clé tax/ ou document/. Pour ce faire, vous ajoutez deux règles, l'une qui spécifie le filtre de préfixe de clé tax/ et l'autre qui spécifie le préfixe de clé document/.

Les sections suivantes fournissent des informations supplémentaires.

Configuration de base d'une règle

Chaque règle doit inclure le statut et la priorité de la règle. La règle doit également indiquer s'il faut répliquer les marqueurs de suppression.

  • Status indique si la règle est activée ou désactivée via les valeurs Enabled ou Disabled. Si une règle est désactivée, Simple Storage Service (Amazon S3) n'effectue pas les actions spécifiées dans la règle.

  • Priority indique quelle règle a priorité en cas de conflit de deux règles de réplication ou plus. Simple Storage Service (Amazon S3) tente de répliquer les objets selon toutes les règles de réplication. Toutefois, s'il existe deux règles ou plus avec le même compartiment de destination, les objets sont répliqués selon la règle avec la priorité la plus élevée. Plus le nombre est élevé, plus la priorité est haute.

  • DeleteMarkerReplication indique s'il faut répliquer les marqueurs de suppression via les valeurs Enabled ou Disabled.

Dans la configuration de destination, vous devez fournir le nom du compartiment ou des compartiments dans lesquels vous voulez qu'Simple Storage Service (Amazon S3) réplique les objets.

L'exemple suivant indique les conditions minimales requises pour une règle V2. Pour assurer la compatibilité descendante, Amazon S3 continue de prendre en charge le format XML V1. Pour plus d'informations, consultez Rétrocompatibilité.

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

Vous pouvez également spécifier d'autres options de configuration. Par exemple, vous pouvez choisir d'utiliser une classe de stockage pour les réplicas d'objets qui diffèrent de la classe associée à l'objet source.

Facultatif : Spécification d'un filtre

Pour choisir un sous-ensemble d'objets auquel la règle s'applique, ajoutez un filtre facultatif. Vous pouvez filtrer par préfixe de clé d'objet et/ou par balises d'objets. Si vous filtrez par préfixe de clé et par balises d'objet, Amazon S3 combine ces filtres au moyen de l'opérateur logique AND. En d'autres termes, la règle s'applique à un sous-ensemble d'objets doté d'un préfixe de clé et de balises spécifiques.

Filtre basé sur un préfixe de clé d'objet

Pour spécifier une règle dont le filtre est défini sur un préfixe de clé d'objet, utilisez le code suivant. Vous ne pouvez spécifier qu'un seul préfixe.

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

Filtre basé sur des balises d'objet

Pour spécifier une règle dont le filtre est défini sur des balises d'objets, utilisez le code suivant. Vous pouvez spécifier une ou plusieurs balises d'objets.

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

Filtre basé sur un préfixe de clé et des balises d'objet

Pour spécifier un filtre de règle défini sur un préfixe de clé et des balises d'objets, utilisez le code suivant. Vous enveloppez ces filtres dans un élément parent And. Amazon S3 effectue une opération logique AND pour combiner ces filtres. En d'autres termes, la règle s'applique à un sous-ensemble d'objets doté à la fois d'un préfixe de clé et de balises spécifiques.

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

Si vous spécifiez une règle avec une balise de filtre vide, votre règle s'applique à tous les objets de votre compartiment.

Configurations de destinations supplémentaires

Dans la configuration de destination, vous spécifiez le ou les compartiments dans lesquels vous voulez qu'Amazon S3 réplique les objets. Vous pouvez définir des configurations pour répliquer des objets d'un compartiment source dans un ou plusieurs compartiments de destination.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> </Destination> ...

Vous pouvez ajouter les options suivantes dans l'élément <Destination> :

Spécifier une classe de stockage

Vous pouvez spécifier la classe de stockage pour les réplicas d'objets. Par défaut, Amazon S3 utilise la classe de stockage de l'objet source pour créer les réplicas d'objets, comme dans l'exemple ci-dessous.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> <StorageClass>storage-class</StorageClass> </Destination> ...

Ajouter plusieurs compartiments de destination

Vous pouvez ajouter plusieurs compartiments de destination dans une configuration de réplication unique, comme suit.

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

Spécifier des paramètres différents pour chaque règle de réplication avec plusieurs compartiments de destination

Lorsque vous ajoutez plusieurs compartiments de destination dans une configuration de réplication unique, vous pouvez spécifier différents paramètres pour chaque règle de réplication, comme suit.

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

Modification du propriétaire d'un réplica

Lorsque les compartiments source et de destination n'appartiennent pas aux mêmes comptes, vous pouvez remplacer le propriétaire du réplica par le Compte AWS qui possède le compartiment de destination. Pour ce faire, ajoutez l'élément AccessControlTranslation. Cet élément prend la valeur Destination.

... <Destination> <Bucket>arn:aws:s3:::DOC-EXAMPLE-BUCKET</Bucket> <Account>destination-bucket-owner-account-id</Account> <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> </Destination> ...

Si vous n'ajoutez pas l'élément AccessControlTranslation à la configuration de réplication, les réplicas appartiennent au Compte AWS qui détient l'objet source. Pour plus d'informations, consultez Modification du propriétaire d'un réplica.

Activer le contrôle du délai de réplication S3

Vous pouvez activer le contrôle du délai de réplication S3 dans votre configuration de réplication. S3 RTC réplique la plupart des objets en quelques secondes et 99,99 % des objets en l'espace de 15 minutes (soutenu par un contrat de niveau de service (SLA)).

Note

Seule une valeur de <Minutes>15</Minutes> est acceptée pour EventThreshold et 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> ...

Pour plus d'informations, consultez Satisfaire aux exigences de conformité à l'aide du contrôle du délai de réplication S3 (S3 RTC). Pour obtenir des exemples d'API, veuillez consulter PutBucketReplication dans la Référence d'API Amazon Simple Storage Service.

Répliquer les objets créés avec le chiffrement côté serveur via AWS KMS

Votre compartiment source peut contenir des objets créés à l'aide du chiffrement côté serveur au moyen de clés AWS Key Management Service (AWS KMS) (SSE-KMS). Par défaut, Simple Storage Service (Amazon S3) ne réplique pas ces objets. Vous pouvez éventuellement demander à Simple Storage Service (Amazon S3) de répliquer ces objets. Pour ce faire, commencez par choisir explicitement cette fonctionnalité en ajoutant l'élément SourceSelectionCriteria. Fournissez ensuite l'AWS KMS key (pour la Région AWS du compartiment de destination) à utiliser pour chiffrer les réplicas d'objets. Les exemples suivants montrent comment spécifier ces éléments.

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

Pour plus d'informations, consultez Répliquer des objets créés avec le chiffrement côté serveur (SSE) à l'aide de clés KMS.

Exemples de configuration de réplication

Pour commencer, vous pouvez ajouter les exemples de configuration de réplication suivants à votre compartiment, selon les besoins.

Important

Pour ajouter une configuration de réplication à un compartiment, vous devez disposer de l'autorisation iam:PassRole. Cette autorisation vous permet de transmettre le rôle IAM qui accorde les autorisations de réplication à Amazon S3. Vous spécifiez le rôle IAM en fournissant l'Amazon Resource Name (ARN) utilisé dans l'élément Role du fichier XML de la configuration de réplication. Pour de plus amples informations, veuillez consulter Octroi d'autorisations à un utilisateur pour transférer un rôle à un Service AWS dans le Guide de l'utilisateur IAM.

Exemple 1 : Configuration de réplication à une seule règle

La configuration de réplication de base suivante indique une règle. Cette règle spécifie un rôle IAM qu'Simple Storage Service (Amazon S3) peut endosser et un compartiment de destination unique pour les réplicas d'objets. La valeur Status de Enabled indique que la règle est en vigueur.

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

Pour choisir un sous-ensemble d'objets à répliquer, vous pouvez ajouter un filtre. Dans la configuration suivante, le filtre spécifie un préfixe de clé d'objet. Cette règle s'applique aux objets dotés du préfixe Tax/ dans leur nom de clé.

<?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 vous spécifiez l'élément Filter, vous devez également inclure les éléments Priority et DeleteMarkerReplication. Dans cet exemple, Priority n'a aucune importance car il n'existe qu'une seule règle.

Dans la configuration suivante, le filtre spécifie un préfixe et deux balises. La règle s'applique au sous-ensemble d'objets dotés du préfixe de clé et des balises spécifiés. Elle s'applique particulièrement aux objets dotés du préfixe Tax/ dans leur nom de clé et des deux balises d'objets spécifiées. Priority ne s'applique pas du fait qu'une seule règle est disponible.

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

Vous pouvez spécifier une classe de stockage pour les réplicas d'objets, comme suit.

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

Vous pouvez spécifier n'importe quelle classe de stockage prise en charge par Amazon S3.

Exemple 2 : Configuration de réplication à deux règles

Dans la configuration de réplication suivante :

  • Chaque règle filtre un préfixe de clé différent afin que chaque règle s'applique à un sous-ensemble distinct d'objets. Dans cet exemple, Simple Storage Service (Amazon S3) réplique les objets avec les noms de clé Tax/doc1.pdf et Project/project1.txt, mais ne réplique pas les objets avec le nom de clé PersonalDoc/documentA.

  • La priorité des règles n'a aucune importance car les règles s'appliquent à deux ensembles d'objets distincts. L'exemple suivant décrit ce qui se passe lorsque la priorité des règles est appliquée.

  • La deuxième règle spécifie la classe de stockage S3 Standard-Accès peu fréquent pour les réplicas d'objets. Simple Storage Service (Amazon S3) utilise la classe de stockage spécifiée pour ces réplicas d'objets.

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

Exemple 3 : Configuration de réplication à deux règles et avec des préfixes qui se chevauchent

Dans cette configuration, les deux règles indiquent des filtres avec des préfixes de clé se chevauchant, star/ et starship. Les deux règles s'appliquent aux objets portant le nom de clé starship-x. Dans ce cas, Amazon S3 utilise la priorité des règles pour déterminer la règle à appliquer. Plus le nombre est élevé, plus la priorité est haute.

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

Exemple 4 : Exemples de procédures

Pour afficher des exemples, consultez la section Procédures : exemples de configuration de la réplication.

Pour de plus amples informations sur la structure XML de la configuration de réplication, veuillez consulter PutBucketReplication dans la Référence d'API Amazon Simple Storage Service.

Rétrocompatibilité

La dernière version du fichier XML de configuration de réplication est V2. Les configurations de réplication XML V2 sont celles qui contiennent l'élément Filter pour les règles et les règles qui spécifient le contrôle du délai de réplication S3.

Pour afficher votre version de configuration de réplication, vous pouvez utiliser l'opération d'API GetBucketReplication. Pour de plus amples informations, consultez GetBucketReplication dans la Référence d'API Amazon Simple Storage Service.

Pour assurer la compatibilité descendante, Simple Storage Service (Amazon S3) continue de prendre en charge la configuration de réplication XML V1. Si vous avez utilisé la configuration de réplication XML V1, tenez compte des problèmes suivants qui ont un impact sur la compatibilité descendante :

  • La version 2 du fichier XML de configuration de réplication inclut l'élément Filter pour les règles. L'élément Filter vous permet de spécifier des filtres d'objet basés sur le préfixe de clé d'objet et/ou des balises pour définir la portée des objets auxquels la règle s'applique. Le format de configuration de réplication XML V1 prend en charge le filtrage basé uniquement sur le préfixe de la clé. Dans ce cas, vous ajoutez directement le Prefix en tant qu'élément enfant de l'élément Rule comme dans l'exemple suivant.

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

    Pour assurer la compatibilité descendante, prend toujours en charge la configuration V1.

  • Lorsque vous supprimez un objet de votre compartiment source, sans spécifier d'ID de version d'objet, Simple Storage Service (Amazon S3) ajoute un marqueur de suppression. Si vous utilisez la version 1 du fichier XML de configuration de réplication, Simple Storage Service (Amazon S3) réplique les marqueurs de suppression créés par les actions utilisateur. En d'autres termes, Amazon S3 réplique le marqueur de suppression uniquement si un utilisateur supprime un objet. Si un objet ayant expiré est supprimé par Amazon S3 (dans le cadre d'une action de cycle de vie), Amazon S3 ne réplique pas le marqueur de suppression.

    Dans les configurations de réplication V2, vous pouvez activer la réplication des marqueurs de suppression pour les règles basées sur des balises. Pour de plus amples informations, veuillez consulter Répliquer des marqueurs de suppression entre les compartiments.