Esta página fornece uma visão geral do bucket e políticas de usuário no Amazon S3 e descreve os elementos básicos de uma política do AWS Identity and Access Management (IAM). Cada elemento listado vincula mais detalhes sobre esse elemento e exemplos de como usá-lo.
Consulte uma lista completa de ações, recursos e condições do Amazon S3 em Actions, resources, and condition keys for Amazon S3 na Referência de autorização do serviço.
Para ter mais informações sobre as permissões referentes a operações de API do S3 de acordo com os tipos de recurso do S3, consulte Permissões obrigatórias para operações de API do Amazon S3.
No sentido mais básico, uma política contém os seguintes elementos:
-
Resource: o bucket, o objeto, o ponto de acesso ou o trabalho do Amazon S3 ao qual a política se aplica. Use o nome do recurso da Amazon (ARN) do bucket, do objeto, do ponto de acesso ou do trabalho para identificar o recurso.
Um exemplo de operações em nível de bucket:
"Resource": "arn:aws:s3:::
bucket_name
"Exemplos de operação em nível de objeto:
-
"Resource": "arn:aws:s3:::
para todos os objetos no bucket.bucket_name/*
" -
"Resource": "arn:aws:s3:::
para objetos com um prefixo específico no bucket.bucket_name/prefix/*
"
Para ter mais informações, consulte Recursos de políticas para o Amazon S3.
-
-
Actions: para cada recurso, o Amazon S3 comporta um conjunto de operações. Você identifica as operações de recursos que permitirão (ou negarão) usando palavras-chave de ação.
Por exemplo, a permissão
s3:ListBucket
autoriza o usuário a usar a operação ListObjectsV2 do Amazon S3. (A permissãos3:ListBucket
é um caso em que o nome da ação não é associado diretamente ao nome da operação.) Para obter mais informações sobre como usar ações do Amazon S3, consulte Ações de políticas para o Amazon S3. Para obter uma lista completa de ações do Amazon S3, consulte Ações na Referência de API do Amazon Simple Storage Service. -
Effect: qual será o efeito quando o usuário solicitar a ação específica: pode ser
Allow
ouDeny
.Se você não conceder (permitir) explicitamente acesso a um recurso, o acesso estará implicitamente negado. Você também pode negar acesso explicitamente a um recurso. Você poderia fazer isso para garantir que um usuário não possa acessar o recurso, mesmo se uma política diferente conceder acesso. Para obter mais informações, consulte Elementos de política JSON do IAM: efeito no Guia do usuário do IAM.
-
Principal: a conta ou o usuário que tem permissão de acesso a ações e recursos na declaração. Em uma política de bucket, o principal é o usuário, a conta, o serviço ou outra entidade que receba essa permissão. Para ter mais informações, consulte Entidades principais para políticas de bucket.
-
Condition: condições para quando uma política está em vigor. Você pode usar chaves de toda a AWS e chaves específicas do Amazon S3 para especificar condições em uma política de acesso do Amazon S3. Para ter mais informações, consulte Exemplos de políticas de bucket usando chaves de condição.
O exemplo de política de bucket a seguir mostra os elementos Effect
, Principal
, Action
e Resource
. Essa política permite ao
, um usuário na conta Akua
, as permissões 123456789012
s3:GetObject
, s3:GetBucketLocation
e s3:ListBucket
do Amazon S3 no bucket
.amzn-s3-demo-bucket1
{ "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Akua
" }, "Action": [ "s3:GetObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1
/*", "arn:aws:s3:::amzn-s3-demo-bucket1
" ] } ] }
Consulte informações completas sobre a linguagem de políticas em Políticas e permissões no IAM e em Referência de política JSON do IAM no Guia do usuário do IAM.
Delegação de permissão
Se uma Conta da AWS for proprietária de um recurso, ela poderá conceder essas permissões a outra Conta da AWS. Essa conta pode então delegar essas permissões, ou um subconjunto delas, para usuários da conta. Isso é chamado de delegação de permissão. No entanto, uma conta que recebe permissões de outra conta não pode delegar permissão entre contas para outra Conta da AWS.
Propriedade de bucket e objeto do Amazon S3
Buckets e objetos são recursos do Amazon S3. Por padrão, apenas o proprietário dos recursos pode acessá-los. O proprietário do recurso refere-se à Conta da AWS que criou o recurso. Por exemplo:
-
A Conta da AWS que você usa para criar buckets e carregar objetos é a proprietária desses recursos.
-
Se você carregar um objeto usando credenciais de função ou usuário do AWS Identity and Access Management (IAM), a Conta da AWS à qual o usuário ou a função pertence será proprietária do objeto.
-
Um proprietário do bucket pode conceder permissões entre contas à outra Conta da AWS (ou aos usuários em outra conta) para carregar objetos. Nesse caso, a Conta da AWS que carregar os objetos será proprietária deles. O proprietário do bucket não tem permissões nos objetos de propriedade de outras contas, com as seguintes exceções:
-
O proprietário do bucket paga as faturas. O proprietário do bucket pode negar acesso a todos os objetos ou excluir objetos no bucket, independentemente de quem o possui.
-
O proprietário do bucket pode arquivar todos os objetos ou restaurar os objetos arquivados, independentemente de quem os possui. Arquivo refere-se à classe de armazenamento usada para armazenar os objetos. Para obter mais informações, consulte Gerenciar o ciclo de vida dos objetos.
-
Autenticação de solicitação e propriedade
Todas as solicitações para um bucket são autenticadas ou não autenticadas. As solicitações autenticadas devem incluir um valor de assinatura que autentica o remetente da solicitação. Para solicitações não autenticadas, isso não é necessário. Consulte mais informações sobre a autenticação de solicitações em Making requests na Referência da API do Amazon S3.
Um proprietário do bucket pode permitir solicitações não autenticadas. Por exemplo, solicitações PutObject não autenticadas são permitidas quando um bucket tem uma política pública de bucket, ou quando uma ACL do bucket concede acesso WRITE
ou FULL_CONTROL
ao grupo All
Users
ou ao usuário anônimo especificamente. Para obter mais informações sobre políticas de bucket público e listas de controle de acesso (ACLs) públicas, consulte O significado de "público".
Todas as solicitações não autenticadas são feitas pelo usuário anônimo. Esse usuário é representado em ACLs pelo ID de usuário canônico específico 65a011a29cdf8ec533ec3d1ccaae921c
. Se for feito o upload de um objeto em um bucket por meio de uma solicitação não autenticada, o usuário anônimo será proprietário o objeto. A ACL padrão do objeto concede FULL_CONTROL
ao usuário anônimo como o proprietário do objeto. Portanto, o Amazon S3 permite que solicitações não autenticadas recuperem o objeto ou modifiquem a ACL dele.
Para evitar que os objetos sejam modificados pelo usuário anônimo, recomendamos que você não implemente políticas de bucket que permitam gravações públicas anônimas em seu bucket ou use ACLs que concedam ao usuário anônimo acesso de gravação ao bucket. Você pode aplicar esse comportamento recomendado usando o Bloqueio de acesso público do Amazon S3.
Para obter mais informações sobre como bloquear o acesso público, consulte Bloquear o acesso público ao armazenamento do Amazon S3. Para obter mais informações sobre ACLs, consulte Visão geral da lista de controle de acesso (ACL).
Importante
Recomendamos que você não use credenciais de usuário raiz da Conta da AWS para fazer solicitações autenticadas. Em vez disso, crie um perfil do IAM e conceda acesso total a ele. Usuários com esse perfil são conhecidos como usuários administradores. Em vez de usar credenciais de usuário raiz da Conta da AWS, você pode usar credenciais atribuídas ao perfil administrador para interagir com a AWS e realizar tarefas, como criar um bucket, criar usuários e conceder permissões a eles. Para ter mais informações, consulte Credenciais de segurança da AWS e Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.