Un utilisateur AWS Identity and Access Management (IAM) d'un autre compte AWS a téléchargé un objet sur mon compartiment Amazon Simple Storage Service (Amazon S3). Lorsque j'essaie d'accéder à l'objet, je reçois une erreur « HTTP 403 : Accès refusé ». Comment corriger ce problème ?

Par défaut, le compte AWS qui charge l'objet en est propriétaire, même si un autre compte est propriétaire du compartiment. Pour que vous puissiez accéder à l'objet, son propriétaire doit explicitement vous (propriétaire du compartiment) accorder l'accès. Le propriétaire de l'objet peut accorder au propriétaire du compartiment le contrôle total sur l'objet en mettant à jour la liste de contrôle d'accès (ACL) de l'objet. Le propriétaire de l'objet peut mettre à jour la liste ACL de l'objet lors de l'opération « put » ou « copy », ou après l'ajout de l'objet au compartiment.

Accorder l'accès lors de l'opération « put » ou « copy »

Pendant l'opération « put » ou « copy », le propriétaire de l'objet peut spécifier que la liste ACL de l'objet donne le contrôle total sur l'objet au propriétaire du compartiment.

Pour une opération « put », le propriétaire de l'objet peut exécuter cette commande :

aws s3api put-object --bucket destination_bucket --key dir-1/my_images.tar.bz2 --body my_images.tar.bz2 --acl bucket-owner-full-control

Pour une opération « copy » d'un objet unique, le propriétaire de l'objet peut exécuter une de ces commandes :

aws s3api copy-object --bucket destination_bucket --key source_bucket/myobject --acl bucket-owner-full-control

ou

aws s3 cp s3://sourcebucket/myobject s3://destinationbucket/ --acl bucket-owner-full-control

Pour une opération « copy » de plusieurs objets, le propriétaire de l'objet peut exécuter cette commande :

aws s3 cp s3://sourcebucket/ s3://destinationbucket/ --acl bucket-owner-full-control --recursive

Accorder l'accès une fois que l'objet est ajouté au compartiment

Si l'objet est déjà ajouté au compartiment dans un autre compte, le propriétaire de l'objet peut accorder l'accès au propriétaire du compartiment en exécutant une commandeput-object-acl, comme suit :

aws s3api put-object-acl --bucket bucketname --key keyname --acl bucket-owner-full-control

Exiger que les objets accordent le contrôle total au propriétaire du compartiment

Vous pouvez utiliser une stratégie de compartiment pour exiger que touts les objets chargés sur votre compartiment par un autre compte définisse la liste ACL en tant que « bucket-owner-full-control ». L'exemple de stratégie suivant autorise un utilisateur IAM spécifique à placer des objets dans un compartiment uniquement lorsque la demande put définit la liste ACL sur « bucket-owner-full-control ».

Avertissement : Cet exemple de stratégie ne prend pas en charge les chargements partitionnés via l'opération de chargement partiel.

{
    "Id": "Policy1541018284691",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1541018283275",
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::testbucket /*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            },
            "Principal": {
                "AWS": [
                    "arn:aws:iam::xxxxxxxxxxxxx:user/iam"
                ]
            }
        }
    ]
}

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

Date de mise à jour : 20/12/2018