Conditions préalables à la désactivation ACLs - 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.

Conditions préalables à la désactivation ACLs

Si votre bucket ACL accorde un accès en dehors de votre Compte AWS, avant de le désactiverACLs, vous devez migrer ACL les autorisations de votre compartiment vers votre politique de compartiment et redéfinir le mode privé par défaut de votre compartiment ACLACL. Si vous ne migrez pas ces compartimentsACLs, 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 ACL autorisations relatives à vos objets 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 IAM politique. Les exemples de politique de compartiment suivants vous montrent comment READ WRITE les autorisations relatives aux compartiments et aux objets ACLs sont IAM associées aux autorisations. Pour plus d'informations sur la façon dont chacun ACL se traduit en IAM autorisations, consultezCartographie des ACL autorisations et des autorisations liées à la politique d'accès.

Pour consulter et migrer ACL les autorisations vers les politiques de compartiment, consultez les rubriques suivantes.

Exemples de stratégies de compartiment

Ces exemples de politiques de bucket vous montrent comment migrer READ et les ACL autorisations de WRITE bucket et d'objet pour un tiers. Compte AWS à une politique de compartiment. READ_ACPet WRITE_ACP ACLs sont moins pertinents pour les politiques car ils accordent ACL des autorisations associées (s3:GetBucketAcls3:GetObjectAcl,s3:PutBucketAcl, ets3:PutObjectAcl).

Exemple — READ ACL pour un seau

Si votre seau contenait READ ACL une subvention Compte AWS 111122223333autorisation de répertorier le contenu de votre compartiment, vous pouvez rédiger une politique de compartiment qui accorde s3:ListBucket s3:ListBucketVersions des s3:ListBucketMultipartUploads autorisations pour votre compartiment.

{ "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 — READ ACLs pour chaque objet d'un compartiment

Si chaque objet de votre compartiment possède un identifiant READ ACL qui donne accès à Compte AWS 111122223333, vous pouvez rédiger une politique de compartiment qui accorde 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 — WRITE ACL qui autorise l'écriture d'objets dans un compartiment

Si votre compartiment WRITE ACL contient un Compte AWS 111122223333autorisation d'écrire des objets dans votre compartiment, vous pouvez rédiger une politique de compartiment qui accorde l's3:PutObjectautorisation d'écrire des objets dans 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 vérifier et migrer ACL les autorisations

Pour consulter les ACL autorisations d'un bucket
  1. Connectez-vous au AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Compartiments, sélectionnez le nom de votre compartiment.

  3. Choisissez l’onglet Permissions (Autorisations).

  4. Sous Liste de contrôle d'accès (ACL), passez en revue ACL les autorisations de votre bucket.

Pour vérifier les ACL autorisations d'un objet
  1. Connectez-vous au AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Buckets (Compartiments), choisissez le nom du compartiment qui contient votre objet.

  3. Dans la liste Objets, choisissez le nom de votre objet.

  4. Choisissez l’onglet Permissions (Autorisations).

  5. Sous Liste de contrôle d'accès (ACL), passez en revue ACL les autorisations de vos objets.

Pour migrer ACL les autorisations et mettre à jour votre compartiment ACL
  1. Connectez-vous au AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Compartiments, sélectionnez le nom de votre compartiment.

  3. Dans l'onglet Permissions (Autorisations), sous Bucket Policy (Stratégie de compartiment), choisissez Edit (Modifier).

  4. 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.

  5. Sélectionnez Enregistrer les modifications.

  6. Mettez à jour votre compartiment ACL pour supprimer les ACL subventions accordées à d'autres groupes ou Comptes AWS.

  7. Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets.

Utilisation de AWS CLI pour vérifier et migrer ACL les autorisations

  1. Pour retourner le seau ACL à votre seau, utilisez le get-bucket-acl AWS CLI commande :

    aws s3api get-bucket-acl --bucket amzn-s3-demo-bucket

    Par exemple, ce compartiment ACL accorde WRITE un READ accès à un compte tiers. Dans ce ACL cas, le compte tiers est identifié par l'ID utilisateur canonique. Pour appliquer le paramètre imposé par le propriétaire du bucket et le désactiverACLs, 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 exempleACLs, voirExemples de démonstrations.

  2. Migrez ACL les autorisations de votre bucket vers une politique de bucket :

    Cet exemple de stratégie de compartiment accorde des autorisations s3:PutObject et s3:ListBucket pour un compte tiers. Dans la politique du compartiment, le compte tiers est identifié par Compte AWS Identifiant (111122223333).

    aws s3api put-bucket-policy --bucket DOC-EXAMPLE-BUCKET --policy 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:::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.

  3. Pour renvoyer le ACL pour un objet spécifique, utilisez le get-object-acl AWS CLI commande.

    aws s3api get-object-acl --bucket amzn-s3-demo-bucket --key EXAMPLE-OBJECT-KEY
  4. Si nécessaire, migrez ACL les autorisations des objets vers votre politique 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:::amzn-s3-demo-bucket/EXAMPLE-OBJECT-KEY"
  5. Réinitialisez le paramètre par défaut ACL pour votre compartimentACL.

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  6. 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 des ACL autorisations vers des politiques de compartiment pour des cas d'utilisation spécifiques.

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 forcé 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 ACL autorisations du compartiment 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 WRITE un READ_ACP accès au groupe de mise à disposition de 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 ACL les autorisations de compartiment pour le groupe de mise à disposition de journaux S3 vers le principal du service de journalisation dans une politique de compartiment
  1. 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 --policy file://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" } } } ] }
  2. Rétablissez ACL la valeur par défaut de votre compartiment de destinationACL.

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  3. 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 ACL autorisations vers une politique de compartiment.

Cet objet ACL accorde un accès public en lecture à un objet d'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 ACL autorisations de lecture publiques vers une politique de compartiment
  1. 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 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 stratégie 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/*"
  2. Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets

Accordez à Amazon ElastiCache (RedisOSS) l'accès à votre compartiment S3

Vous pouvez exporter votre sauvegarde ElastiCache (RedisOSS) 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 à un compartimentACL, 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 compartimentACLs. 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 ACL autorisations de compartiment 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 ACL les autorisations de compartiment pour ElastiCache (RedisOSS) vers une politique de compartiment
  1. Ajoutez la stratégie 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/*" ] } ] }
  2. Rétablissez ACL les valeurs par défaut de votre compartiment ACL :

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  3. Appliquez le paramètre Propriétaire du compartiment appliqué pour Propriété d'objets