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.
Si l'ACL de votre bucket accorde un accès en dehors de votre bucket Compte AWS, avant de désactiver ACLs, vous devez migrer les autorisations ACL de votre bucket vers votre politique de bucket et réinitialiser votre ACL de bucket sur l'ACL privée par défaut. Si vous ne migrez pas ces compartiments ACLs, votre demande d'application du paramètre de désactivation imposé par le propriétaire du compartiment ACLs échoue et renvoie le InvalidBucketAclWithObjectOwnershipcode d'erreur. Nous vous recommandons également de revoir les autorisations ACL de votre objet et de les migrer vers votre politique de compartiment. Pour obtenir plus d’informations sur les autres conditions préalables suggérées, consultez la page Conditions préalables à la désactivation ACLs.
Chacun de vos compartiments et objets existants ACLs possède un équivalent dans une politique IAM. Les exemples de politique de compartiment suivants vous montrent comment READ
WRITE
les autorisations relatives aux compartiments et aux objets sont ACLs associées aux autorisations IAM. Pour plus d’informations sur la façon dont chaque liste ACL se traduit par des autorisations IAM, consultez Mappage des autorisations de liste ACL et de stratégie d’accès.
Pour consulter et migrer les autorisations ACL vers des stratégies de compartiment, consultez les rubriques suivantes.
Rubriques
Exemples de stratégies de compartiment
Ces exemples de politiques de compartiment vous montrent comment migrer les autorisations ACL de WRITE
compartiment READ
et d'objet pour un tiers Compte AWS vers une politique de compartiment. READ_ACP
et WRITE_ACP
ACLs sont moins pertinents pour les politiques car ils accordent des autorisations liées à l'ACL (s3:GetBucketAcl
, s3:GetObjectAcl
s3:PutBucketAcl
, ets3:PutObjectAcl
).
Exemple : liste ACL READ
pour un compartiment
Si votre bucket dispose d'une READ
ACL qui Compte AWS
autorise la liste du contenu de votre bucket, vous pouvez écrire une politique de bucket qui accorde 111122223333
s3:ListBucket
s3:ListBucketMultipartUploads
des autorisations pour votre bucket. s3:ListBucketVersions
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to list the objects in a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
111122223333
:root" ] }, "Action": [ "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::" } ] }
amzn-s3-demo-bucket
Exemple — READ
ACLs pour chaque objet d'un compartiment
Si chaque objet de votre compartiment dispose d'une READ
ACL qui autorise l'accès à Compte AWS
, vous pouvez rédiger une politique de compartiment qui accorde 111122223333
s3:GetObject
des s3:GetObjectVersion
autorisations à ce compte pour chaque objet de votre compartiment.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Read permission for every object in a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
111122223333
:root" ] }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::/*" } ] }
amzn-s3-demo-bucket
Cet exemple d’élément de ressource accorde l’accès à un objet spécifique.
"Resource": "arn:aws:s3:::
/
amzn-s3-demo-bucket
OBJECT-KEY
"
Exemple : liste ACL WRITE
qui accorde les autorisations d’écriture d’objets dans un compartiment
Si votre compartiment possède une WRITE
ACL qui Compte AWS
autorise l'écriture d'objets dans votre compartiment, vous pouvez rédiger une politique de compartiment qui accorde 111122223333
s3:PutObject
l'autorisation pour votre compartiment.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to write objects to a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
111122223333
:root" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::/*" } ] }
amzn-s3-demo-bucket
Utilisation de la console S3 pour réviser et migrer les autorisations ACL
Pour passer en revue les autorisations ACL d’un compartiment
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans la liste Compartiments, sélectionnez le nom de votre compartiment.
-
Sélectionnez l’onglet Autorisations.
-
Sous Access control list (ACL) (Liste de contrôle d’accès [ACL]), vérifiez les autorisations ACL de votre compartiment.
Pour passer en revue les autorisations ACL d’un objet
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans la liste Compartiments, choisissez le nom du compartiment qui contient votre objet.
-
Dans la liste Objets, choisissez le nom de votre objet.
-
Sélectionnez l’onglet Autorisations.
-
Sous Access control list (ACL) (Liste de contrôle d’accès [ACL]), vérifiez les autorisations ACL de votre objet.
Pour migrer les autorisations ACL et mettre à jour la liste ACL de votre compartiment
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans la liste Compartiments, sélectionnez le nom de votre compartiment.
-
Dans l’onglet Autorisations, sous Politique de compartiment, choisissez Modifier.
-
Dans la boîte Policy (Stratégie), ajoutez ou mettez à jour la politique de compartiment.
Si vous souhaitez consulter des exemples de politiques de compartiment, consultez Exemples de stratégies de compartiment et Exemples de procédures.
-
Sélectionnez Enregistrer les modifications.
-
Mettez à jour la liste ACL de votre compartiment pour supprimer les autorisations ACL à d’autres groupes ou Comptes AWS.
-
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets.
Utilisation du AWS CLI pour vérifier et migrer les autorisations ACL
-
Pour renvoyer l'ACL du bucket correspondant à votre bucket, utilisez get-bucket-acl
AWS CLI commande : aws s3api get-bucket-acl --bucket
amzn-s3-demo-bucket
Par exemple, cette liste ACL de compartiment accorde l’accès en
WRITE
et enREAD
à un compte tiers. Dans cette liste ACL, le compte tiers est identifié par l’ID d’utilisateur canonique. Pour appliquer le paramètre imposé par le propriétaire du bucket et le désactiver ACLs, vous devez migrer ces autorisations pour le compte tiers vers une politique de bucket.{ "Owner": { "DisplayName": "
DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "DisplayName": "THIRD-PARTY-EXAMPLE-ACCOUNT
", "ID": "72806de9d1ae8b171cca9e2494a8d1335dfced4ThirdPartyAccountCanonicalUserID
", "Type": "CanonicalUser" }, "Permission": "READ" }, { "Grantee": { "DisplayName": "THIRD-PARTY-EXAMPLE-ACCOUNT
", "ID": "72806de9d1ae8b171cca9e2494a8d1335dfced4ThirdPartyAccountCanonicalUserID
", "Type": "CanonicalUser" }, "Permission": "WRITE" } ] }Pour un autre exemple ACLs, voirExemples de procédures.
-
Migrez les autorisations ACL de votre compartiment vers une politique de compartiment :
Cet exemple de politique de compartiment accorde des autorisations
s3:PutObject
ets3:ListBucket
pour un compte tiers. Dans la politique du compartiment, le compte tiers est identifié par l' Compte AWS ID (
).111122223333
aws s3api put-bucket-policy --bucket
--policyamzn-s3-demo-bucket
file://policy.json
policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyForCrossAccountAllowUpload", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333
:root" ] }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }amzn-s3-demo-bucket
Si vous souhaitez consulter d’autres exemples de politiques de compartiment, consultez Exemples de stratégies de compartiment et Exemples de procédures.
-
Pour renvoyer l'ACL d'un objet spécifique, utilisez get-object-acl
AWS CLI commande. aws s3api get-object-acl --bucket
amzn-s3-demo-bucket
--keyEXAMPLE-OBJECT-KEY
-
Si nécessaire, migrez les autorisations ACL d’objet vers votre politique de compartiment.
Cet exemple d’élément de ressource accorde l’accès à un objet spécifique dans une politique de compartiment.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/EXAMPLE-OBJECT-KEY
" -
Réinitialisez la liste ACL de votre compartiment à la liste ACL par défaut.
aws s3api put-bucket-acl --bucket
amzn-s3-demo-bucket
--acl private -
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets.
Exemples de procédures
Les exemples suivants vous montrent comment migrer les autorisations ACL vers des stratégies de compartiment pour des cas d’utilisation spécifiques.
Rubriques
Octroi de l’accès au groupe de livraison des journaux S3 pour la journalisation des accès au serveur
Si vous souhaitez appliquer le paramètre activé par le propriétaire du compartiment à désactiver ACLs pour un compartiment de destination de journalisation de l'accès au serveur (également appelé compartiment cible), vous devez faire migrer les autorisations ACL du bucket pour le groupe de mise à disposition de journaux S3 vers le principal du service de journalisation (logging.s3.amazonaws.com
) dans une politique de compartiment. Pour plus d’informations sur les autorisations de la diffusion des journaux, consultez Autorisations de diffusion de journaux.
Ce compartiment ACL accorde un accès en WRITE
et en READ_ACP
au groupe de mise à disposition des journaux S3 :
{ "Owner": { "DisplayName": "
DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
" }, "Grants": [ { "Grantee": { "Type": "CanonicalUser", "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/s3/LogDelivery" }, "Permission": "WRITE" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/s3/LogDelivery" }, "Permission": "READ_ACP" } ] }
Pour migrer les autorisations ACL du compartiment pour le groupe de mise à disposition du journal S3 vers le principal du service de journalisation dans une politique de compartiment
-
Ajoutez la politique de compartiment suivante à votre compartiment de destination, en remplaçant les exemples de valeurs.
aws s3api put-bucket-policy --bucket
amzn-s3-demo-bucket
--policyfile://policy.json
policy.json: { { "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::
/amzn-s3-demo-bucket
EXAMPLE-LOGGING-PREFIX
*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::SOURCE-BUCKET-NAME
" }, "StringEquals": { "aws:SourceAccount": "SOURCE-AWS-ACCOUNT-ID
" } } } ] } -
Réinitialisez la liste ACL de votre compartiment de destination sur la liste ACL par défaut.
aws s3api put-bucket-acl --bucket
amzn-s3-demo-bucket
--acl private -
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d’objets à votre compartiment de destination.
Accordez un accès public en lecture aux objets se trouvant dans un compartiment.
Si votre objet ACLs accorde un accès public en lecture à tous les objets de votre compartiment, vous pouvez migrer ces autorisations ACL vers une politique de compartiment.
Cette liste ACL d’objet accorde un accès public en lecture à un objet dans un compartiment :
{ "Owner": { "DisplayName": "
DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }
Pour migrer les autorisations ACL publiques en lecture vers une politique de compartiment
-
Pour accorder un accès public en lecture à tous les objets de votre compartiment, ajoutez la politique de compartiment suivante, en remplaçant les exemples de valeurs.
aws s3api put-bucket-policy --bucket
amzn-s3-demo-bucket
--policy file://policy.json
policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] }Pour accorder l’accès public à un objet spécifique dans une politique de compartiment, utilisez le format suivant pour l’élément
Resource
."Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/OBJECT-KEY
"Pour accorder l’accès public à tous les objets avec un préfixe spécifique, utilisez le format suivant pour l’élément
Resource
."Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/PREFIX/
*" -
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets
Accordez à Amazon ElastiCache (Redis OSS) l'accès à votre compartiment S3
Vous pouvez exporter votre sauvegarde ElastiCache (Redis OSS) vers un compartiment S3, ce qui vous permet d'accéder à la sauvegarde depuis l'extérieur ElastiCache. Pour exporter votre sauvegarde vers un compartiment S3, vous devez autoriser ElastiCache la copie d'un instantané dans le compartiment. Si vous avez accordé des autorisations ElastiCache à une ACL de compartiment, vous devez migrer ces autorisations vers une politique de compartiment avant d'appliquer le paramètre de désactivation imposé par le propriétaire du compartiment ACLs. Pour plus d'informations, consultez la section Accorder l' ElastiCache accès à votre compartiment Amazon S3 dans le guide de ElastiCache l'utilisateur Amazon.
L'exemple suivant montre les autorisations ACL du bucket qui accordent des autorisations à ElastiCache.
{ "Owner": { "DisplayName": "
DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER
", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID
", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "READ" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "WRITE" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "READ_ACP" } ] }
Pour migrer les autorisations ACL du bucket pour ElastiCache (Redis OSS) vers une politique de bucket
-
Ajoutez la politique de compartiment suivante à votre compartiment, en remplaçant les exemples de valeurs.
aws s3api put-bucket-policy --bucket
amzn-s3-demo-bucket
--policy file://policy.json
policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "Region
.elasticache-snapshot.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:GetBucketAcl", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
", "arn:aws:s3:::amzn-s3-demo-bucket
/*" ] } ] } -
Réinitialisez la liste ACL de votre compartiment à la liste ACL par défaut :
aws s3api put-bucket-acl --bucket
amzn-s3-demo-bucket
--acl private -
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets