Comment puis-je exiger que les autres comptes AWS qui chargent des objets dans mon compartiment Amazon S3 m'accordent le contrôle total de ces objets ?

Lecture de 2 minute(s)
0

Je souhaite autoriser les utilisateurs d'autres comptes AWS à charger des objets dans mon compartiment Amazon Simple Storage Service (Amazon S3). Cependant, je souhaite exiger que les utilisateurs m'accordent le contrôle total de ces objets.

Résolution

Ajoutez une stratégie de compartiment qui oblige les utilisateurs à inclure la liste de contrôle d'accès (ACL) bucket-owner-full-control lorsqu'ils chargent des objets dans votre compartiment.

Par exemple, la stratégie de compartiment suivante indique que ExampleUser peut charger des objets dans DOC-EXAMPLE-BUCKET uniquement lorsque l'ACL de l'objet est définie sur bucket-owner-full-control :

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

Une fois cette stratégie de compartiment ajoutée, les utilisateurs devront inclure l'ACL requise dans le cadre de leur demande de chargement, comme dans l'exemple suivant :

aws s3 cp example.jpg s3://DOC-EXAMPLE-BUCKET --acl bucket-owner-full-control

Si les utilisateurs ne respectent pas l'exigence relative à l'ACL dans leur demande de chargement, ils recevront le message d'erreur suivant :

« An error occurred (AccessDenied) when calling the PutObject operation: Access Denied »

Pour les objets de votre compartiment détenus par d'autres comptes, le propriétaire de l'objet peut exécuter une commande put-object-acl afin de vous accorder le contrôle de l'objet :

aws s3api put-object-acl --bucket DOC-EXAMPLE-BUCKET --key example.jpg --acl bucket-owner-full-control

L'ACL bucket-owner-full-control accorde au propriétaire du compartiment un accès complet aux objets chargés par un autre compte. Cependant, cette ACL ne suffit pas à octroyer la propriété de l'objet. Pour obtenir automatiquement la propriété des objets chargés avec l'ACL bucket-owner-full-control, vous devez définir la propriété d'objets S3 sur « Propriétaire du compartiment préféré ». Une fois la propriété d'objets S3 mise à jour, le propriétaire du compartiment devient automatiquement propriétaire de tous les nouveaux objets chargés avec bucket-owner-full-control.

Informations connexes

Pourquoi m'est-il impossible d'accéder à un objet qui a été chargé dans mon compartiment Amazon S3 par un autre compte AWS ?

Gestion des compartiments à l'aide de listes de contrôle d'accès (ACL) prédéfinies

Tutoriel IAM : Déléguer l'accès entre comptes AWS à l'aide de rôles IAM

Mappage des autorisations ACL et de stratégie d'accès

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois