J'ai copié ou transféré un objet à partir d'un compartiment S3 appartenant à un compte AWS vers un compartiment appartenant à un autre compte AWS, mais le propriétaire du compartiment de destination ne parvient pas à accéder à cet objet.

Ce problème survient lorsque les autorisations appropriées ne sont pas appliqués aux objets copiés ou transférés d'un compartiment à un autre.

Dans ce cas, mieux vaut prévenir que guérir. Toutefois, cette section inclut à la fois les mesures proactives et rétroactives.

Le propriétaire du compartiment source doit s'assurer que les autorisations appropriées sont appliquées aux objets copiés ou transférés dans le compartiment de destination lors de cette opération.

La solution conseillée pour résoudre ce problème est d'associer au propriétaire du compartiment de destination un rôle que le propriétaire du compartiment source peut assumer. Ce rôle doit accorder au propriétaire du compartiment source un contrôle complet du compartiment de destination et doit permettre au propriétaire du compartiment de destination de conserver toutes les autorisations des objets copiés ou transférés dans ce dernier. Consultez la section Procédure : Délégation d'accès aux ressources entre les différents comptes AWS avec les rôles IAM.

Vous pouvez également appliquer une stratégie au compartiment de destination pour vous assurer que le propriétaire du compartiment conserve le contrôle complet des objets copiés ou transférés dans le compartiment. Cette stratégie empêche le compte spécifié de copier ou de transférer des objets vers le compartiment de destination, sauf si le propriétaire du compartiment dispose d'un contrôle complet de ces objets. Pour voir un exemple de stratégie, consultez la section Octroi d'autorisations entre comptes pour charger des objets tout en garantissant que le propriétaire du compartiment dispose d'un contrôle total.

L'exemple de stratégie de compartiment ci-dessous donne le même résultat que l'application d'une liste ACL prédéfinie pour accorder au propriétaire du compartiment le contrôle complet de tous les objets copiés ou transférés dans ce compartiment.

{

  "Statement":[

    {

      "Effect":"Allow",

      "Principal":{"AWS":"111111111111"},

      "Action":"s3:PutObject",

      "Resource":["arn:aws:s3:::examplebucket/*","arn:aws:s3:::examplebucket"]

    },

    {

      "Effect": "Deny",

      "Principal":{"AWS":"111111111111"},

      "Action":"s3:PutObject",

      "Resource":"arn:aws:s3:::examplebucket/*",

      "Condition": {

        "StringNotEquals": {"s3:x-amz-acl":"bucket-owner-full-control"}

      }

    }

  ]

}

Pour en savoir plus sur l'utilisation d'en-têtes liés au contrôle d'accès pour les opérations PUT, consultez la section Objet PUT.

Pour plus d'informations sur les clés prédéfinies pour spécifier les d'une stratégie d'accès Amazon S3, consultez la section Clés de condition disponibles. En cas d'utilisation de l'interface de ligne de commande AWS, il est recommandé de configurer un profil dans le compte qui assume le rôle du compte de destination. Cette approche évide d'avoir à exporter des jetons pour chaque demande, comme décrit dans la section Assumer un rôle.

Si vous n'avez pas suivi les mesures proactives et si le propriétaire du compartiment de destination ne dispose pas des autorisations requises au niveau des objets transférés ou copiés dans le compartiment, le propriétaire du compartiment source peut exécuter ces commandes CLI AWS pour lui accorder le contrôle total de ces objets :

  • Utilisez l'adresse e-mail du propriétaire du compartiment de destination pour mettre à jour les listes ACL pour les objets copiés ou transférés dans le compartiment :

aws s3api put-object-acl --bucket src-acct-bucket --key myobject

--grant-full-control emailaddress=xyz@example.com

  • Utilisez l'ID d'utilisateur canonique du propriétaire du compartiment de destination pour mettre à jour les listes ACL pour les objets copiés ou transférés dans le compartiment :

aws s3api put-bucket-acl --bucket src-acct-bucket --grant-full-control id="destinationownercanonicalid"

--region us-east-1

Amazon S3, autorisation, rôle inter-compte, délégation, stratégie de compartiment, liste ACL prédéfinie


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 26/02/2016