Désactivation des listes ACL pour tous les nouveaux compartiments et application de la propriété des objets - Amazon Simple Storage Service

Désactivation des listes ACL pour tous les nouveaux compartiments et application de la propriété des objets

Nous vous recommandons de désactiver les listes ACL sur vos compartiments Amazon S3. Vous pouvez le faire en appliquant le paramètre Propriétaire du compartiment appliqué pour la propriété d’objets S3. Lorsque vous appliquez ce paramètre, les listes ACL sont désactivées, vous possédez automatiquement tous les objets de votre compartiment et vous en avez le contrôle total. Pour exiger que tous les nouveaux compartiments soient créés avec des listes ACL désactivées, utilisez des politiques AWS Identity and Access Management (IAM) ou des politiques de contrôle des services AWS Organizations (SCP), comme décrit dans la section suivante.

Pour imposer la propriété des objets aux nouveaux objets sans désactiver les listes ACL, vous pouvez appliquer le paramètre préféré du propriétaire du compartiment. Lorsque vous appliquez ce paramètre, nous vous recommandons vivement de mettre à jour votre stratégie de compartiment afin d’exiger la liste ACL bucket-owner-full-control prédéfinie pour toutes les demandes PUT envoyées à votre compartiment. Les clients doivent également être mis à jour pour envoyer la liste ACL bucket-owner-full-control prédéfinie dans votre compartiment à partir d’autres comptes.

Désactivation des listes ACL pour tous les nouveaux compartiments (application du propriétaire du compartiment)

L’exemple suivant de politique IAM refuse l’autorisation s3:CreateBucket pour un rôle ou un utilisateur IAM spécifique, sauf si le paramètre Propriétaire du compartiment appliqué est appliqué pour Propriété d’objets. La paire de clé-valeur dans le bloc Condition spécifie s3:x-amz-object-ownership comme sa clé et le paramètre BucketOwnerEnforced comme sa valeur. En d’autres termes, l’utilisateur IAM peut créer des compartiments uniquement s’il définit le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets et désactive les listes ACL. Vous pouvez également utiliser cette stratégie comme SCP limite pour votre organisation AWS.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RequireBucketOwnerFullControl", "Action": "s3:CreateBucket", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals": { "s3:x-amz-object-ownership": "BucketOwnerEnforced" } } } ] }

Exiger la liste ACL prédéfinie de contrôle complet du propriétaire du compartiment pour les opérations PUT Amazon S3 (préférence du propriétaire du compartiment)

Avec le paramètre préféré du propriétaire du compartiment pour la propriété de l’objet, vous, en tant que propriétaire du compartiment, possédez et avez le contrôle total sur les nouveaux objets que d’autres comptes écrivent dans votre compartiment avec la liste ACL bucket-owner-full-control prédéfinie. Toutefois, si d’autres comptes écrivent des objets dans votre compartiment sans la liste ACL bucket-owner-full-control prédéfinie, le rédacteur d’objets conserve son accès total. En tant que propriétaire du compartiment, vous pouvez implémenter une stratégie de compartiment qui n’autorise les écritures que si elles spécifient la liste ACL bucket-owner-full-control prédéfinie.

Note

Si les listes ACL sont désactivées avec le paramètre Propriétaire du compartiment appliqué, en tant que propriétaire du compartiment, vous possédez automatiquement tous les objets de votre compartiment et en avez le contrôle total. Vous n’avez pas besoin d’utiliser cette section pour mettre à jour votre stratégie de compartiment afin d’imposer la propriété de l’objet au propriétaire du compartiment.

La stratégie de compartiment suivante spécifie que le compte 111122223333 ne peut charger des objets amzn-s3-demo-bucket que si la liste ACL de l’objet est définie sur bucket-owner-full-control. Veillez à remplacer 111122223333 par voter compte et amzn-s3-demo-bucket par le nom de votre compartiment.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "OnlyAllowWritesToMyBucketWithBucketOwnerFullControl", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/ExampleUser" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

Voici un exemple d’opération de copie qui inclut la liste ACL bucket-owner-full-control prédéfinie à l’aide d’AWS Command Line Interface (AWS CLI).

aws s3 cp file.txt s3://amzn-s3-demo-bucket --acl bucket-owner-full-control

Une fois la stratégie de compartiment mise en vigueur, si le client n’inclut pas la liste ACL prédéfinie bucket-owner-full-control, l’opération échoue et le chargeur reçoit l’erreur suivante :

Une erreur s’est produite (AccessDenied) lors de l’appel de l’opération PutObject : Accès refusé.

Note

Si les clients doivent accéder aux objets après le chargement, vous devez accorder des autorisations supplémentaires au compte de chargement. Pour en savoir plus sur l’octroi aux comptes de l’accès à vos ressources, consultez Procédures détaillées qui utilisent des politiques pour gérer l’accès à vos ressources Amazon S3.