Actions Amazon S3 - Amazon Simple Storage Service

Actions Amazon S3

Amazon S3 définit un ensemble d'autorisations que vous spécifiez dans une stratégie. Il s'agit de mots-clés, chacun d'entre eux mappé à une opération Amazon S3 spécifique. Pour de plus amples informations sur les opérations Amazon S3, veuillez consulter Actions dans la Référence d'API Amazon Simple Storage Service.

Pour savoir comment spécifier des autorisations dans une stratégie Amazon S3, veuillez consulter les exemples de stratégies suivants. Pour obtenir la liste des actions, des ressources et des clés de condition Amazon S3 à utiliser dans les stratégies, veuillez consulter Actions, ressources et clés de condition pour Amazon S3. Pour obtenir la liste complète des actions Amazon S3, consultez Actions.

L'exemple de stratégie de compartiment suivant octroie les autorisations s3:PutObject et s3:PutObjectAcl à un utilisateur (Dave). Si vous supprimez l'élément Principal, vous pouvez attacher la stratégie à un utilisateur. Ceci correspond à des opérations sur les objets. En conséquence, la partie relative-id de l'ARN Resource identifie des objets (awsexamplebucket1/*). Pour de plus amples informations, veuillez consulter Ressources Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901:user/Dave" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::awsexamplebucket1/*" } ] }

Autorisations pour toutes les actions Amazon S3

Vous pouvez utiliser un caractère générique pour octroyer une autorisation à toutes les actions Amazon S3.

"Action": "*"

L'exemple de stratégie d'utilisateur suivant octroie les autorisations s3:CreateBucket, s3:ListAllMyBuckets et s3:GetBucketLocation à un utilisateur. Pour toutes ces autorisations, définissez la partie relative-id de l’ARN Resource sur « * ». Pour toutes les autres actions de compartiment, vous devez spécifier un nom de compartiment. Pour de plus amples informations, veuillez consulter Ressources Amazon S3.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::*" ] } ] }

Stratégie pour l'accès à la console

Si un utilisateur souhaite utiliser la AWS Management Console pour afficher les compartiments et le contenu de l'un de ces compartiments, il doit disposer des autorisations s3:ListAllMyBuckets et s3:GetBucketLocation. Pour obtenir un exemple, consultez Stratégie pour l'accès à la console dans l'article de blog Writing IAM Policies: How to Grant Access to an S3 Bucket.

La stratégie d'utilisateur suivante octroie l'autorisation s3:GetBucketAcl sur le compartiment DOC-EXAMPLE-BUCKET1 à l'utilisateur Dave.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1" ] } ] }

Autorisations DELETE Object

Vous pouvez supprimer des objets soit en appelant explicitement l'API DELETE Object, soit en configurant son cycle de vie (consultez Gestion du cycle de vie de votre stockage) afin qu'Amazon S3 puisse retirer les objets lorsqu'ils arrivent à la fin de leur cycle de vie. Pour bloquer explicitement des utilisateurs ou des comptes de supprimer des objets, vous devez explicitement leur refuser les autorisations s3:DeleteObject, s3:DeleteObjectVersion et s3:PutLifecycleConfiguration.

Refus explicite

Par défaut, les utilisateurs ne disposent d'aucune autorisation. Toutefois, lorsque vous créez des utilisateurs, ajoutez des utilisateurs à des groupes et leur accordez des autorisations, ils peuvent obtenir certaines autorisations que vous n'aviez pas l'intention d'accorder. Pour éviter ces failles d'autorisation, vous pouvez écrire une politique d'accès plus stricte en ajoutant un refus explicite.

La politique de compartiment précédente accorde le compartiment s3:GetBucketAclautorisationDOC-EXAMPLE-BUCKET1 à l'utilisateur Dave. Dans cet exemple, vous refusez explicitement que l'utilisateur Dave SUPPRIME les autorisations d'objet. Le refus explicite a toujours priorité sur n'importe quelle autre autorisation accordée. Vous trouverez, ci-après, l'exemple révisé de politique d'accès avec un refus explicite ajouté.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:GetObjectVersion", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Dave" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] } ] }

L'exemple de stratégie d'utilisateur suivant octroie les autorisations s3:GetAccountPublicAccessBlock à un utilisateur. Pour ces autorisations, définissez la valeur Resource sur "*". Pour de plus amples informations, veuillez consulter Ressources Amazon S3.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }