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.
Conditions préalables à la désactivation des listes ACL
Si l'ACL de votre bucket accorde un accès en dehors de la Compte AWS vôtre, avant de désactiver les ACL, 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 ACL, votre demande d'application du paramètre Propriétaire du compartiment appliqué pour désactiver les listes ACL échoue et renvoie le code d'erreur InvalidBucketAclWithObjectOwnership. Nous vous recommandons également de revoir les autorisations ACL de votre objet et de les migrer vers votre stratégie 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 des listes ACL.
Chacune de vos listes ACL de compartiment et d'objet existantes possède un équivalent dans une stratégie IAM. Les exemples de stratégie de compartiment suivants montrent comment les autorisations READ
et WRITE
pour les listes ACL de compartiment et d'objet correspondent aux autorisations IAM. Pour plus d'informations sur la façon dont chaque liste ACL se traduit par des autorisations IAM, veuillez consulter 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 stratégies de compartiment vous montrent comment effectuer la migration des autorisations de READ
et de WRITE
pour les compartiments et les objets pour un Compte AWS tiers vers une stratégie de compartiment. Les listes ACL READ_ACP
et WRITE_ACP
sont moins pertinentes pour les stratégies, car elles accordent des autorisations liées à l'ACL (s3:GetBucketAcl
, s3:GetObjectAcl
, s3:PutBucketAcl
, et s3:PutObjectAcl
).
Exemple : liste ACL READ
pour un compartiment
Si votre bucket possède 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:ListBucketVersions
des s3:ListBucketMultipartUploads
autorisations pour votre bucket.
{ "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:::DOC-EXAMPLE-BUCKET
" } ] }
Exemple : listes ACL READ
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:::DOC-EXAMPLE-BUCKET
/*" } ] }
Cet exemple d'élément de ressource accorde l'accès à un objet spécifique.
"Resource": "arn:aws:s3:::
DOC-EXAMPLE-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:::DOC-EXAMPLE-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.
-
Choisissez l’onglet Permissions (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 Buckets (Compartiments), choisissez le nom du compartiment qui contient votre objet.
-
Dans la liste Objets, choisissez le nom de votre objet.
-
Choisissez l’onglet Permissions (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 Permissions (Autorisations), sous Bucket Policy (Stratégie de compartiment), choisissez Edit (Modifier).
-
Dans la boîte Policy (Stratégie), ajoutez ou mettez à jour la stratégie de compartiment.
Si vous souhaitez consulter des exemples de politiques de compartiment, consultez Exemples de stratégies de compartiment et Exemples de démonstrations.
-
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 la get-bucket-acl
AWS CLI commande suivante : aws s3api get-bucket-acl --bucket
DOC-EXAMPLE-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 Propriétaire du compartiment appliqué et désactiver les listes ACL, vous devez migrer ces autorisations pour le compte tiers vers une politique de compartiment.{ "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 d'autres exemples de listes ACL, voir Exemples de démonstrations.
-
Migrez les autorisations ACL de votre compartiment vers une stratégie de compartiment :
Cet exemple de stratégie 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
DOC-EXAMPLE-BUCKET
--policyfile://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:::DOC-EXAMPLE-BUCKET
", "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" } ] }Si vous souhaitez consulter d'autres exemples de politiques de compartiment, consultez Exemples de stratégies de compartiment et Exemples de démonstrations.
-
Pour renvoyer l'ACL pour un objet spécifique, utilisez la get-object-acl
AWS CLI commande. aws s3api get-object-acl --bucket
DOC-EXAMPLE-BUCKET
--keyEXAMPLE-OBJECT-KEY
-
Si nécessaire, migrez les autorisations ACL d'objet vers votre stratégie de compartiment.
Cet exemple d'élément de ressource accorde l'accès à un objet spécifique dans une stratégie de compartiment.
"Resource": "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/EXAMPLE-OBJECT-KEY
" -
Réinitialisez la liste ACL de votre compartiment à la liste ACL par défaut.
aws s3api put-bucket-acl --bucket
DOC-EXAMPLE-BUCKET
--acl private -
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets
Exemples de démonstrations
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 Propriétaire du compartiment appliqué pour désactiver les listes ACL pour un compartiment de destination de journalisation des accès au serveur (également appelé compartiment cible), vous devez migrer les autorisations ACL de compartiment pour le groupe de livraison des 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 stratégie 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
DOC-EXAMPLE-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:::DOC-EXAMPLE-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
DOC-EXAMPLE-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 vos listes ACL d'objet accordent un accès public en lecture à tous les objets de votre compartiment, vous pouvez migrer ces autorisations ACL vers une stratégie 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 stratégie de compartiment
-
Pour accorder un accès public en lecture à tous les objets de votre compartiment, ajoutez la stratégie de compartiment suivante, en remplaçant les exemples de valeurs.
aws s3api put-bucket-policy --bucket
DOC-EXAMPLE-BUCKET
--policy file://policy.json
policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" ] } ] }Pour accorder l'accès public à un objet spécifique dans une stratégie de compartiment, utilisez le format suivant pour l'élément
Resource
."Resource": "arn:aws:s3:::
DOC-EXAMPLE-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:::
DOC-EXAMPLE-BUCKET
/PREFIX/
*" -
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets
Accordez ElastiCache à Amazon pour Redis l'accès à votre compartiment S3
Vous pouvez exporter votre sauvegarde ElastiCache pour Redis 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 imposé par le propriétaire du compartiment pour désactiver les ACL. 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 ElastiCache pour Redis vers une politique de bucket
-
Ajoutez la stratégie de compartiment suivante à votre compartiment, en remplaçant les exemples de valeurs.
aws s3api put-bucket-policy --bucket
DOC-EXAMPLE-BUCKET
--policy file://policy.json
policy.json: "Id": "Policy15397346", "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:::DOC-EXAMPLE-BUCKET
", "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" ] } ] } -
Réinitialisez la liste ACL de votre compartiment à la liste ACL par défaut :
aws s3api put-bucket-acl --bucket
DOC-EXAMPLE-BUCKET
--acl private -
Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets