Ações do Amazon S3
O Amazon S3 define um conjunto de permissões que você pode especificar em uma política. Estas são palavras-chave e cada uma mapeia para uma operação específica do Amazon S3. Para obter mais informações sobre as operações do Amazon S3, consulte Ações na Referência da API do Amazon Simple Storage Service.
Para ver como especificar permissões em uma política do Amazon S3, revise os exemplos de políticas a seguir. Para obter uma lista de ações, recursos e chaves de condição do Amazon S3 para uso em políticas, consulte Ações, recursos e chaves de condição do Amazon S3. Para obter uma lista completa das ações do Amazon S3, consulte Ações.
Tópicos
Exemplo: operações de objeto
O seguinte exemplo de política de bucket concede as permissões s3:PutObject
e s3:PutObjectAcl
a um usuário (Dave). Se você remover o elemento Principal
, poderá anexar a política a um usuário. Estas são operações de objetos. Assim, a parte de relative-id
do ARN do Resource
identifica objetos (awsexamplebucket1/*
). Para obter mais informações, consulte Recursos do 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
/*" } ] }
Permissões para todas as ações do Amazon S3
Você pode usar um curinga para conceder permissão para todas as ações do Amazon S3.
"Action": "*"
Exemplo: operações de bucket
O exemplo a seguir de política de usuário concede as permissões s3:CreateBucket
, s3:ListAllMyBuckets
e s3:GetBucketLocation
a um usuário. Para todas essas permissões, defina a parte de Resource
ARN de relative-id
como “*”. Para todas as outras ações de bucket, você deve especificar um nome de bucket. Para obter mais informações, consulte Recursos do Amazon S3.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::*" ] } ] }
Política de acesso ao console
Se um usuário quiser usar o AWS Management Console para visualizar buckets e o conteúdo de qualquer um desses buckets, o usuário deverá ter as permissões s3:ListAllMyBuckets
e s3:GetBucketLocation
. Para obter um exemplo, consulte Política de acesso ao console no post de blog Escrever políticas do IAM: como conceder acesso a um bucket do S3
Exemplo: operações de sub-recursos de bucket
O seguinte exemplo de política de usuário concede a permissão s3:GetBucketAcl
no bucket
ao usuário Dave.DOC-EXAMPLE-BUCKET1
{ "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
Permissões de DELETE Object
Você pode excluir objetos chamando explicitamente a API DELETE objeto ou configurando seu ciclo de vida (consulte Gerenciando seu ciclo de vida de armazenamento) de modo que o Amazon S3 possa remover os objetos quando seu ciclo de vida expirar. Para bloquear explicitamente usuários ou contas para exclusão de objetos, você deve negar explicitamente as permissões s3:DeleteObject
, s3:DeleteObjectVersion
e s3:PutLifecycleConfiguration
.
Negação explícita
Por padrão, os usuários não têm nenhuma permissão. Mas, à medida que você cria usuários, adiciona usuários a grupos e concede permissões a eles, eles podem obter certas permissões que você não pretendia conceder. Para evitar essas brechas de permissão, você pode elaborar uma política de acesso mais estrita adicionando uma negação explícita.
A política de bucket anterior concede a permissão s3:GetBucketAcl
do bucket
ao usuário Dave. Neste exemplo, você nega explicitamente ao usuário Dave permissões DELETE do objeto. A negação explícita sempre se sobrepõe a qualquer outra permissão concedida. Veja a seguir um exemplo de política de acesso revisada com a negação explícita adicionada.DOC-EXAMPLE-BUCKET1
{ "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:::", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] }, { "Sid": "statement2", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::
DOC-EXAMPLE-BUCKET1
/*123456789012
:user/Dave" }, "Action": [ "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] } ] }
DOC-EXAMPLE-BUCKET1
/*
Exemplo: operações de conta
O exemplo a seguir de política de usuário concede a permissão s3:GetAccountPublicAccessBlock
a um usuário. Para todas essas permissões, defina o valor Resource
como "*"
. Para obter mais informações, consulte Recursos do Amazon S3.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"statement1", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }