Modification du propriétaire d'un réplica - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Modification du propriétaire d'un réplica

Dans une réplication, par défaut, le réplica appartient également au propriétaire de l'objet source. Lorsque les compartiments source et de destination appartiennent à des entités différentes Comptes AWS et vous souhaitez remplacer la propriété de la réplique par Compte AWS propriétaire des compartiments de destination, vous pouvez ajouter des paramètres de configuration facultatifs pour attribuer la propriété des répliques au Compte AWS qui possède les compartiments de destination. Vus pouvez choisir de le faire, par exemple, pour limiter l'accès aux réplicas d'objet. C'est ce qu'on appelle l'option de substitution du propriétaire de la configuration de réplication. Pour plus d'informations sur l'option de substitution du propriétaire, consultez Ajout de l'option de substitution du propriétaire à la configuration de réplication. Pour obtenir des informations sur la définition d'une configuration de réplication, consultez Vue d'ensemble de la réplication d'objets.

Pour configurer la substitution du propriétaire, effectuez les opérations suivantes :

  • Ajoutez l'option de substitution du propriétaire à la configuration de réplication pour indiquer à Amazon S3 de modifier le propriétaire des réplicas.

  • Accordez à Amazon S3 les autorisations de modifier le propriétaire des réplicas.

  • Ajoutez l'autorisation dans la stratégie des compartiments de destination pour autoriser la modification de propriété du réplica. Cela permet au propriétaire des compartiments de destination d'accepter la propriété des réplicas d'objet.

Pour de plus amples informations, veuillez consulter Ajout de l'option de substitution du propriétaire à la configuration de réplication. Pour un exemple pratique avec des step-by-step instructions, voirComment changer le propriétaire de la réplique.

Paramètre de propriétaire du compartiment imposé pour la propriété de l'objet

