Résolution des problèmes - Amazon Simple Storage Service

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 AccessControlListNotSupportedd'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 --key object-key-name --body doc-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 InvalidBucketAclWithObjectOwnershipd'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