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.
Résolution des problèmes
Lorsque vous appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets S3, les listes de contrôle d’accès (ACL) sont désactivées et vous, en tant que propriétaire du compartiment, possédez automatiquement tous les objets dans votre compartiment. Les listes ACL n'affectent plus les autorisations sur les objets dans votre compartiment. Vous pouvez utiliser des politiques pour accorder des autorisations. Toutes les demandes S3 PUT
doivent spécifier la liste ACL prédéfinie bucket-owner-full-control
ou ne pas spécifier de liste ACL, sinon ces demandes échouent. Pour plus d’informations, consultez Consultez Contrôle de la propriété des objets et désactivation des listes ACL pour votre compartiment.
Si une liste ACL non valide est spécifiée ou si les autorisations ACL de compartiment accordent un accès hors de votre Compte AWS, les erreurs suivantes peuvent s'afficher.
AccessControlListNotSupported
Une fois que vous avez appliqué le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets, les listes ACL sont désactivées. Les demandes de définition ou de mise à jour des listes de contrôle d'accès échouent avec une 400
erreur et renvoient le code AccessControlListNotSupported
d'erreur. Les demandes de lecture de listes ACL sont toujours prises en charge. Les demandes de lecture des listes ACL renvoient toujours une réponse qui affiche un contrôle total pour le propriétaire du compartiment. Dans vos opérations PUT
, vous devez spécifier des listes ACL de contrôle total du propriétaire du compartiment ou ne pas spécifier de liste ACL. Dans le cas contraire, vos opérations PUT
échouent.
L'exemple de put-object
AWS CLI commande suivant inclut l'public-read
ACL prédéfinie.
aws s3api put-object --bucket
DOC-EXAMPLE-BUCKET
--keyobject-key-name
--bodydoc-example-body
--acl public-read
Si le compartiment utilise le paramètre Propriétaire du compartiment appliqué pour désactiver les listes ACL, cette opération échoue et le chargeur reçoit le message d'erreur suivant :
Une erreur s'est produite (AccessControlListNotSupported) lors de l'appel de l'PutObject opération : le bucket n'autorise pas les ACL
InvalidBucketAclWithObjectOwnership
Si vous souhaitez appliquer le paramètre Propriétaire du compartiment appliqué pour désactiver les listes ACL, votre liste ACL de compartiment doit donner le contrôle total uniquement au propriétaire du compartiment. L'ACL de votre bucket ne peut pas donner accès à un groupe externe Compte AWS ou à un autre groupe. Par exemple, si votre CreateBucket
demande impose le nom du propriétaire du bucket et spécifie une ACL du bucket qui donne accès à une Compte AWS adresse externe, votre demande échoue avec une 400
erreur et renvoie le code InvalidBucketAclWithObjectOwnership
d'erreur. De même, si votre demande PutBucketOwnershipControls
définit le paramètre appliqué par le propriétaire du compartiment sur un compartiment doté d'une liste ACL de compartiment qui accorde des autorisations à d'autres utilisateurs, la demande échoue.
Exemple : Une liste ACL de compartiment existante accorde un accès public en lecture.
Par exemple, si une liste ACL de compartiment existante accorde un accès public en lecture, vous ne pouvez pas appliquer le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets tant que vous n'avez pas migré ces autorisations ACL vers une politique de compartiment et que vous n'avez pas réinitialisé votre liste ACL de compartiment à la liste ACL privée par défaut. Pour plus d’informations, consultez Conditions préalables à la désactivation des listes ACL.
Cet exemple de liste ACL de compartiment existante accorde un accès public en lecture.
{ "Owner": { "ID": "
852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
" }, "Grants": [ { "Grantee": { "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }
L'exemple de put-bucket-ownership-controls
AWS CLI commande suivant applique le paramètre imposé par le propriétaire du bucket pour Object Ownership :
aws s3api put-bucket-ownership-controls --bucket
DOC-EXAMPLE-BUCKET
--ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]
Étant donné que la liste ACL du compartiment accorde un accès public en lecture, la demande échoue et renvoie le code d'erreur suivant :
Une erreur s'est produite (InvalidBucketAclWithObjectOwnership) lors de l'appel de l' PutBucketOwnershipControls opération : les ACL du bucket ne peuvent pas être définies avec ObjectOwnership le paramètre BucketOwnerEnforced