Lorsque vous utilisez la réplication Amazon S3 et que les compartiments source et de destination appartiennent à différents Comptes AWS, le propriétaire du compartiment de destination peut désactiver ACLs (le paramètre de propriété de l'objet étant appliqué au propriétaire du compartiment) pour remplacer la propriété de la réplique par Compte AWS qui possède le compartiment de destination. Ce paramètre imite le comportement de remplacement du propriétaire existant sans avoir besoin d'une autorisation s3:ObjectOwnerOverrideToBucketOwner. Cela signifie que tous les objets répliqués dans le compartiment de destination avec le paramètre bucket owner enforced (propriétaire du compartiment imposé) appartiennent au propriétaire du compartiment de destination. Pour en savoir plus sur la propriété des objets, veuillez consulter Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment.

Ajout de l'option de substitution du propriétaire à la configuration de réplication

Avertissement

Ajoutez l'option de remplacement du propriétaire uniquement lorsque les compartiments source et de destination appartiennent à des entités différentes Comptes AWS. Amazon S3 ne vérifie pas si les buckets appartiennent à des comptes identiques ou différents. Si vous ajoutez le propriétaire, remplacez lorsque les deux compartiments sont détenus par le même propriétaire Compte AWS, Amazon S3 applique la dérogation du propriétaire. Il accorde des autorisations complètes au propriétaire du compartiment de destination et ne reproduit pas les mises à jour ultérieures de la liste de contrôle d'accès aux objets source (ACL). Le propriétaire du réplica peut directement modifier le code ACL associé à un réplica par le biais d'une PUT ACL demande, mais pas par le biais de la réplication.

Pour spécifier l'option de substitution du propriétaire, ajoutez les informations suivantes à chaque élément Destination :

  • L'élément AccessControlTranslation, qui indique à Amazon S3 de modifier le propriétaire des réplicas

  • L'Accountélément, qui spécifie le Compte AWS du propriétaire du compartiment de destination

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

L'exemple de configuration de réplication suivant indique à Amazon S3 de répliquer les objets ayant le préfixe de clé Tax dans le compartiment de destination et de modifier le propriétaire des réplicas.

<?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:::destination-bucket</Bucket> <Account>destination-bucket-owner-account-id</Account> <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> </Destination> </Rule> </ReplicationConfiguration>

Octroi à Amazon S3 de l'autorisation de modifier le propriétaire des réplicas

Accordez à Amazon S3 l'autorisation de modifier la propriété de la réplique en ajoutant l'autorisation pour l's3:ObjectOwnerOverrideToBucketOwneraction dans la politique d'autorisation associée au IAM rôle. Il s'agit du IAM rôle que vous avez spécifié dans la configuration de réplication qui permet à Amazon S3 d'assumer et de répliquer des objets en votre nom.

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

Ajout d'autorisations dans la stratégie du compartiment de destination pour autoriser la modification de propriété du réplica

Le propriétaire du compartiment de destination doit accorder au propriétaire du compartiment source l'autorisation de modifier la propriété du réplica. Le propriétaire du compartiment de destination accorde au propriétaire du compartiment source l'autorisation pour l'action s3:ObjectOwnerOverrideToBucketOwner. Cela permet au propriétaire du compartiment de destination d'accepter la propriété des réplicas d'objet. L'exemple d'instruction de stratégie de compartiment suivant montre comment procéder.

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

Considérations supplémentaires

Lorsque vous configurez l'option de substitution de propriété, les considérations suivantes s'appliquent :

  • Par défaut, le propriétaire de l'objet source possède également le réplica. Amazon S3 réplique la version de l'objet et celle qui lui est ACL associée.

    Si vous ajoutez le remplacement du propriétaire, Amazon S3 ne réplique que la version de l'objet, et non le. ACL En outre, Amazon S3 ne reproduit pas les modifications ultérieures apportées à l'objet ACL source. Amazon S3 définit ACL la réplique qui accorde un contrôle total au propriétaire du compartiment de destination.

  • Lorsque vous mettez à jour une configuration de réplication pour activer ou désactiver la substitution de propriétaire, les événements suivants se produisent.

     

    • Si vous ajoutez l'option de substitution du propriétaire à la configuration de réplication :

      Lorsqu'Amazon S3 réplique une version d'objet, il supprime ACL celle associée à l'objet source. Au lieu de cela, il définit ACL la réplique, donnant ainsi le contrôle total au propriétaire du compartiment de destination. Il ne reproduit pas les modifications ultérieures apportées à l'objet ACL source. Toutefois, cette ACL modification ne s'applique pas aux versions d'objets qui ont été répliquées avant que vous ne définissiez l'option de remplacement du propriétaire. ACLles mises à jour sur les objets source qui ont été répliqués avant que le remplacement du propriétaire ne soit défini continuent d'être répliquées (car l'objet et ses répliques continuent d'avoir le même propriétaire).

    • Si vous supprimez l'option de substitution du propriétaire de la configuration de réplication :

      Amazon S3 réplique les nouveaux objets qui apparaissent dans le compartiment source et dans les compartiments associés ACLs aux compartiments de destination. Pour les objets qui ont été répliqués avant que vous ne supprimiez le remplacement du propriétaire, Amazon S3 ne les réplique pas, ACLs car le changement de propriété de l'objet effectué par Amazon S3 reste en vigueur. En d'autres ACLs termes, la version de l'objet qui a été répliquée lorsque la dérogation par le propriétaire a été définie continue à ne pas être répliquée.

Comment changer le propriétaire de la réplique

Lorsque le source and destination dans une configuration de réplication, les buckets appartiennent à différents Comptes AWS, vous pouvez demander à Amazon S3 de remplacer la propriété de la réplique par Compte AWS qui possède le destination seau. Cet exemple explique comment utiliser la console Amazon S3 et le AWS CLI pour modifier le propriétaire de la réplique. Pour de plus amples informations, veuillez consulter Modification du propriétaire d'un réplica.

Note

Lorsque vous utilisez la réplication S3 et que les compartiments source et de destination appartiennent à différents Comptes AWS, le propriétaire du compartiment de destination peut désactiver ACLs (le paramètre de propriété de l'objet étant appliqué au propriétaire du compartiment) pour remplacer la propriété de la réplique par Compte AWS qui possède le compartiment de destination. Ce paramètre imite le comportement de remplacement du propriétaire existant sans avoir besoin d'une autorisation s3:ObjectOwnerOverrideToBucketOwner. Cela signifie que tous les objets répliqués dans le compartiment de destination avec le paramètre bucket owner enforced (propriétaire du compartiment imposé) appartiennent au propriétaire du compartiment de destination. Pour en savoir plus sur la propriété des objets, veuillez consulter Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment.

Pour plus d'informations sur la configuration de la réplication à l'aide du chiffrement côté serveur avec AWS Key Management Service dans les scénarios entre comptes, voirOctroi d'autorisations supplémentaires pour les scénarios à plusieurs comptes.

Pour step-by-step obtenir des instructions, voirConfiguration d'une réplication pour des compartiments source et destination appartenant au même compte. Cette rubrique fournit des instructions pour définir la configuration de réplication lorsque des buckets appartiennent à des entités identiques ou différentes. Comptes AWS.

Pour modifier le propriétaire de la réplique à l'aide du AWS CLI, vous créez des compartiments, activez le contrôle de version sur les compartiments, vous créez un IAM rôle qui autorise Amazon S3 à répliquer des objets et vous ajoutez la configuration de réplication au compartiment source. Dans la configuration de réplication, vous chargez Amazon S3 de changer le propriétaire du réplica. Vous devez aussi tester la configuration.

Pour modifier la propriété des répliques lorsque les compartiments source et de destination appartiennent à des entités différentes Comptes AWS (AWS CLI)
  1. Dans cet exemple, vous créez source and destination seaux en deux versions différentes Comptes AWS Configurez le . AWS CLI avec deux profils nommés. Cet exemple utilise des profils respectivement nommés acctA et acctB. Pour plus d'informations sur la définition des profils d'identification, consultez la section Profils nommés dans le AWS Command Line Interface Guide de l'utilisateur

    Important

    Les profils que vous utilisez dans cet exercice doivent disposer des autorisations nécessaires. Par exemple, dans la configuration de réplication, vous spécifiez le IAM rôle qu'Amazon S3 peut assumer. Vous ne pouvez effectuer cette tâche que si le profil que vous utilisez dispose de l'autorisation iam:PassRole. Si vous utilisez les informations d'identification d'un administrateur pour créer un profil nommé, vous pouvez exécuter toutes les tâches. Pour plus d'informations, voir Octroyer à un utilisateur l'autorisation de transmettre un rôle à un AWS Service indiqué dans le guide de IAM l'utilisateur.

    Vous devez vérifier que ces profils disposent des autorisations nécessaires. Par exemple, la configuration de réplication inclut un IAM rôle qu'Amazon S3 peut assumer. Le profil nommé que vous utilisez pour attacher cette configuration à un compartiment ne peut effectuer cette tâche que s'il possède l'autorisation iam:PassRole. Si vous spécifiez des informations d'identification d'administrateur lors de la création de ces profils nommés, ils disposeront de toutes les autorisations. Pour plus d'informations, voir Octroyer à un utilisateur l'autorisation de transmettre un rôle à un AWS Service indiqué dans le guide de IAM l'utilisateur.

  2. Créez le source bucket et activez le versionnement. Cet exemple crée le source seau dans la région USA Est (Virginie du Nord) (us-east-1).

    aws s3api create-bucket \ --bucket source \ --region us-east-1 \ --profile acctA
    aws s3api put-bucket-versioning \ --bucket source \ --versioning-configuration Status=Enabled \ --profile acctA
  3. Créez un destination bucket et activez le versionnement. Cet exemple crée le destination seau dans la région USA Ouest (Oregon) (us-west-2). Utilisez un Compte AWS profil différent de celui que vous avez utilisé pour source seau.

    aws s3api create-bucket \ --bucket destination \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --profile acctB
    aws s3api put-bucket-versioning \ --bucket destination \ --versioning-configuration Status=Enabled \ --profile acctB
  4. Vous devez ajouter des autorisations à votre destination politique de compartiment permettant de modifier le propriétaire de la réplique.

    1. Enregistrez la stratégie suivante dans destination-bucket-policy.json.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "destination_bucket_policy_sid", "Principal": { "AWS": "source-bucket-owner-account-id" }, "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateTags", "s3:GetObjectVersionTagging" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::destination/*" ] } ] }
    2. Appliquez la politique ci-dessus à destination seau :

      aws s3api put-bucket-policy --region $ {destination_region} --bucket $ {destination} --policy file://destination_bucket_policy.json
  5. Créez un IAM rôle. Vous spécifiez ce rôle dans la configuration de réplication que vous ajoutez au source seau plus tard. Amazon S3 endosse ce rôle pour répliquer des objets en votre nom. Vous créez un IAM rôle en deux étapes :

    • Créez un rôle

    • Attachez une stratégie d'autorisation au rôle.

    1. Créez un IAM rôle.

      1. Copiez la stratégie d'approbation suivante et enregistrez-la dans un fichier nommé s3-role-trust-policy.json dans le répertoire actif sur votre ordinateur local. Cette stratégie octroie à Amazon S3 les autorisations pour endosser le rôle.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. Exécutez ce qui suit AWS CLI commande pour créer un rôle.

        $ aws iam create-role \ --role-name replicationRole \ --assume-role-policy-document file://s3-role-trust-policy.json \ --profile acctA
    2. Attachez une stratégie d'autorisation au rôle.

      1. Copiez la politique d'autorisations suivante et enregistrez-la dans un fichier nommé s3-role-perm-pol-changeowner.json dans le répertoire actuel de votre ordinateur local. Cette stratégie accorde des autorisations pour diverses actions sur les compartiments et les objets Amazon S3. Dans les étapes suivantes, vous créez un IAM rôle et associez cette politique au rôle.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::source/*" ] }, { "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration" ], "Resource":[ "arn:aws:s3:::source" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateTags", "s3:GetObjectVersionTagging" ], "Resource":"arn:aws:s3:::destination/*" } ] }
      2. Pour créer une stratégie et l'attacher au rôle, exécutez la commande suivante :

        $ aws iam put-role-policy \ --role-name replicationRole \ --policy-document file://s3-role-perm-pol-changeowner.json \ --policy-name replicationRolechangeownerPolicy \ --profile acctA
  6. Ajoutez une configuration de réplication à votre compartiment source.

    1. Le AWS CLI nécessite de spécifier la configuration de réplication sous la formeJSON. Enregistrez ce qui suit JSON dans un fichier nommé replication.json dans le répertoire actuel de votre ordinateur local. Dans la configuration, l'ajout de AccessControlTranslation permet d'indiquer que la propriété du réplica a été modifiée.

      { "Role":"IAM-role-ARN", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ }, "Status":"Enabled", "Destination":{ "Bucket":"arn:aws:s3:::destination", "Account":"destination-bucket-owner-account-id", "AccessControlTranslation":{ "Owner":"Destination" } } } ] }
    2. Modifiez le JSON en fournissant des valeurs pour le destination ID de compte du propriétaire du bucket et IAM-role-ARN. Enregistrez les modifications.

    3. Pour ajouter la configuration de réplication au compartiment source, exécutez la commande suivante : Fournissez le source nom du bucket.

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket source \ --profile acctA
  7. Vérifiez le propriétaire du réplica dans la console Amazon S3.

    1. Connectez-vous au AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

    2. Ajoutez des objets au source seau. Vérifiez que le destination le compartiment contient les répliques d'objets et indique que le propriétaire des répliques est devenu le Compte AWS qui possède le destination seau.

Pour obtenir un exemple de code illustrant l'ajout d'une configuration de réplication, veuillez consulter Utilisation de AWS SDKs. Vous devez modifier la configuration de réplication en conséquence. Pour obtenir des informations conceptuelles,veuillez consulter Modification du propriétaire d'un réplica.