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. Toutefois, lorsque les compartiments source et de destination appartiennent à des propriétaires différents Comptes AWS, vous souhaiterez peut-être modifier le propriétaire de la réplique. Par exemple, vous souhaiterez peut-être modifier le propriétaire pour restreindre l'accès aux répliques d'objets. Dans votre configuration de réplication, vous pouvez ajouter des paramètres de configuration facultatifs pour remplacer la propriété des répliques par Compte AWS celle qui détient les compartiments de destination.

Pour modifier le propriétaire de la réplique, procédez comme suit :

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

  • Accordez à Amazon S3 l's3:ObjectOwnerOverrideToBucketOwnerautorisation de modifier le propriétaire de la réplique.

  • Ajoutez l's3:ObjectOwnerOverrideToBucketOwnerautorisation dans la politique du compartiment de destination pour autoriser le changement de propriétaire de la réplique. L's3:ObjectOwnerOverrideToBucketOwnerautorisation permet au propriétaire des compartiments de destination d'accepter la propriété des répliques d'objets.

Pour plus d’informations, consultez Considérations relatives à l'option de dérogation à la propriété et 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.

Important

Au lieu d'utiliser l'option de remplacement du propriétaire, vous pouvez utiliser le paramètre imposé par le propriétaire du compartiment pour la propriété de l'objet. Lorsque vous utilisez la réplication et que les compartiments source et de destination appartiennent à des propriétaires différents Comptes AWS, le propriétaire du compartiment de destination peut utiliser le paramètre imposé par le propriétaire du compartiment pour Object Ownership afin de remplacer la propriété de la réplique par le Compte AWS propriétaire du bucket de destination. Ce paramètre désactive les listes de contrôle d'accès aux objets (ACLs).

Le paramètre imposé par le propriétaire du bucket imite le comportement de remplacement du propriétaire existant sans avoir besoin d'autorisation. s3:ObjectOwnerOverrideToBucketOwner 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.

Considérations relatives à l'option de dérogation à la propriété

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 l'option de remplacement du propriétaire à votre configuration de réplication, 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 le remplacement par le propriétaire, le comportement suivant se produit :

    • 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 la ACL version associée à l'objet source. Au lieu de cela, Amazon S3 définit ACL la réplication, donnant ainsi le contrôle total au propriétaire du compartiment de destination. Amazon S3 ne réplique 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.

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 propriétaires différents. Comptes AWS Amazon S3 ne vérifie pas si les buckets appartiennent au même compte ou à des comptes différents. Si vous ajoutez le remplacement du propriétaire alors que les deux compartiments appartiennent au même propriétaire Compte AWS, Amazon S3 applique le remplacement du propriétaire. Cette option accorde des autorisations complètes au propriétaire du compartiment de destination et ne reproduit pas les mises à jour ultérieures des listes de contrôle d'accès des objets sources ()ACLs. Le propriétaire du réplica peut directement modifier le code ACL associé à un réplica par le biais d'une PutObjectAcl 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 indique le propriétaire Compte AWS 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 dotés de Taxes préfixe clé du compartiment de amzn-s3-demo-destination-bucket destination et changement de propriétaire des répliques. Pour utiliser cet exemple, remplacez user input placeholders par vos propres informations.

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

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 rôle AWS Identity and Access Management (IAM). Ce rôle est celui IAM 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. Pour utiliser l'exemple suivant, remplacez-le amzn-s3-demo-destination-bucket par le nom du compartiment de destination.

... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-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. Cette autorisation permet au propriétaire du compartiment de destination d'accepter la propriété des répliques d'objets. L'exemple d'instruction de stratégie de compartiment suivant montre comment procéder. Pour utiliser cet exemple, remplacez user input placeholders par vos propres informations.

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

Comment changer le propriétaire de la réplique

Lorsque les compartiments source et de destination d'une configuration de réplication appartiennent à des propriétaires différents Comptes AWS, vous pouvez demander à Amazon S3 de remplacer le propriétaire de la réplique par Compte AWS celui qui détient le compartiment de destination. Les exemples suivants montrent comment utiliser la console Amazon S3, le AWS Command Line Interface (AWS CLI) et le AWS SDKs pour modifier le propriétaire de la réplique.

Pour step-by-step obtenir des instructions, voirConfiguration de la réplication pour les buckets d'un même compte. Cette rubrique fournit des instructions pour configurer une configuration de réplication lorsque les compartiments source et de destination sont détenus de manière identique et différente Comptes AWS.

