Ações do Amazon S3 - Amazon Simple Storage Service

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.

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": "*"

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.

O seguinte exemplo de política de usuário concede a permissão s3:GetBucketAcl no bucket DOC-EXAMPLE-BUCKET1 ao usuário 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" ] } ] }
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 DOC-EXAMPLE-BUCKET1 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.

{ "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/*" ] } ] }

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":[ "*" ] } ] }