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 imposé par le propriétaire du compartiment pour la propriété des objets S3, les listes de contrôle d'accès (ACLs) sont désactivées et vous, en tant que propriétaire du compartiment, êtes automatiquement propriétaire de tous les objets de votre compartiment. ACLsn'affecte plus les autorisations pour les objets de votre bucket. Vous pouvez utiliser des politiques pour accorder des autorisations. Toutes les PUT
demandes S3 doivent soit spécifier le contenu bucket-owner-full-control
analysé, ACL soit ne pas en spécifier unACL, sinon ces demandes échoueront. Pour de plus amples informations, veuillez consulter Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment.
Si une valeur non valide ACL est spécifiée ou si ACL des autorisations de compartiment accordent l'accès à un compartiment en dehors du vôtre Compte AWS, les réponses d'erreur suivantes peuvent s'afficher.
AccessControlListNotSupported
Une fois que vous avez appliqué le paramètre obligatoire du propriétaire du compartiment pour la propriété des objets, ACLs ils sont désactivés. Les demandes de définition ACLs ou de mise à jour ACLs échouent avec une 400
erreur et renvoient le code AccessControlListNotSupported
d'erreur. Les demandes de lecture ACLs sont toujours prises en charge. Les demandes de lecture renvoient ACLs toujours une réponse qui montre que le propriétaire du compartiment a le contrôle total. Dans le cadre de vos PUT
opérations, vous devez soit spécifier le contrôle total du propriétaire du bucket, ACLs soit ne pas spécifier deACL. Dans le cas contraire, vos opérations PUT
échouent.
L'exemple de put-object
AWS CLI commande suivant inclut le fichier public-read
scannéACL.
aws s3api put-object --bucket
amzn-s3-demo-bucket
--keyobject-key-name
--bodydoc-example-body
--acl public-read
Si le compartiment utilise le paramètre imposé par le propriétaire du compartiment pour le désactiverACLs, cette opération échoue et le téléchargeur reçoit le message d'erreur suivant :
Une erreur s'est produite (AccessControlListNotSupported) lors de l'appel de l'PutObject opération : le compartiment ne permet pas ACLs
InvalidBucketAclWithObjectOwnership
Si vous souhaitez appliquer le paramètre de désactivation obligatoire au propriétaire du compartimentACLs, votre compartiment ACL doit donner le contrôle total uniquement au propriétaire du compartiment. Votre bucket ACL ne peut pas donner accès à un groupe externe Compte AWS ou à un autre groupe. Par exemple, si votre CreateBucket
demande définit le propriétaire du bucket comme obligatoire et spécifie un bucket ACL qui donne accès à un espace externe Compte AWS, votre demande échoue avec une 400
erreur et renvoie le code InvalidBucketAclWithObjectOwnership
d'erreur. De même, si votre PutBucketOwnershipControls
demande définit le propriétaire du bucket comme propriétaire sur un bucket dont un bucket ACL accorde des autorisations à d'autres personnes, la demande échoue.
Exemple : Le bucket existant ACL accorde un accès public en lecture
Par exemple, si un bucket existant ACL accorde un accès public en lecture, vous ne pouvez pas appliquer le paramètre imposé par le propriétaire du bucket pour la propriété des objets tant que vous n'avez pas migré ces ACL autorisations vers une politique de compartiment et n'avez pas redéfini le mode privé par défaut de votre bucket ACLACL. Pour de plus amples informations, veuillez consulter Conditions préalables à la désactivation ACLs.
Cet exemple de bucket ACL 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
amzn-s3-demo-bucket
--ownership-controls Rules=[{ObjectOwnership=BucketOwnerEnforced}]
Comme le bucket ACL 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 : le bucket ne peut pas avoir ACLs défini ObjectOwnership le BucketOwnerEnforced paramètre