La procédure suivante montre comment modifier le propriétaire de la réplique à l'aide du AWS CLI. Dans cette procédure, effectuez les opérations suivantes :

  • Créez les compartiments source et de destination.

  • Activez la gestion des versions sur les buckets.

  • Créez un rôle AWS Identity and Access Management (IAM) qui autorise Amazon S3 à répliquer des objets.

  • Ajoutez la configuration de réplication au compartiment source.

  • Dans la configuration de réplication, vous demandez à Amazon S3 de modifier le propriétaire de la réplique.

  • Vous testez votre configuration de réplication.

Pour modifier la propriété de la réplique lorsque les compartiments source et de destination appartiennent à des entités différentes Comptes AWS ()AWS CLI

Pour utiliser les exemples de AWS CLI commandes de cette procédure, remplacez-les user input placeholders par vos propres informations.

  1. Dans cet exemple, vous créez les compartiments source et destination dans deux compartiments différents Comptes AWS. Pour utiliser ces deux comptes, configurez-les AWS CLI avec deux profils nommés. Cet exemple utilise des profils nommés ACCTA and AccTB, respectivement. Pour plus d'informations sur la définition des profils d'identification et l'utilisation de profils nommés, consultez la section Configuration et paramètres des fichiers d'identification dans le Guide de l'AWS Command Line Interface utilisateur.

    Important

    Les profils que vous utilisez pour cette procédure 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 le faire que si le profil que vous utilisez est iam:PassRole autorisé. Si vous utilisez les informations d'identification de l'utilisateur administrateur pour créer un profil nommé, vous pouvez effectuer toutes les tâches de cette procédure. Pour plus d'informations, consultez la section Accorder à un utilisateur l'autorisation de transmettre un rôle à un Service AWS dans le Guide de IAM l'utilisateur.

  2. Créez le compartiment source et activez la gestion des versions. Cet exemple crée un compartiment source nommé amzn-s3-demo-source-bucket dans la région USA Est (Virginie du Nordus-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
  3. Créez un compartiment de destination et activez la gestion des versions. Cet exemple crée un compartiment de destination nommé amzn-s3-demo-destination-bucket dans la région USA Ouest (Oregonus-west-2) (). Utilisez un Compte AWS profil différent de celui que vous avez utilisé pour le compartiment source.

    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
  4. Vous devez ajouter des autorisations à la stratégie de votre compartiment de destination pour autoriser la modification de propriété du réplica.

    1. Enregistrez la politique suivante dans un fichier nommédestination-bucket-policy.json. Assurez-vous de remplacer le espaces réservés à la saisie par l'utilisateur avec vos propres informations.

      { "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:::amzn-s3-demo-destination-bucket/*" ] } ] }
    2. Ajoutez la politique précédente au compartiment de destination à l'aide de la put-bucket-policy commande suivante :

      aws s3api put-bucket-policy --region $ {destination-region} --bucket $ {amzn-s3-demo-destination-bucket} --policy file://destination_bucket_policy.json
  5. Créez un IAM rôle. Vous précisez ce rôle dans la configuration de réplication que vous ajouterez ultérieurement au compartiment source. 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 le rôle.

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

    1. Créez le 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 la AWS CLI create-role commande suivante pour créer le IAM rôle :

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

        Notez le nom de ressource Amazon (ARN) du IAM rôle que vous avez créé. Vous ARN en aurez besoin ultérieurement.

    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 associez cette politique au IAM rôle que vous avez créé précédemment.

        { "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/*" } ] }
      2. Pour associer la politique d'autorisation précédente au rôle, exécutez la put-role-policy 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. 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, le AccessControlTranslation indique le changement de propriété de la réplique du propriétaire du bucket source au propriétaire du bucket de destination.

      { "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" } } } ] }
    2. Modifiez le JSON en fournissant des valeurs pour le nom du compartiment de destination, l'ID de compte du propriétaire du compartiment de destination et leIAM-role-ARN. Remplacez IAM-rôle- ARN avec ARN le IAM rôle que vous avez créé précédemment. Enregistrez les Modifications.

    3. Pour ajouter la configuration de réplication au compartiment source, exécutez la commande suivante :

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket amzn-s3-demo-source-bucket \ --profile acctA
  7. Testez votre configuration de réplication en vérifiant la propriété de la réplique dans la console Amazon S3.

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

    2. Ajoutez des objets au compartiment source. Vérifiez que le compartiment de destination contient les répliques d'objets et que le propriétaire des répliques a été remplacé par Compte AWS celui qui détient le compartiment de destination.

Pour un exemple de code permettant d'ajouter une configuration de réplication, consultezEn utilisant le 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.