Como o Amazon S3 funciona com o IAM
Antes de usar o IAM para gerenciar o acesso ao Amazon S3, saiba quais recursos do IAM estão disponíveis para uso com o Amazon S3.
Atributo do IAM | Suporte ao Amazon S3 |
---|---|
Sim |
|
Sim |
|
Sim |
|
Sim |
|
Sim |
|
Sim |
|
Parcial |
|
Sim |
|
Sim |
|
Sim |
|
Parcial |
Consulte uma visão geral de como o Amazon S3 e outros serviços da AWS funcionam com a maioria dos recursos do IAM em Serviços da AWS que funcionam com o IAM no Guia do usuário do IAM.
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.
Políticas baseadas em identidade do Amazon S3
Compatível com políticas baseadas em identidade: Sim
As políticas baseadas em identidade são documentos de políticas de permissões JSON que você pode anexar a uma identidade, como usuário, grupo de usuários ou perfil do IAM. Essas políticas controlam quais ações os usuários e perfis podem realizar, em quais recursos e em que condições. Para saber como criar uma política baseada em identidade, consulte Defina permissões personalizadas do IAM com políticas gerenciadas pelo cliente no Guia do usuário do IAM.
Com as políticas baseadas em identidade do IAM, é possível especificar ações ou recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Você não pode especificar a entidade principal em uma política baseada em identidade porque ela se aplica ao usuário ou perfil ao qual ela está anexada. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte Referência de elementos da política JSON do IAM no Guia do Usuário do IAM.
Exemplos de políticas baseadas em identidade para o Amazon S3
Consulte exemplos de políticas baseadas em identidade do Amazon S3 em Políticas baseadas em identidade do Amazon S3.
Políticas baseadas em recurso no Amazon S3
Compatível com políticas baseadas em recursos: sim
Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. São exemplos de políticas baseadas em recursos as políticas de confiança de perfil do IAM e as políticas de bucket do Amazon S3. Em serviços que suportem políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. Para o recurso ao qual a política está anexada, a política define quais ações um principal especificado pode executar nesse recurso e em que condições. Você deve especificar uma entidade principal em uma política baseada em recursos. As entidades principais podem incluir contas, usuários, funções, usuários federados ou Serviços da AWS.
Para permitir o acesso entre contas, você pode especificar uma conta inteira ou as entidades do IAM em outra conta como a entidade principal em uma política baseada em atributo. Adicionar uma entidade principal entre contas à política baseada em recurso é apenas metade da tarefa de estabelecimento da relação de confiança. Quando a entidade principal e o recurso estão em diferentes Contas da AWS, um administrador do IAM da conta confiável também deve conceder à entidade principal (usuário ou perfil) permissão para acessar o recurso. Eles concedem permissão ao anexar uma política baseada em identidade para a entidade. No entanto, se uma política baseada em recurso conceder acesso a uma entidade principal na mesma conta, nenhuma política baseada em identidade adicional será necessária. Consulte mais informações em Acesso a recursos entre contas no IAM no Guia do usuário do IAM.
O serviço do Amazon S3 é compatível com políticas de bucket, políticas de pontos de acesso e concessões de acesso:
-
Políticas de bucket são políticas baseadas em recursos que são anexadas a um bucket do Amazon S3. Uma política de bucket define quais entidades principais podem realizar ações no bucket.
-
As políticas de ponto de acesso são políticas baseadas em recursos que são avaliadas em conjunto com a política de bucket correspondente.
-
As concessões de acesso são um modelo simplificado para definir permissões de acesso aos dados no Amazon S3 por prefixo, bucket ou objeto. Consulte informações sobre a funcionalidade Concessões de Acesso do S3 em Gerenciar o acesso com a funcionalidade Concessões de Acesso do S3.
Entidades principais para políticas de bucket
O elemento Principal
especifica o usuário, a conta, o serviço ou outra entidade que tem o acesso permitido ou negado a um recurso. Veja a seguir exemplos de especificação de Principal
. Para obter mais informações, consulte Principal no Guia do usuário do IAM.
Conceder permissões a uma Conta da AWS
Para conceder permissões a uma Conta da AWS, identifique a conta usando o formato a seguir.
"AWS":"
account-ARN
"
Veja os exemplos a seguir.
"Principal":{"AWS":"arn:aws:iam::
AccountIDWithoutHyphens
:root"}
"Principal":{"AWS":["arn:aws:iam::
AccountID1WithoutHyphens
:root","arn:aws:iam::AccountID2WithoutHyphens
:root"]}
Conceder permissões a um usuário do IAM
Para conceder permissão para um usuário do IAM na sua conta, você deve fornecer um par de nome-valor "AWS":"
.user-ARN
"
"Principal":{"AWS":"arn:aws:iam::
account-number-without-hyphens
:user/username
"}
Para obter exemplos detalhados que fornecem instruções passo a passo, consulte Exemplo 1: Proprietário do bucket que concede permissões do bucket aos usuários e Exemplo 3: O proprietário do bucket concede permissões para objetos que não possui.
nota
Se uma identidade do IAM for excluída depois que você atualizar a política de bucket, a política de bucket mostrará um identificador exclusivo no elemento da entidade principal em vez de um ARN. Esses IDs exclusivos nunca são reutilizados; portanto você pode remover com segurança entidades principais com identificadores exclusivos de todas as suas instruções de política. Para obter mais informações sobre identificadores exclusivos, consulte Identificadores do IAM no Guia do usuário do IAM.
Conceder permissões anônimas
Atenção
Tenha cuidado ao conceder acesso anônimo ao bucket do Amazon S3. Quando você concede acesso anônimo, qualquer pessoa no mundo pode acessar seu bucket. É altamente recomendável que você nunca conceda nenhum tipo de acesso anônimo de gravação ao seu bucket do S3.
Para conceder permissão a todos, também denominada acesso anônimo, defina o curinga ("*"
) como o valor Principal
. Por exemplo, se você configura seu bucket como um site, quer que todos os objetos no bucket sejam publicamente acessíveis.
"Principal":"*"
"Principal":{"AWS":"*"}
Usar "Principal": "*"
com um efeito Allow
em uma política baseada em recursos permite que qualquer pessoa, mesmo que não esteja conectada à AWS, acesse seu recurso.
Usar "Principal" : { "AWS" : "*" }
com um efeito Allow
em uma política baseada em recursos permite que qualquer usuário raiz, usuário do IAM, sessão de função assumida ou usuário federado em qualquer conta na mesma partição acesse seu recurso.
Para usuários anônimos, esses dois métodos são equivalentes. Para obter mais informações, consulte Todas as entidades principais no Guia do usuário do IAM.
Não é possível usar um curinga para fazer a correspondência de parte de um nome de entidade principal ou ARN.
Importante
Como qualquer pessoa pode criar uma Conta da AWS, o nível de segurança desses dois métodos é equivalente, mesmo que funcionem de maneira diferente.
Restringir permissões de recursos
Também é possível usar a política de recursos para restringir o acesso a recursos que, de outra forma, estariam disponíveis para entidades principais do IAM. Use uma instrução Deny
para impedir o acesso.
O exemplo a seguir bloqueará o acesso se um protocolo de transporte seguro não for usado:
{"Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": <bucket ARN>, "Condition": { "Boolean": { "aws:SecureTransport" : "false"} } }
Usar "Principal": "*"
para que essa restrição se aplique a todos é uma prática recomendada para essa política, em vez de tentar negar acesso somente a contas ou entidades principais específicas usando esse método.
Exigir acesso por URLs do CloudFront
Você pode exigir que os usuários acessem seu conteúdo do Amazon S3 somente usando URLs do CloudFront em vez de URLs do Amazon S3. Para fazer isso, crie um controle de acesso de origem (OAC) do CloudFront. Depois, altere as permissões em seus dados do S3. Na política de bucket, é possível definir o CloudFront como entidade principal da seguinte forma:
"Principal":{"Service":"cloudfront.amazonaws.com"}
Use um elemento Condition
na política para permitir que o CloudFront acesse o bucket somente quando a solicitação for em nome da distribuição do CloudFront que contém a origem do S3.
"Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::
111122223333
:distribution/CloudFront-distribution-ID
" } }
Consulte mais informações sobre como solicitar acesso ao S3 por meio de URLs do CloudFront em Restringir o acesso ao conteúdo de uma origem do Amazon Simple Storage Service no Guia do desenvolvedor do Amazon CloudFront. Consulte mais informações sobre os benefícios de segurança e privacidade com o uso do Amazon CloudFront em Configurar o acesso seguro e restringir o acesso ao conteúdo.
Exemplos de política baseada em recursos para o Amazon S3
Consulte exemplos de política para buckets do Amazon S3 em Políticas de bucket para o Amazon S3.
Consulte exemplos de política para pontos de acesso em Configurar políticas do IAM para uso de pontos de acesso.
Ações de políticas para o Amazon S3
Compatível com ações de políticas: Sim
Os administradores podem usar AWS as políticas JSON para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.
O elemento Action
de uma política JSON descreve as ações que você pode usar para permitir ou negar acesso em uma política. As ações de políticas geralmente têm o mesmo nome que a operação de API da AWS associada. Existem algumas exceções, como ações somente de permissão, que não têm uma operação de API correspondente. Algumas operações também exigem várias ações em uma política. Essas ações adicionais são chamadas de ações dependentes.
Incluem ações em uma política para conceder permissões para executar a operação associada.
Veja a seguir diferentes tipos de relacionamento de mapeamento entre as operações de API do S3 e as ações de políticas necessárias.
Mapeamento de um para um com o mesmo nome. Por exemplo, para usar a operação de API
PutBucketPolicy
, a ação de políticas3:PutBucketPolicy
é necessária.Mapeamento de um para um com nomes diferentes. Por exemplo, para usar a operação de API
ListObjectsV2
, a ação de políticas3:ListBucket
é necessária.Mapeamento de um para muitos. Por exemplo, para usar a operação de API
HeadObject
, as3:GetObject
é necessária. Além disso, quando você usa o Bloqueio de Objetos do S3 e deseja obter o status de retenção legal ou as configurações de retenção de um objeto, as ações de políticas3:GetObjectLegalHold
ous3:GetObjectRetention
correspondentes também são necessárias para que você possa usar a operação de APIHeadObject
.Mapeamento de muitos para um. Por exemplo, para usar as operações de API
ListObjectsV2
ouHeadBucket
, a ação de políticas3:ListBucket
é necessária.
Consulte uma lista de ações do Amazon S3 para uso em políticas em Actions defined by Amazon S3 na Referência de autorização do serviço. Consulte uma lista completa de operações de API do Amazon S3 em Amazon S3 API Actions na Referência de API do Amazon Simple Storage Service.
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.
As ações da política no Amazon S3 usam o seguinte prefixo antes da ação:
s3
Para especificar várias ações em uma única instrução, separe-as com vírgulas.
"Action": [ "s3:
action1
", "s3:action2
" ]
Operações de buckets
As operações de bucket são operações de API do S3 que operam no tipo de recurso de bucket. Por exemplo, CreateBucket
, ListObjectsV2
e PutBucketPolicy
. As ações de política do S3 para operações de bucket exigem que o elemento Resource
nas políticas de bucket ou nas políticas baseadas em identidade do IAM seja o identificador do nome do recurso da Amazon (ARN) do tipo de bucket do S3 no formato de exemplo a seguir.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
"
A política de bucket a seguir concede ao usuário
(conta Akua
) a permissão 12345678901
s3:ListBucket
para realizar a operação de API ListObjectsV2 e listar objetos em um bucket do S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Akua to list objects in the bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
12345678901
:user/Akua" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
" } ] }
Operações de bucket em políticas de ponto de acesso
As permissões concedidas em uma política de ponto de acesso entrarão em vigor somente se o bucket subjacente conceder as mesmas permissões. Ao usar os pontos de acesso do S3, você deve delegar o controle de acesso do bucket ao ponto de acesso ou adicionar as mesmas permissões nas políticas de ponto de acesso à política do bucket subjacente. Para ter mais informações, consulte Configurar políticas do IAM para uso de pontos de acesso. Nas políticas de ponto de acesso, as ações de política do S3 para operações de bucket exigem que você use o ARN do ponto de acesso para o elemento Resource
no formato a seguir.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
A política de ponto de acesso a seguir concede ao usuário
(conta Akua
) a permissão 12345678901
s3:ListBucket
para realizar a operação de API ListObjectsV2 por meio do Ponto de Acesso S3 chamado
. Essa permissão autoriza example-access-point
a indicar os objetos no bucket associado a Akua
. example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to list objects in the bucket through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:ListBucket" ], "Resource": "arn:aws:s3:us-west-2
:123456789012
:accesspoint/example-access-point
" } ] }
nota
Nem todas as operações de bucket são compatíveis com o ponto de acesso do S3. Para ter mais informações, consulte Compatibilidade de ponto de acesso com operações do S3.
Operações com objetos
As operações de objeto são operações de API do S3 que atuam sobre o tipo de recurso do objeto. Por exemplo, GetObject
, PutObject
e DeleteObject
. As ações de política do S3 para operações de objeto exigem que o elemento Resource
nas políticas seja o ARN do objeto do S3 nos formatos de exemplo a seguir.
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*"
"Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/prefix
/*"
nota
O ARN do objeto deve conter uma barra após o nome do bucket, conforme mostrado nos exemplos anteriores.
A política de bucket a seguir concede ao usuário
(conta Akua
) a permissão 12345678901
s3:PutObject
. Essa permissão autoriza
a usar a operação de API PutObject para fazer upload de objetos no bucket do S3 chamado Akua
.amzn-s3-demo-bucket
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to upload objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }
Operações de objetos em políticas de ponto de acesso
Ao usar os pontos de acesso do S3 para controlar o acesso às operações de objetos, você pode usar políticas de ponto de acesso. Ao usar políticas de ponto de acesso, as ações de política do S3 para operações de objeto exigem que você use o ARN do ponto de acesso para o elemento Resource
no seguinte formato: arn:aws:s3:
. Para operações de objeto que usem pontos de acesso, é necessário incluir o valor region
:account-id
:accesspoint/access-point-name
/object/resource
/object/
após o ARN completo do ponto de acesso no elemento Resource
. Aqui estão alguns exemplos.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/*"
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
/object/prefix
/*"
A política de ponto de acesso a seguir concede ao usuário
(conta Akua
) a permissão 12345678901
s3:GetObject
. Essa permissão autoriza
a realizar a operação de API GetObject por meio do ponto de acesso denominado Akua
em todos os objetos no bucket associado ao ponto de acesso. example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow
Akua
to get objects through access point", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678901
:user/Akua
" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:us-west-2
:123456789012
:accesspoint/example-access-point
/object/*" } ] }
nota
Nem todas as operações de objeto são compatíveis com pontos de acesso. Para ter mais informações, consulte Compatibilidade de ponto de acesso com operações do S3.
Operações de ponto de acesso
As operações de ponto de acesso são operações de API do S3 que operam no tipo de recurso de accesspoint
. Por exemplo, CreateAccessPoint
, DeleteAccessPoint
e GetAccessPointPolicy
. As ações de política do S3 para operações de ponto de acesso só podem ser usadas em políticas baseadas em identidade do IAM, não em políticas de bucket ou políticas de ponto de acesso. As operações de ponto de acesso exigem que o elemento Resource
seja o ARN do ponto de acesso no formato de exemplo a seguir.
"Resource": "arn:aws:s3:
us-west-2
:123456789012
:accesspoint/example-access-point
"
A política baseada em identidade do IAM a seguir concede a permissão s3:GetAccessPointPolicy
para realizar a operação de API GetAccessPointPolicy no Ponto de Acesso S3 denominado
.example-access-point
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Grant permission to retrieve the access point policy of access point
example-access-point
", "Effect": "Allow", "Action": [ "s3:GetAccessPointPolicy" ], "Resource": "arn:aws:s3:*:123456789012
:accesspoint/example-access-point
" } ] }
Se você usa pontos de acesso, consulte Operações de bucket em políticas de ponto de acesso para controlar o acesso às operações de bucket e Operações de objetos em políticas de ponto de acesso para controlar o acesso às operações de objetos. Consulte mais informações sobre como configurar políticas de ponto de acesso em Configurar políticas do IAM para uso de pontos de acesso.
Operações de ponto de acesso do Object Lambda
Com o Amazon S3 Object Lambda, você pode adicionar seu próprio código às solicitações GET
, LIST
e HEAD
do Amazon S3 para modificar e processar dados, conforme eles são retornados para uma aplicação. É possível fazer solicitações por um ponto de acesso do Object Lambda, que funciona da mesma maneira que fazer solicitações por outros pontos de acesso. Para ter mais informações, consulte Transformar objetos com o S3 Object Lambda.
Consulte mais informações sobre como configurar políticas de operações de ponto de acesso do Object Lambda em Configurar políticas do IAM para pontos de acesso do Object Lambda.
Operações de ponto de acesso multirregionais
Um ponto de acesso multirregional fornece um endpoint global que as aplicações podem usar para atender a solicitações de buckets do S3 localizados em várias Região da AWS. É possível usar um ponto de acesso multirregional para criar aplicações de várias regiões com a mesma arquitetura usada em uma única região, depois executar essas aplicações em qualquer lugar do mundo. Para ter mais informações, consulte Gerenciar o tráfego multirregional com Pontos de Acesso Multirregionais.
Consulte mais informações sobre como configurar políticas de operações de ponto de acesso multirregionais em Exemplos de políticas de pontos de acesso multirregionais.
Operações de trabalho em lote
As operações de trabalho (operações em lote) são operações de API do S3 que operam no tipo de recurso de trabalho. Por exemplo, DescribeJob
e CreateJob
. As ações de política do S3 para operações de trabalho só podem ser usadas em políticas baseadas em identidade do IAM, não em políticas de buckets. Além disso, as operações de trabalho exigem que o elemento Resource
nas políticas baseadas em identidade do IAM seja o ARN job
no formato de exemplo a seguir.
"Resource": "arn:aws:s3:*:
123456789012
:job/*"
A política baseada em identidade do IAM a seguir concede a permissão s3:DescribeJob
para realizar a operação de API DescribeJob no trabalho
de Operações em Lote do S3.example-job
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow describing the Batch operation job
example-job
", "Effect": "Allow", "Action": [ "s3:DescribeJob" ], "Resource": "arn:aws:s3:*:123456789012
:job/example-job
" } ] }
Operações de configuração da Lente de Armazenamento do S3
Consulte mais informações sobre como definir as operações de configuração do Lente de Armazenamento do S3 em Configurar permissões da Lente de Armazenamento do Amazon S3.
Operações de conta
As operações da conta são operações de API do S3 que operam no nível da conta. Por exemplo, GetPublicAccessBlock
(para conta). A conta não é um tipo de recurso definido pelo Amazon S3. As ações de política do S3 para operações de conta só podem ser usadas em políticas baseadas em identidade do IAM, não em políticas de buckets. Além disso, as operações da conta exigem que o elemento Resource
nas políticas baseadas em identidade do IAM seja "*"
.
A política baseada em identidade do IAM a seguir concede a permissão s3:GetAccountPublicAccessBlock
para realizar a operação de API GetPublicAccessBlock em nível de conta e recuperar as configurações do Bloqueio de Acesso Público em nível de conta.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"Allow retrieving the account-level Public Access Block settings", "Effect":"Allow", "Action":[ "s3:GetAccountPublicAccessBlock" ], "Resource":[ "*" ] } ] }
Exemplos de políticas para o Amazon S3
-
Consulte exemplos de políticas baseadas em identidade do Amazon S3 em Políticas baseadas em identidade do Amazon S3.
-
Consulte exemplos de políticas baseadas em recursos do Amazon S3 em Políticas de bucket para o Amazon S3 e Configurar políticas do IAM para uso de pontos de acesso.
Recursos de políticas para o Amazon S3
Compatível com recursos de políticas: Sim
Os administradores podem usar AWS as políticas JSON para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.
O elemento de política JSON Resource
especifica o objeto ou os objetos aos quais a ação se aplica. As instruções devem incluir um elemento Resource
ou NotResource
. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Isso pode ser feito para ações que oferecem compatibilidade com um tipo de recurso específico, conhecido como permissões em nível de recurso.
Para ações que não oferecem compatibilidade com permissões em nível de recurso, como operações de listagem, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.
"Resource": "*"
Algumas ações de API do Amazon S3 são compatíveis com vários recursos. Por exemplo, s3:GetObject
acessa
e example-resource-1
; portanto, uma entidade principal deve ter permissões para acessar os dois recursos. Para especificar vários recursos em uma única declaração, separe os ARNs com vírgula, como mostrado no exemplo a seguir. example-resource-2
"Resource": [ "
example-resource-1
", "example-resource-2
"
Os recursos no Amazon S3 são buckets, objetos, pontos de acesso ou trabalhos. Em uma política, use o nome do recurso da Amazon (ARN) do bucket, do objeto, do ponto de acesso ou do trabalho para identificar o recurso.
Consulte uma lista completa dos tipos de recurso do Amazon S3 e os respectivos ARNs em Resources defined by Amazon S3 na Referência de autorização do serviço. Para saber com quais ações você pode especificar o ARN de cada recurso, consulte Actions defined by Amazon S3.
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.
Caracteres curinga em ARNs de recursos
É possível usar caracteres curinga como parte do ARN do recurso. É possível usar caracteres curinga (*
e ?
) em qualquer segmento de ARN (as partes separadas por dois-pontos). Um asterisco (*
) representa qualquer combinação de zero ou mais caracteres, e um ponto de interrogação (?
) representa qualquer caractere único. Você pode usar vários caracteres *
ou ?
em cada segmento. No entanto, um caractere curinga não pode abranger segmentos.
-
O ARN a seguir usa o caractere curinga
*
na parterelative-ID
do ARN para identificar todos os objetos no bucket
.amzn-s3-demo-bucket
arn:aws:s3:::
amzn-s3-demo-bucket
/* -
O ARN a seguir usa
*
para indicar todos os buckets e objetos do S3.arn:aws:s3:::*
-
O ARN a seguir usa caracteres curinga,
*
e?
, na parte derelative-ID
. Esse ARN identifica todos os objetos em buckets, como
,amzn-s3-demo-example1bucket
,amzn-s3-demo-example2bucket
etc.amzn-s3-demo-example3bucket
arn:aws:s3:::
amzn-s3-demo-example
?bucket
/*
Variáveis de política para ARNs de recursos
Você pode usar variáveis de política em ARNs do Amazon S3. No momento da avaliação da política, essas variáveis predefinidas são substituídas pelos valores correspondentes. Vamos supor que você organize seu bucket como um conjunto de pastas, sendo uma pasta para cada um dos usuários. O nome da pasta é igual ao nome do usuário. Para conceder aos usuários permissão às pastas, você pode especificar uma variável de política no ARN do recurso:
arn:aws:s3:::
bucket_name
/developers
/${aws:username}/
No tempo de execução, quando a política é avaliada, a variável ${aws:username}
no ARN do recurso é substituída pelo nome de usuário da pessoa que faz a solicitação.
Exemplos de políticas para o Amazon S3
-
Consulte exemplos de políticas baseadas em identidade do Amazon S3 em Políticas baseadas em identidade do Amazon S3.
-
Consulte exemplos de políticas baseadas em recursos do Amazon S3 em Políticas de bucket para o Amazon S3 e Configurar políticas do IAM para uso de pontos de acesso.
Chaves de condição de política para o Amazon S3
Compatível com chaves de condição de política específicas de serviço: Sim
Os administradores podem usar AWS as políticas JSON para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.
O elemento Condition
(ou bloco Condition
) permite que você especifique condições nas quais uma instrução estiver em vigor. O elemento Condition
é opcional. É possível criar expressões condicionais que usem agentes de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação.
Se você especificar vários elementos Condition
em uma instrução ou várias chaves em um único Condition
elemento, a AWS os avaliará usando uma operação lógica AND
. Se você especificar vários valores para uma única chave de condição, a AWS avaliará a condição usando uma operação lógica OR
. Todas as condições devem ser atendidas antes que as permissões da instrução sejam concedidas.
Você também pode usar variáveis de espaço reservado ao especificar condições. Por exemplo, é possível conceder a um usuário do IAM permissão para acessar um atributo somente se ele estiver marcado com seu nome de usuário do IAM. Para obter mais informações, consulte Elementos da política do IAM: variáveis e tags no Guia do usuário do IAM.
A AWS oferece compatibilidade com chaves de condição globais e chaves de condição específicas do serviço. Para ver todas as chaves de condição globais da AWS, consulte Chaves de Contexto de Condição Globais da AWS no Guia do Usuário do IAM.
Cada chave de condição do Amazon S3 é associada ao mesmo cabeçalho de solicitação de nome permitido pela API na qual a condição pode ser definida. As chaves de condição específicas do Amazon S3 ditam o comportamento dos cabeçalhos de solicitação de mesmo nome. Por exemplo, a chave de condição s3:VersionId
usada para conceder permissão condicional à permissão s3:GetObjectVersion
define o comportamento do parâmetro de consulta versionId
que você define em uma solicitação GET Object.
Consulte uma lista de chaves de condição do Amazon S3 em Condition keys for Amazon S3 na Referência de autorização do serviço. Para saber com quais ações e recursos é possível usar uma chave de condição, consulte Actions defined by Amazon S3.
Exemplo: restringir uploads aos objetos com uma classe de armazenamento específica
Suponha que a conta A, representada pelo ID da conta
, tem um bucket. O administrador da conta A deseja restringir 123456789012
, um usuário na conta A, para que Dave
só possa fazer upload de objetos no bucket se o objeto estiver armazenado na classe de armazenamento Dave
STANDARD_IA
. Para restringir uploads de objetos a uma classe de armazenamento específica, o administrador da Conta A pode usar a chave de condição s3:x-amz-storage-class
, conforme mostrado no exemplo de política de bucket a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:user/Dave
" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1
/*", "Condition": { "StringEquals": { "s3:x-amz-storage-class": [ "STANDARD_IA" ] } } } ] }
No exemplo, o bloco Condition
especifica a condição StringEquals
que é aplicada ao par de chave-valor especificado, "s3:x-amz-acl":["public-read"]
. Existe um conjunto de chaves predefinidas que pode ser usado para expressar uma condição. O exemplo usa a chave de condição s3:x-amz-acl
. Essa condição exige que o usuário inclua o cabeçalho x-amz-acl
com o valor public-read
em cada solicitação PutObject
.
Exemplos de políticas para o Amazon S3
-
Consulte exemplos de políticas baseadas em identidade do Amazon S3 em Políticas baseadas em identidade do Amazon S3.
-
Consulte exemplos de políticas baseadas em recursos do Amazon S3 em Políticas de bucket para o Amazon S3 e Configurar políticas do IAM para uso de pontos de acesso.
ACLs no Amazon S3
Compatível com ACLs: sim
No Amazon S3, as listas de controle de acesso (ACLs) controlam quais Contas da AWS têm permissões para acessar um recurso. As ACLs são semelhantes as políticas baseadas em recursos, embora não usem o formato de documento de política JSON.
Importante
A maioria dos casos de uso modernos no Amazon S3 não exige mais o uso de ACLs.
Consulte informações sobre como usar ACLs para controlar o acesso no Amazon S3 em Gerenciar o acesso com ACLs.
ABAC com o Amazon S3
Compatível com ABAC (tags em políticas): Parcial
O controle de acesso por atributo (ABAC) é uma estratégia de autorização que define permissões com base em atributos. Na AWS, esses atributos são chamados de tags. É possível anexar tags a entidades do IAM (usuários ou perfis) e a muitos recursos da AWS. A marcação de entidades e atributos é a primeira etapa do ABAC. Em seguida, você cria políticas de ABAC para permitir operações quando a tag da entidade principal corresponder à tag do recurso que ela estiver tentando acessar.
O ABAC é útil em ambientes que estão crescendo rapidamente e ajuda em situações onde o gerenciamento de políticas se torna um problema.
Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as aws:ResourceTag/
, key-name
aws:RequestTag/
ou chaves de condição key-name
aws:TagKeys
.
Se um serviço oferecer suporte às três chaves de condição para cada tipo de recurso, o valor será Sim para o serviço. Se um serviço oferecer suporte às três chaves de condição somente para alguns tipos de recursos, o valor será Parcial
Para obter mais informações sobre o ABAC, consulte Definir permissões com autorização ABAC no Guia do usuário do IAM. Para visualizar um tutorial com etapas para configurar o ABAC, consulte Utilizar controle de acesso baseado em atributos (ABAC) no Guia do usuário do IAM.
Consulte exemplos de políticas baseadas em identidade para limitar o acesso aos trabalhos de Operações em Lote do S3 com base em tags em Controlar permissões para o Operações em Lote usando tags de trabalho.
ABAC e tags de objetos
Nas políticas de ABAC, os objetos usam tags s3:
em vez de tags aws:
. Para controlar o acesso a objetos com base em tags, forneça informações sobre a tag no elemento Condition de uma política usando as seguintes tags:
-
s3:ExistingObjectTag/
tag-key
-
s3:s3:RequestObjectTagKeys
-
s3:RequestObjectTag/
tag-key
Consulte informações sobre como usar tags de objeto para controlar o acesso, incluindo exemplos de políticas de permissão, em Marcação e políticas de controle de acesso.
Usar credenciais temporárias com o Amazon S3
Compatível com credenciais temporárias: Sim
Alguns Serviços da AWS não funcionam quando você faz login usando credenciais temporárias. Para obter informações adicionais, como quais Serviços da AWS funcionam com credenciais temporárias, consulte Serviços da AWS que funcionem com o IAM no Guia do Usuário do IAM.
Você está usando credenciais temporárias se fizer login no AWS Management Console por qualquer método, exceto nome de usuário e uma senha. Por exemplo, quando você acessa a AWS usando o link de autenticação única (SSO) da sua empresa, esse processo cria credenciais temporárias automaticamente. Você também cria automaticamente credenciais temporárias quando faz login no console como usuário e, em seguida, alterna perfis. Para ter mais informações sobre como alternar perfis, consulte Mudar de um usuário para um perfil do IAM (console) no Guia do usuário do IAM.
Você pode criar credenciais temporárias manualmente usando a API AWS CLI ou AWS. Em seguida, você pode usar essas credenciais temporárias para acessar aAWS .AWS A recomenda que você gere credenciais temporárias dinamicamente em vez de usar chaves de acesso de longo prazo. Para mais informações, consulte Credenciais de segurança temporárias no IAM.
Sessões de acesso direto para o Amazon S3
Suporte ao recurso de encaminhamento de sessões de acesso (FAS): sim
Quando você usa um usuário ou um perfil do IAM para executar ações na AWS, você é considerado uma entidade principal. Ao usar alguns serviços, você pode executar uma ação que inicia outra ação em um serviço diferente. O recurso FAS utiliza as permissões da entidade principal que chama um AWS service (Serviço da AWS), combinadas às permissões do AWS service (Serviço da AWS) solicitante, para realizar solicitações para serviços downstream. As solicitações de FAS só são feitas quando um serviço recebe uma solicitação que exige interações com outros Serviços da AWS ou com recursos para serem concluídas. Nesse caso, você precisa ter permissões para executar ambas as ações. Para obter detalhes da política ao fazer solicitações de FAS, consulte Encaminhar sessões de acesso.
O FAS é usado pelo Amazon S3 para fazer chamadas ao AWS KMS para descriptografar um objeto quando se usa a SSE-KMS para criptografá-lo. Para ter mais informações, consulte Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS).
A funcionalidade Concessões de Acesso do S3 também usa FAS. Depois de criar uma concessão de acesso aos seus dados do S3 para uma identidade específica, o beneficiário solicita uma credencial temporária da funcionalidade Concessões de Acesso do S3. A funcionalidade Concessões de Acesso do S3 obtém uma credencial temporária para o solicitante pelo AWS STS e vende a credencial a ele. Para ter mais informações, consulte Solicitar acesso aos dados do Amazon S3 por meio da funcionalidade Concessões de Acesso do S3.
Perfis de serviço para o Amazon S3
Compatível com perfis de serviço: Sim
O perfil de serviço é um perfil do IAM que um serviço assume para realizar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para obter mais informações, consulte Criar um perfil para delegar permissões a um AWS service (Serviço da AWS) no Guia do Usuário do IAM.
Atenção
A alteração das permissões de um perfil de serviço pode interromper a funcionalidade do Amazon S3. Edite perfis de serviço somente quando o Amazon S3 instruir a fazer isso.
Perfis vinculados ao serviço para o Amazon S3
Compatível com perfis vinculados ao serviço: parcialmente
Um perfil vinculado ao serviço é um tipo de perfil de serviço vinculado a um AWS service (Serviço da AWS). O serviço pode presumir a função de executar uma ação em seu nome. Funções vinculadas ao serviço aparecem em sua Conta da AWS e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não editar as permissões para funções vinculadas ao serviço.
O Amazon S3 é compatível com perfis vinculados a serviço da Lente de Armazenamento do Amazon S3. Consulte detalhes de como criar ou gerenciar perfis vinculados ao serviço do Amazon S3 em Usar funções vinculadas a serviços para o Amazon S3 Storage Lens.
Serviço do Amazon S3 como entidade principal
Nome do serviço na política | Recurso do S3 | Mais informações |
---|---|---|
|
Replicação do S3 |
|
|
Notificações de eventos do S3 |
|
|
Inventário S3 |
|
|
Concessões de Acesso do S3 |
|
|
Operações em lote do S3 |
|
|
Registro em log de acesso ao servidor do S3 |
|
|
Lente de Armazenamento do S3 |
Exibição de métricas de lente de armazenamento do Amazon S3 usando uma exportação de dados |