

# Gerenciamento de identidade e acesso para o Amazon S3
<a name="security-iam"></a>

O AWS Identity and Access Management (IAM) é um serviço da AWS service (Serviço da AWS) que ajuda um administrador a controlar com segurança o acesso aos recursos da AWS. Os administradores do IAM controlam quem pode ser *autenticado* (fazer login) e *autorizado* (ter permissões) para usar os recursos do Amazon S3. O IAM é um AWS service (Serviço da AWS) que pode ser usado sem custo adicional.

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](using-with-s3-policy-actions.md).

**nota**  
Para obter mais informações sobre o uso da classe de armazenamento Amazon S3 Express One Zone com buckets de diretório, consulte [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone) e [Trabalhar com buckets de diretório](directory-buckets-overview.md).

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticação com identidades](#security_iam_authentication)
+ [Gerenciar o acesso usando políticas](#security_iam_access-manage)
+ [Como o Amazon S3 funciona com o IAM](security_iam_service-with-iam.md)
+ [Como o Amazon S3 autoriza uma solicitação](how-s3-evaluates-access-control.md)
+ [Permissões obrigatórias para operações de API do Amazon S3](using-with-s3-policy-actions.md)
+ [Políticas e permissões no Amazon S3](access-policy-language-overview.md)
+ [Políticas de bucket para o Amazon S3](bucket-policies.md)
+ [Políticas baseadas em identidade do Amazon S3](security_iam_id-based-policy-examples.md)
+ [Demonstrações que usam políticas para gerenciar o acesso a recursos do Amazon S3](example-walkthroughs-managing-access.md)
+ [Usar funções vinculadas a serviços para o Amazon S3 Storage Lens](using-service-linked-roles.md)
+ [Solução de problemas de identidade e acesso do Amazon S3](security_iam_troubleshoot.md)
+ [AWSPolíticas gerenciadas da para o Amazon S3](security-iam-awsmanpol.md)

## Público
<a name="security_iam_audience"></a>

A forma como você usa o AWS Identity and Access Management (IAM) difere com base em seu perfil:
+ **Usuário do serviço**: solicite permissões ao seu administrador se você não conseguir acessar os atributos (consulte [Solução de problemas de identidade e acesso do Amazon S3](security_iam_troubleshoot.md)).
+ **Administrador do serviço**: determine o acesso do usuário e envie solicitações de permissão (consulte [Como o Amazon S3 funciona com o IAM](security_iam_service-with-iam.md))
+ **Administrador do IAM**: escreva políticas para gerenciar o acesso (consulte [Políticas baseadas em identidade do Amazon S3](security_iam_id-based-policy-examples.md))

## Autenticação com identidades
<a name="security_iam_authentication"></a>

A autenticação é a forma como fazer login na AWS usando suas credenciais de identidade. Você precisa se autenticar como o Usuário raiz da conta da AWS, como um usuário do IAM ou assumindo um perfil do IAM.

Você pode fazer login como uma identidade federada usando credenciais de uma fonte de identidade, como o Centro de Identidade do AWS IAM (Centro de Identidade do IAM), autenticação única ou credenciais do Google/Facebook. Para ter mais informações sobre como fazer login, consulte [Como fazer login em sua Conta da AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) no *Guia do usuário do Início de Sessão da AWS*.

Para acesso programático, a AWS oferece um SDK e uma CLI para assinar solicitações criptograficamente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

### Usuário-raiz Conta da AWS
<a name="security_iam_authentication-rootuser"></a>

 Ao criar uma Conta da AWS, você começa com uma identidade de login única chamada *usuário-raiz* da Conta da AWS, que tem acesso total a todos os recursos e Serviços da AWS. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

### Identidade federada
<a name="security_iam_authentication-federated"></a>

Como prática recomendada, exija que os usuários humanos usem a federação com um provedor de identidades para acessar a Serviços da AWS usando credenciais temporárias.

Uma *identidade federada* é um usuário do seu diretório empresarial, de um provedor de identidades da web ou do Directory Service que acessa Serviços da AWS usando credenciais de uma fonte de identidade. As identidades federadas assumem funções que oferecem credenciais temporárias.

Para o gerenciamento de acesso centralizado, recomendamos Centro de Identidade do AWS IAM. Para saber mais, consulte [O que é o IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) no *Guia do usuário do Centro de Identidade do AWS IAM*.

### Usuários e grupos do IAM
<a name="security_iam_authentication-iamuser"></a>

Um *[usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* é uma identidade com permissões específicas para uma única pessoa ou aplicação. É recomendável usar credenciais temporárias, em vez de usuários do IAM com credenciais de longo prazo. Para saber mais, consulte [Exigir que os usuários humanos usem a federação com um provedor de identidade para acessar a AWS usando credenciais temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*.

Um [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica um conjunto de usuários do IAM e facilita o gerenciamento de permissões para grandes conjuntos de usuários. Para ter mais informações, consulte [Casos de uso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) no *Guia do usuário do IAM*.

### Perfis do IAM
<a name="security_iam_authentication-iamrole"></a>

Uma *[perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* é uma identidade com permissões específicas que oferece credenciais temporárias. É possível assumir um perfil [alternando de um usuário para um perfil do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou chamando uma operação de API AWS CLI ou AWS. Para saber mais, consulte [Métodos para assumir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) no *Manual do usuário do IAM*.

Os perfis do IAM são úteis para acesso de usuário federado, permissões de usuário do IAM temporárias, acesso entre contas, acesso entre serviços e aplicações em execução no Amazon EC2. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Gerenciar o acesso usando políticas
<a name="security_iam_access-manage"></a>

Você controla o acesso na AWS criando políticas e anexando-as a identidades ou recursos da AWS. Uma política define permissões quando associada a uma identidade ou a um recurso. A AWS avalia essas políticas quando a entidade principal faz uma solicitação. A maioria das políticas é armazenada na AWS como documentos JSON. Para ter mais informações sobre documentos de política JSON, consulte [Visão geral das políticas JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no *Guia do usuário do IAM*.

Por meio de políticas, os administradores especificam quem tem acesso a que, definindo qual **entidade principal** pode realizar **ações** em quais **recursos** e sob quais **condições**.

Por padrão, usuários e perfis não têm permissões. Um administrador do IAM cria políticas do IAM e as adiciona aos perfis, os quais os usuários podem então assumir. As políticas do IAM definem permissões, independentemente do método usado para realizar a operação.

### Políticas baseadas em identidade
<a name="security_iam_access-manage-id-based-policies"></a>

As políticas baseadas em identidade são documentos de políticas de permissão JSON que você anexa a uma identidade (usuário, grupo ou perfil). Essas políticas controlam quais ações as identidades podem realizar, em quais recursos e sob quais condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

As políticas baseadas em identidade podem ser políticas *em linha* (incorporadas diretamente em uma única identidade) ou *políticas gerenciadas* (políticas autônomas anexadas a várias identidades). Para saber como escolher entre uma política gerenciada e políticas em linha, consulte [Escolher entre políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) no *Guia do usuário do IAM*.

### Políticas baseadas em recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. Entre os exemplos estão *políticas de confiança de perfil* do IAM e *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos.

Políticas baseadas em recursos são políticas em linha localizadas nesse serviço. Não é possível usar as políticas gerenciadas pela AWS do IAM em uma política baseada em atributos.

### Outros tipos de política
<a name="security_iam_access-manage-other-policies"></a>

A AWS permite outros tipos de política capazes de definir o máximo de permissões concedidas por tipos de política mais comuns:
+ **Limites de permissões**: definem o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para saber mais sobre limites de permissões, consulte [Limites de permissões para identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) no *Guia do usuário do IAM*.
+ **Políticas de Controle de Serviços (SCPs)**: as SCPs especificam o número máximo de permissões para uma organização ou uma unidade organizacional no AWS Organizations. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations*.
+ **Políticas de controle de recursos (RCPs)**: definem o número máximo de permissões disponíveis para recursos em suas contas. Consulte mais informações em [Resource control policies (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) no *Guia do usuário do AWS Organizations*.
+ **Políticas de sessão**: políticas avançadas transmitidas como um parâmetro durante a criação de uma sessão temporária para um perfil ou um usuário federado. Para saber mais, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

### Vários tipos de política
<a name="security_iam_access-manage-multiple-policies"></a>

Quando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender as permissões resultantes. Para saber como a AWS determina se deve permitir ou não uma solicitação quando há vários tipos de política envolvidos, consulte [Lógica da avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) no *Guia do usuário do IAM*.

# Como o Amazon S3 funciona com o IAM
<a name="security_iam_service-with-iam"></a>

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.






**Recursos do IAM que você pode usar com o Amazon S3**  

| Recurso do IAM | Suporte ao Amazon S3 | 
| --- | --- | 
|  [Políticas baseadas em identidade](#security_iam_service-with-iam-id-based-policies)  |   Sim  | 
|  [Políticas baseadas em atributos](#security_iam_service-with-iam-resource-based-policies)  |   Sim  | 
|  [Ações de políticas](#security_iam_service-with-iam-id-based-policies-actions)  |   Sim  | 
|  [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources)  |   Sim  | 
|  [Chaves de condição de política (específicas do serviço)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sim  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   Sim  | 
|  [ABAC (tags em políticas)](#security_iam_service-with-iam-tags)  |   Parcial  | 
|  [Credenciais temporárias](#security_iam_service-with-iam-roles-tempcreds)  |   Sim  | 
|  [Sessões de acesso direto (FAS)](#security_iam_service-with-iam-principal-permissions)  |   Sim  | 
|  [Perfis de serviço](#security_iam_service-with-iam-roles-service)  |   Sim  | 
|  [Perfis vinculados a serviço](#security_iam_service-with-iam-roles-service-linked)  |   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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 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](using-with-s3-policy-actions.md).

## Políticas baseadas em identidade do Amazon S3
<a name="security_iam_service-with-iam-id-based-policies"></a>

**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 podem ser anexados a uma identidade, como usuário do IAM, grupo de usuários ou perfil. 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 [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte [Referência de elemento de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*.

### Exemplos de políticas baseadas em identidade para o Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Consulte exemplos de políticas baseadas em identidade do Amazon S3 em [Políticas baseadas em identidade do Amazon S3](security_iam_id-based-policy-examples.md).

## Políticas baseadas em recurso no Amazon S3
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**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 compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. Para o atributo ao qual a política está anexada, a política define quais ações uma entidade principal especificado pode executar nesse atributo e em que condições. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos. As entidades principais podem incluir contas, usuários, perfis, usuários federados ou Serviços da AWS.

Para permitir o acesso entre contas, é possível especificar uma conta inteira ou as entidades do IAM em outra conta como a entidade principal em uma política baseada em recursos. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) 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](access-grants.md).

### Entidades principais para políticas de bucket
<a name="s3-bucket-user-policy-specifying-principal-intro"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) no *Guia do usuário do IAM*.

#### Conceder permissões a uma Conta da AWS
<a name="s3-aws-account-permissions"></a>

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"]}
```

**nota**  
Os exemplos acima concedem permissões ao usuário-raiz, que delega permissões em nível da conta. No entanto, as políticas do IAM ainda são necessárias para os perfis e usuários específicos da conta.

#### Conceder permissões a um usuário do IAM
<a name="s3-aws-user-permissions"></a>

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](example-walkthroughs-managing-access-example1.md) e [Exemplo 3: O proprietário do bucket concede permissões para objetos que não possui](example-walkthroughs-managing-access-example3.md).

**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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) no *Guia do usuário do IAM*.

#### Conceder permissões anônimas
<a name="s3-anonymous-permissions"></a>

**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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-anonymous) 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**  
Nas políticas de controle de acesso da AWS, as entidades principais “\$1” e \$1"AWS": "\$1"\$1 se comportam de maneira idêntica.

#### Restringir permissões de recursos
<a name="s3-restrict-permissions"></a>

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:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyBucketAccessIfSTPNotUsed",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
      "Condition": {
        "Bool": {
          "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
<a name="require-cloudfront-urls"></a>

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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) 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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecurityAndPrivateContent.html). 

### Exemplos de política baseada em recursos para o Amazon S3
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>
+ Consulte exemplos de política para buckets do Amazon S3 em [Políticas de bucket para o Amazon S3](bucket-policies.md).
+ Consulte exemplos de política para pontos de acesso em [Configurar políticas do IAM para uso de pontos de acesso](access-points-policies.md).

## Ações de políticas para o Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatível com ações de políticas:** sim

Os administradores podem usar as políticas JSON da AWS 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 podem ser usadas para permitir ou negar acesso em uma política. 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ítica `s3: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ítica `s3:ListBucket` é necessária.
+ Mapeamento de um para muitos. Por exemplo, para usar a operação de API `HeadObject`, a `s3: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ítica `s3:GetObjectLegalHold` ou `s3:GetObjectRetention` correspondentes também são necessárias para que você possa usar a operação de API `HeadObject`.
+ Mapeamento de muitos para um. Por exemplo, para usar as operações de API `ListObjectsV2` ou `HeadBucket`, a ação de política `s3:ListBucket` é necessária.



Consulte uma lista de ações do Amazon S3 para uso em políticas em [Actions defined by Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions) 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](https://docs.aws.amazon.com//AmazonS3/latest/API/API_Operations.html) 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](using-with-s3-policy-actions.md).

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 declaração, separe-as com vírgulas.

```
"Action": [
      "s3:action1",
      "s3:action2"
         ]
```





### Operações de buckets
<a name="using-with-s3-actions-related-to-buckets"></a>

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 `Akua` (conta `12345678901`) a permissão `s3:ListBucket` para realizar a operação de API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html) e listar objetos em um bucket do S3.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow Akua to list objects in the bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
        }
    ]
}
```

------
<a name="bucket-operations-ap"></a>
**Operações de bucket em políticas de ponto de acesso para buckets de uso geral**  
As permissões concedidas em uma política de ponto de acesso para buckets de uso geral 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 obter mais informações, consulte [Configurar políticas do IAM para uso de pontos de acesso](access-points-policies.md). 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 `Akua` (conta `12345678901`) a permissão `s3:ListBucket` para realizar a operação de API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html) por meio do Ponto de Acesso S3 chamado `example-access-point`. Essa permissão autoriza `Akua` a indicar os objetos no bucket associado a `example-access-point`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAkuaToListObjectsInBucketThroughAccessPoint",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:us-west-2:111122223333:accesspoint/example-access-point"
        }
    ]
}
```

------

**nota**  
Nem todas as operações de bucket são compatíveis com pontos de acesso para buckets de uso geral. Para obter mais informações, consulte [Compatibilidade de pontos de acesso com operações do S3](access-points-service-api-support.md#access-points-operations-support).
<a name="bucket-operations-ap-directory-buckets"></a>
**Operações de bucket em políticas de ponto de acesso para buckets de diretório**  
As permissões concedidas em uma política de ponto de acesso para buckets de diretório 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 obter mais informações, consulte [Configurar políticas do IAM para usar pontos de acesso para buckets de diretório](access-points-directory-buckets-policies.md). 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--usw2-az1--xa-s3"
```

A política de ponto de acesso a seguir concede ao usuário `Akua` (conta `12345678901`) a permissão `s3:ListBucket` para realizar a operação de API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectsV2.html) por meio do ponto de acesso chamado `example-access-point--usw2-az1--xa-s3`. Essa permissão autoriza `Akua` a indicar os objetos no bucket associado a `example-access-point--usw2-az1--xa-s3`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAkuaToListObjectsInTheBucketThroughAccessPoint",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3express:us-east-1:111122223333:accesspoint/example-access-point-usw2-az1-xa-s3"
        }
    ]
}
```

------

**nota**  
Nem todas as operações de bucket são compatíveis com pontos de acesso para buckets de diretório. Para obter mais informações, consulte [Operações de objeto referentes a pontos de acesso para buckets de diretório](access-points-directory-buckets-service-api-support.md).

### Operações com objetos
<a name="using-with-s3-actions-related-to-objects"></a>

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 `Akua` (conta `12345678901`) a permissão `s3:PutObject`. Essa permissão autoriza `Akua` a usar a operação de API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutObject.html) para fazer upload de objetos no bucket do S3 chamado `amzn-s3-demo-bucket`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow Akua to upload objects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------
<a name="object-operations-ap"></a>
**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:region:account-id:accesspoint/access-point-name/object/resource`. Para operações de objeto que usem pontos de acesso, é necessário incluir o valor `/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 `Akua` (conta `12345678901`) a permissão `s3:GetObject`. Essa permissão autoriza `Akua` a realizar a operação de API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html) por meio do ponto de acesso denominado `example-access-point` em todos os objetos no bucket associado ao ponto de acesso. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow Akua to get objects through access point",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/Akua"
            },
            "Action": [
            "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/example-access-point/object/*"
        }
    ]
}
```

------

**nota**  
Nem todas as operações de objeto são compatíveis com pontos de acesso. Para obter mais informações, consulte [Compatibilidade de pontos de acesso com operações do S3](access-points-service-api-support.md#access-points-operations-support).
<a name="object-operations-ap-directory-buckets"></a>
**Operações de objeto em políticas de ponto de acesso para buckets de diretório**  
Ao usar pontos de acesso para buckets de diretório com o objetivo de controlar o acesso a operações de objeto, é possível 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:region:account-id:accesspoint/access-point-name/object/resource`. Para operações de objeto que usem pontos de acesso, é necessário incluir o valor `/object/` após o ARN completo do ponto de acesso no elemento `Resource`. Aqui estão alguns exemplos.

```
"Resource": "arn:aws:s3express:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/*"
```

```
"Resource": "arn:aws:s3express:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/prefix/*"
```

A política de ponto de acesso a seguir concede ao usuário `Akua` (conta `12345678901`) a permissão `s3:GetObject`. Essa permissão autoriza `Akua` a realizar a operação de API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_GetObject.html) por meio do ponto de acesso denominado `example-access-point--usw2-az1--xa-s3` em todos os objetos no bucket associado ao ponto de acesso. 

```
{
    "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": "s3express:CreateSession","s3:GetObject"
            "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/example-access-point--usw2-az1--xa-s3/object/*"
        }
    ]
}
```

**nota**  
Nem todas as operações de objeto são compatíveis com pontos de acesso para buckets de diretório. Para obter mais informações, consulte [Operações de objeto referentes a pontos de acesso para buckets de diretório](access-points-directory-buckets-service-api-support.md).

### Operações de ponto de acesso para buckets de uso geral
<a name="using-with-s3-actions-related-to-accesspoint"></a>

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 [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) no Ponto de Acesso S3 denominado `example-access-point`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GrantPermissionToRetrieveTheAccessPointPolicyOfAccessPointExampleAccessPoint",
            "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 buckets de uso geral](#bucket-operations-ap) para controlar o acesso às operações de bucket e [Operações de objetos em políticas de ponto de acesso](#object-operations-ap) 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](access-points-policies.md).

### Operações de ponto de acesso para buckets de diretório
<a name="using-with-s3-actions-related-to-accesspoint-directory-buckets"></a>

As operações de ponto de acesso para buckets de diretório são operações de API do S3 que atuam 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 para buckets de diretório 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--usw2-az1--xa-s3"
```

A política baseada em identidade do IAM a seguir concede a permissão `s3express:GetAccessPointPolicy` para realizar a operação de API [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) no ponto de acesso denominado `example-access-point--usw2-az1--xa-s3`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GrantPermissionToRetrieveTheAccessPointPolicyOfAccessPointExampleAccessPointUsw2Az1XaS3",
            "Effect": "Allow",
            "Action": [
            "s3express:CreateSession","s3express:GetAccessPointPolicy"
            ],
            "Resource": "arn:aws:s3:*:111122223333:accesspoint/example-access-point"
        }
    ]
}
```

------

A política baseada em identidade do IAM a seguir concede a permissão `s3express:CreateAccessPoint` para criar pontos de acesso para buckets de diretório.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Grant CreateAccessPoint.",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "s3express:CreateAccessPoint""Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

A política baseada em identidade do IAM a seguir concede a permissão `s3express:PutAccessPointScope` para criar um escopo de ponto de acesso para buckets de diretório.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "Grant PutAccessPointScope",
            "Principal": "*",
            "Action": "s3express:CreateSession",
            "s3express:CreateAccessPoint",
            "S3Express:PutAccessPointScope""Effect": "Allow",
            "Resource": "*",
        }
    ]
}
```

Se você usa pontos de acesso para buckets de diretório, consulte [Operações de bucket em políticas de ponto de acesso para buckets de diretório](#bucket-operations-ap-directory-buckets) para controlar o acesso a operações de bucket e [Operações de objeto em políticas de ponto de acesso para buckets de diretório](#object-operations-ap-directory-buckets) para controlar o acesso a operações de objeto. Consulte mais informações sobre como configurar políticas de ponto de acesso para buckets de diretório em [Configurar políticas do IAM para usar pontos de acesso para buckets de diretório](access-points-directory-buckets-policies.md).

### Operações de ponto de acesso do Object Lambda
<a name="using-with-s3-actions-related-to-olap"></a>

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 obter mais informações, consulte [Transformar objetos com o S3 Object Lambda](transforming-objects.md).

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](olap-policies.md).

### Operações de ponto de acesso multirregionais
<a name="using-with-s3-actions-related-to-mrap"></a>

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 obter mais informações, consulte [Gerenciar o tráfego multirregional com Pontos de Acesso Multirregionais](MultiRegionAccessPoints.md).

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](MultiRegionAccessPointPermissions.md#MultiRegionAccessPointPolicyExamples).

### Operações de trabalho em lote
<a name="using-with-s3-actions-related-to-batchops"></a>

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](https://docs.aws.amazon.com//AmazonS3/latest/API/API_DescribeJob.html) no trabalho `example-job` de Operações em Lote do S3.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribingBatchOperationJob",
            "Effect": "Allow",
            "Action": [
            "s3:DescribeJob"
            ],
            "Resource": "arn:aws:s3:*:111122223333:job/example-job"
        }
    ]
}
```

------

### Operações de configuração da Lente de Armazenamento do S3
<a name="using-with-s3-actions-related-to-lens"></a>

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](storage_lens_iam_permissions.md).

### Operações de conta
<a name="using-with-s3-actions-related-to-accounts"></a>

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 [https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetPublicAccessBlock.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_control_GetPublicAccessBlock.html) em nível de conta e recuperar as configurações do Bloqueio de Acesso Público em nível de conta.

------
#### [ JSON ]

****  

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

------

### Exemplos de políticas para o Amazon S3
<a name="security_iam_service-with-policies-examples-actions"></a>
+ Consulte exemplos de políticas baseadas em identidade do Amazon S3 em [Políticas baseadas em identidade do Amazon S3](security_iam_id-based-policy-examples.md).
+ Consulte exemplos de políticas baseadas em recursos do Amazon S3 em [Políticas de bucket para o Amazon S3](bucket-policies.md) e [Configurar políticas do IAM para uso de pontos de acesso](access-points-policies.md).

## Recursos de políticas para o Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatível com recursos de políticas:** sim

Os administradores podem usar as políticas JSON da AWS 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. Como prática recomendada, especifique um recurso usando seu [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Para ações que não oferecem compatibilidade com permissões em nível de recurso, use um curinga (\$1) 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 `example-resource-1` e `example-resource-2`; 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. 

```
"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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies) 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions).

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](using-with-s3-policy-actions.md).

### Caracteres curinga em ARNs de recursos
<a name="s3-arn-wildcards"></a>

É 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 parte `relative-ID` do ARN para identificar todos os objetos no bucket `amzn-s3-demo-bucket`.

  ```
  1. 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 de `relative-ID`. Esse ARN identifica todos os objetos em buckets, como *`amzn-s3-demo-example1bucket`*, `amzn-s3-demo-example2bucket`, `amzn-s3-demo-example3bucket` etc.

  ```
  1. arn:aws:s3:::amzn-s3-demo-example?bucket/*
  ```

### Variáveis de política para ARNs de recursos
<a name="s3-policy-variables"></a>

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
<a name="security_iam_service-with-policies-examples-resources"></a>
+ Consulte exemplos de políticas baseadas em identidade do Amazon S3 em [Políticas baseadas em identidade do Amazon S3](security_iam_id-based-policy-examples.md).
+ Consulte exemplos de políticas baseadas em recursos do Amazon S3 em [Políticas de bucket para o Amazon S3](bucket-policies.md) e [Configurar políticas do IAM para uso de pontos de acesso](access-points-policies.md).

## Chaves de condição de política para o Amazon S3
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatível com chaves de condição de política específicas de serviço:** sim

Os administradores podem usar as políticas JSON da AWS 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` especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem [agentes de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição globais da AWS, consulte [Chaves de contexto de condição globais da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) 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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions).

### Exemplo: restringir uploads aos objetos com uma classe de armazenamento específica
<a name="example-storage-class-condition-key"></a>

Suponha que a conta A, representada pelo ID da conta `123456789012`, tem um bucket. O administrador da conta A deseja restringir *`Dave`*, um usuário na conta A, para que *`Dave`* possa fazer upload de objetos no bucket somente se o objeto estiver armazenado na classe de armazenamento `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. 

------
#### [ JSON ]

****  

```
{
                 "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
<a name="security_iam_service-with-policies-examples-conditions"></a>
+ Consulte exemplos de políticas baseadas em identidade do Amazon S3 em [Políticas baseadas em identidade do Amazon S3](security_iam_id-based-policy-examples.md).
+ Consulte exemplos de políticas baseadas em recursos do Amazon S3 em [Políticas de bucket para o Amazon S3](bucket-policies.md) e [Configurar políticas do IAM para uso de pontos de acesso](access-points-policies.md).

## ACLs no Amazon S3
<a name="security_iam_service-with-iam-acls"></a>

**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 às 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](acls.md).

## ABAC com o Amazon S3
<a name="security_iam_service-with-iam-tags"></a>

**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 chamados de tags. Você pode anexar tags a entidades do IAM e recursos da AWS e, em seguida, projetar políticas de ABAC para permitir operações quando a tag da entidade principal corresponder à tag no recurso.

Para controlar o acesso baseado em tags, forneça informações sobre as tags no [elemento de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` ou chaves de condição `aws:TagKeys`.

Se um serviço for compatível com as três chaves de condição para cada tipo de recurso, o valor será **Sim** para o serviço. Se um serviço for compatível com as três chaves de condição somente para alguns tipos de recursos, o valor será **Parcial**

Para saber mais sobre o ABAC, consulte [Definir permissões com autorização do ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) no *Guia do usuário do IAM*. Para visualizar um tutorial com etapas para configurar o ABAC, consulte [Usar controle de acesso por atributo (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) no *Guia do usuário do IAM*.

Para ter informações sobre recursos compatíveis com ABAC no Amazon S3, consulte [Usar tags para controle de acesso por atributo (ABAC)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html#using-tags-for-abac).

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](batch-ops-job-tags-examples.md).

### ABAC e tags de objetos
<a name="s3-object-tags"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as seguintes tags:
+ `s3:ExistingObjectTag/tag-key`
+ `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](tagging-and-policies.md).

## Usar credenciais temporárias com o Amazon S3
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatível com credenciais temporárias:** sim

As credenciais temporárias dão acesso de curto prazo aos recursos da AWS e são criadas automaticamente quando você usa a federação ou alterna os perfis. A AWS recomenda a você gerar credenciais temporárias dinamicamente, em vez de usar chaves de acesso de longo prazo. Para ter mais informações, consulte [Credenciais de segurança temporárias no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) e [Serviços da Serviços da AWS que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

## Sessões de acesso direto para o Amazon S3
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Compatibilidade com o recurso de encaminhamento de sessões de acesso (FAS):** sim

 As sessões de acesso direto (FAS) usam as permissões da entidade principal chamando um AWS service (Serviço da AWS), bem como o AWS service (Serviço da AWS) solicitante, para fazer solicitações a serviços subsequentes. Para obter detalhes da política ao fazer solicitações de FAS, consulte [Sessões de acesso direto](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 
+ 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 obter mais informações, consulte [Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS)](UsingKMSEncryption.md). 
+ 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 obter mais informações, consulte [Solicitar acesso aos dados do Amazon S3 por meio da funcionalidade Concessões de Acesso do S3](access-grants-credentials.md).

## Perfis de serviço para o Amazon S3
<a name="security_iam_service-with-iam-roles-service"></a>

**Compatível com perfis de serviço:** sim

 O perfil de serviço é um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que um serviço assume para executar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para saber mais, consulte [Criar um perfil para delegar permissões a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 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
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Compatível com perfis vinculados ao serviço:** parcialmente

 Um perfil vinculado a serviço é um tipo de perfil de serviço vinculado a um AWS service (Serviço da AWS). O serviço pode presumir o perfil de executar uma ação em seu nome. Perfis vinculados 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 perfis vinculados 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](using-service-linked-roles.md).

**Serviço do Amazon S3 como entidade principal**


| Nome do serviço na política | Recurso do S3 | Mais informações | 
| --- | --- | --- | 
|  `s3.amazonaws.com`  |  Replicação do S3  |  [Visão geral da configuração da replicação em tempo real](replication-how-setup.md)  | 
|  `s3.amazonaws.com`  |  Notificações de eventos do S3  |  [Notificações de eventos do Amazon S3](EventNotifications.md)  | 
|  `s3.amazonaws.com`  |  Inventário S3  |  [Catalogar e analisar seus dados com o Inventário S3](storage-inventory.md)  | 
|  `access-grants.s3.amazonaws.com`  |  Concessões de Acesso do S3  |  [Registrar um local](access-grants-location-register.md)  | 
|  `batchoperations.s3.amazonaws.com`  |  Operações em lote do S3  |  [Conceder permissões para operações em lote](batch-ops-iam-role-policies.md)  | 
|  `logging.s3.amazonaws.com`  |  Registro em log de acesso ao servidor do S3  |  [Habilitar o log de acesso ao servidor do Amazon S3](enable-server-access-logging.md)  | 
|  `storage-lens.s3.amazonaws.com`  |  Lente de Armazenamento do S3  |  [Exibição de métricas de lente de armazenamento do Amazon S3 usando uma exportação de dados](storage_lens_view_metrics_export.md)  | 

# Como o Amazon S3 autoriza uma solicitação
<a name="how-s3-evaluates-access-control"></a>

Quando o Amazon S3 recebe uma solicitação — por exemplo, uma operação de bucket ou de objeto — ele primeiro verifica se o solicitante tem as permissões necessárias. O Amazon S3 avalia todas as políticas de acesso relevantes, as políticas de usuário e as políticas baseadas em recursos (política de bucket, lista de controle de acesso (ACL) de bucket e ACL de objeto) para decidir se autoriza a solicitação. 

**nota**  
Se a verificação de permissão do Amazon S3 não conseguir encontrar permissões válidas, será retornado um erro de permissão negada “Acesso negado” (403 Proibido). Consulte mais informações em [Solucionar erros de acesso negado (403 proibido) no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshoot-403-errors.html).

Para determinar se o solicitante tem permissão para executar a operação específica, o Amazon S3 faz o seguinte, na ordem que se apresenta, quando recebe uma solicitação:

1. Converte todas as políticas de acesso relevantes (política de usuário, política de bucket e ACLs) no tempo de execução em um conjunto de políticas para avaliação.

1. Avalia o conjunto de políticas resultante nas seguintes etapas. Em cada etapa, o Amazon S3 avalia um subconjunto de políticas em um contexto específico, com base na autoridade contextual. 

   1. **Contexto de usuário**: no contexto de usuário, a conta pai à qual o usuário pertence é a autoridade contextual.

      O Amazon S3 avalia um subconjunto de políticas de propriedade da conta pai. Esse subconjunto inclui a política de usuário que o pai anexa ao usuário. Se a conta principal também possuir o recurso na solicitação (bucket ou objeto), o Amazon S3 também avaliará as políticas de recursos correspondentes (política de bucket, ACL de bucket e ACL de objeto) ao mesmo tempo. 

      Um usuário deve ter permissão da conta pai para executar uma operação.

      Essa etapa será aplicável somente se a solicitação for feita por um usuário em uma Conta da AWS. Se a solicitação for feita usando as credenciais do usuário raiz de uma Conta da AWS, o Amazon S3 ignorará essa etapa.

   1. **Contexto de bucket**: no contexto de bucket, o Amazon S3 avalia as políticas de propriedade da Conta da AWS que possui o bucket. 

      Se a solicitação for para uma operação de bucket, o solicitante deverá ter permissão do proprietário do bucket. Se a solicitação for para um objeto, o Amazon S3 avaliará todas as políticas de propriedade do proprietário do bucket para verificar se o proprietário do bucket não negou explicitamente o acesso ao objeto. Se houver uma negação explícita definida, o Amazon S3 não autorizará a solicitação. 

   1. **Contexto de objeto**: se a solicitação for para um objeto, o Amazon S3 avaliará o subconjunto de políticas de propriedade do proprietário do objeto. 

Veja a seguir alguns exemplos de cenários que ilustram como o Amazon S3 autoriza uma solicitação.

**Example – O solicitante é uma entidade principal do IAM**  
Se o solicitante for uma entidade principal do IAM, o Amazon S3 deverá determinar se a Conta da AWS pai à qual a entidade principal pertence concedeu a permissão necessária para ele executar a operação. Além disso, se a solicitação for para uma operação de bucket, como uma solicitação para listar o conteúdo do bucket, o Amazon S3 deverá verificar se o proprietário do bucket concedeu permissão para o solicitante executar a operação. Para executar uma operação específica em um recurso, uma entidade principal do IAM precisa de permissão da Conta da AWS pai à qual ele pertence e da Conta da AWS que é proprietária do recurso.

 

**Example – O solicitante é uma entidade principal do IAM: se a solicitação for para uma operação ou um objeto que não pertence ao proprietário do bucket**  
Se a solicitação for para uma operação em um objeto que o proprietário do bucket não possui, além de verificar se o solicitante tem permissões do proprietário do objeto, o Amazon S3 também deverá verificar a política do bucket para garantir que o proprietário do bucket não definiu uma negação explícita no objeto. Um proprietário de bucket (que paga a fatura) pode negar explicitamente o acesso aos objetos do bucket independentemente de quem os possui. O proprietário do bucket também pode excluir qualquer objeto do bucket  
Por padrão, quando outra Conta da AWS faz upload de um objeto no bucket de uso geral do S3, essa conta (que gravou o objeto) é a proprietária do objeto, tem acesso a ele e pode conceder acesso a outros usuários por meio de listas de controle de acesso (ACLs). É possível usar a Propriedade de objetos para alterar esse comportamento padrão de modo que as ACLs sejam desabilitadas e o proprietário do bucket torne-se automaticamente proprietário de todos os objetos no bucket de uso geral. Como resultado, o controle de acesso para seus dados é baseado em políticas, como políticas de usuários do IAM, políticas de bucket do S3, políticas de endpoint da nuvem privada virtual (VPC) e políticas de controle de serviço (SCPs) do AWS Organizations. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

Para obter mais informações sobre como o Amazon S3 avalia as políticas de acesso para autorizar ou negar solicitações para operações de bucket e operações de objeto, consulte os seguintes tópicos:

**Topics**
+ [Como o Amazon S3 autoriza uma solicitação para uma operação de bucket](access-control-auth-workflow-bucket-operation.md)
+ [Como o Amazon S3 autoriza uma solicitação para uma operação de objeto](access-control-auth-workflow-object-operation.md)

# Como o Amazon S3 autoriza uma solicitação para uma operação de bucket
<a name="access-control-auth-workflow-bucket-operation"></a>

Quando o Amazon S3 recebe uma solicitação para uma operação de bucket, ele converte todas as permissões relevantes em um conjunto de políticas para avaliar em tempo de execução. As permissões relevantes incluem permissões baseadas em recursos (por exemplo, políticas de bucket e listas de controle de acesso de bucket) e políticas de usuário se a solicitação vier de uma entidade principal do IAM. Em seguida, o Amazon S3 avalia o conjunto de políticas resultante em uma série de etapas, de acordo com o contexto específico (contexto do usuário ou do bucket): 

1. **Contexto do usuário**: se o solicitante for um principal do IAM, o principal deverá ter permissão da Conta da AWS pai à qual ele pertence. Nesta etapa, o Amazon S3 avalia um subconjunto de políticas de propriedade da conta pai (também conhecida como a autoridade de contexto). Esse subconjunto de políticas inclui a política de usuário que a conta pai anexa ao principal. Se o pai também possuir o recurso na solicitação (neste caso, o bucket), o Amazon S3 também avaliará as políticas dos recursos correspondentes (a política do bucket e a ACL do bucket) ao mesmo tempo. Sempre que uma solicitação para uma operação de bucket é feita, os logs de acesso ao servidor registram o ID canônico do solicitante. Para obter mais informações, consulte [Registrar em log as solicitações com registro em log de acesso ao servidor](ServerLogs.md).

1. **Contexto de bucket**: o solicitante deve ter permissões do proprietário do bucket para executar uma operação específica de bucket. Nesta etapa, o Amazon S3 avalia um subconjunto de políticas de propriedade da Conta da AWS que é proprietária do bucket. 

   O proprietário do bucket pode conceder permissão usando uma política do bucket ou a ACL do bucket. Se a Conta da AWS que é proprietária do bucket também for a conta principal de uma entidade principal do IAM, ela poderá configurar permissões de bucket em uma política de usuário. 

 O seguinte é uma ilustração gráfica da avaliação baseada em contexto para a operação de bucket. 

![\[Ilustração da avaliação baseada em contexto para a operação de bucket.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/AccessControlAuthorizationFlowBucketResource.png)


Os exemplos a seguir ilustram a lógica da avaliação. 

## Exemplo 1: operação de bucket solicitada pelo proprietário do bucket
<a name="example1-policy-eval-logic"></a>

 Neste exemplo, o proprietário do bucket envia uma solicitação a uma operação de bucket usando as credenciais raiz da Conta da AWS. 

![\[Ilustração de uma operação de bucket solicitada pelo proprietário do bucket.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/example10-policy-eval-logic.png)


 O Amazon S3 executa a avaliação de contexto da seguinte forma:

1.  Como a solicitação é feita usando as credenciais do usuário raiz de uma Conta da AWS, o contexto do usuário não é avaliado.

1.  No contexto de bucket, o Amazon S3 analisa a política de bucket para determinar se o solicitante tem permissão para executar a operação. O Amazon S3 autoriza a solicitação. 

## Exemplo 2: operação de bucket solicitada por uma Conta da AWS que não é a proprietária do bucket
<a name="example2-policy-eval-logic"></a>

Neste exemplo, uma solicitação é feita usando as credenciais do usuário raiz da Conta da AWS 1111-1111-1111 a uma operação de bucket pertencente à Conta da AWS 2222-2222-2222. Nenhum usuário do IAM está envolvido nessa solicitação.

![\[Ilustração de uma operação de bucket solicitada por uma Conta da AWS que não é a proprietária do bucket.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/example20-policy-eval-logic.png)


Nesse exemplo, o Amazon S3 avalia o contexto da seguinte forma:

1. Como a solicitação é feita usando as credenciais do usuário raiz de uma Conta da AWS, o contexto do usuário não é avaliado.

1. No contexto de bucket, o Amazon S3 examina a política de bucket. Se o proprietário do bucket (Conta da AWS 2222-2222-2222) não tiver autorizado a Conta da AWS 1111-1111-1111 a executar a operação solicitada, o Amazon S3 negará a solicitação. Caso contrário, o Amazon S3 concederá a solicitação e executará a operação.

## Exemplo 3: operação de bucket solicitada por uma entidade principal do IAM cuja Conta da AWS pai também é a proprietária do bucket
<a name="example3-policy-eval-logic"></a>

 No exemplo, a solicitação é enviada por Jill, uma usuária do IAM na Conta da AWS 1111-1111-1111, que também é proprietária do bucket. 

![\[Ilustração de uma operação de bucket solicitada por uma entidade principal do IAM e pelo proprietário do bucket.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/example30-policy-eval-logic.png)


 O Amazon S3 executa a seguinte avaliação de contexto:

1.  Como a solicitação é de uma entidade principal do IAM, no contexto de usuário, o Amazon S3 avalia todas as políticas que pertencem à Conta da AWS pai para determinar se Jill tem permissão para executar a operação. 

    Neste exemplo, a Conta da AWS pai 1111-1111-1111 à qual a entidade principal pertence também é a proprietária do bucket. Como resultado, além da política do usuário, o Amazon S3 também avalia a política e a ACL do bucket no mesmo contexto, já que pertencem à mesma conta.

1. Como o Amazon S3 avaliou a política do bucket e a ACL do bucket como parte do contexto de usuário, ele não avalia o contexto de bucket.

## Exemplo 4: operação de bucket solicitada por uma entidade principal do IAM cuja Conta da AWS pai não é a proprietária do bucket
<a name="example4-policy-eval-logic"></a>

Neste exemplo, a solicitação é enviada por Jill, uma usuária do IAM cuja Conta da AWS pai é 1111-1111-1111, mas o bucket pertence a outra Conta da AWS, 2222-2222-2222. 

![\[Ilustração de uma operação de bucket solicitada por uma entidade principal do IAM que não é a proprietária do bucket.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/example40-policy-eval-logic.png)


Jill precisará de permissões da Conta da AWS pai e do proprietário do bucket. O Amazon S3 avalia o contexto da seguinte forma:

1. Como a solicitação é de um principal do IAM, o Amazon S3 avalia o contexto de usuário analisando as políticas criadas pela conta para verificar se Jill tem as permissões necessárias. Se Jill tiver permissão, o Amazon S3 avaliará o contexto de bucket. Se Jill não tiver permissão, a solicitação será negada.

1.  No contexto de bucket, o Amazon S3 verifica se o proprietário do bucket 2222-2222-2222 concedeu a Jill (ou à Conta da AWS pai) permissão para executar a operação solicitada. Se ela tiver permissão, o Amazon S3 concederá a solicitação e executará a operação. Caso contrário, o Amazon S3 negará a solicitação. 

# Como o Amazon S3 autoriza uma solicitação para uma operação de objeto
<a name="access-control-auth-workflow-object-operation"></a>

Ao receber uma solicitação para uma operação de objeto, o Amazon S3 converterá todas as permissões relevantes, permissões baseadas em recursos (lista de controle de acesso [ACL] de objeto, política de bucket, ACL do bucket) e políticas de usuário do IAM, se a solicitação for de um usuário, em um conjunto de políticas a serem avaliadas no tempo de execução. Em seguida, ele avalia o conjunto de políticas resultante em uma série de etapas. Em cada etapa, ele avalia um subconjunto de políticas em três contextos específicos (contexto do usuário, do bucket e do objeto):

1. **Contexto do usuário**: se o solicitante for um principal do IAM, o principal deverá ter permissão da Conta da AWS pai à qual ele pertence. Nesta etapa, o Amazon S3 avalia um subconjunto de políticas de propriedade da conta pai (também conhecida como a autoridade de contexto). Esse subconjunto de políticas inclui a política de usuário que a pai anexa ao principal. Se a conta principal também possuir o recurso na solicitação (bucket ou objeto), o Amazon S3 avaliará as políticas de recursos correspondentes (política de bucket, ACL de bucket e ACL de objeto) ao mesmo tempo. 
**nota**  
Se a Conta da AWS pai for a proprietária do recurso (bucket ou objeto), ela poderá conceder permissões de recurso à entidade principal do IAM usando a política de usuário ou a política de recurso. 

1. **Contexto do bucket**: neste contexto, o Amazon S3 avalia as políticas de propriedade da Conta da AWS que possui o bucket.

   Se a Conta da AWS que é proprietária do objeto na solicitação não for a mesma que é proprietária do bucket, o Amazon S3 verificará as políticas se o proprietário do bucket tiver negado explicitamente o acesso ao objeto. Se houver uma negação explícita definida no objeto, o Amazon S3 não autorizará a solicitação. 

1. **Contexto de objeto**: o solicitante deve ter permissões do proprietário do objeto para executar uma operação específica de objeto. Nesta etapa, o Amazon S3 avalia a ACL do objeto. 
**nota**  
Se os proprietários do bucket e do objeto forem os mesmos, o acesso ao objeto poderá ser concedido na política de bucket, que é avaliada no contexto de bucket. Se os proprietários forem diferentes, os proprietários do objeto deverão usar uma ACL do objeto para conceder permissões. Se a Conta da AWS que é proprietária do objeto também for a conta pai à qual a entidade principal do IAM pertence, ela poderá configurar permissões de objeto em uma política de usuário, que é avaliada no contexto de usuário. Para obter mais informações sobre como usar essas alternativas de política de acesso, consulte [Demonstrações que usam políticas para gerenciar o acesso a recursos do Amazon S3](example-walkthroughs-managing-access.md).  
Como proprietário do bucket, se você quiser ter propriedade de todos os objetos do bucket e usar políticas de bucket ou políticas baseadas no IAM para gerenciar o acesso a esses objetos, use a configuração aplicada pelo proprietário do bucket em Propriedade do objeto. Com essa configuração, você, como proprietário do bucket, automaticamente tem a propriedade e o controle total sobre todos os objetos de seu bucket. As ACLs de bucket e objeto não poderão ser editadas e não serão mais consideradas para acesso. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

 O seguinte é uma ilustração gráfica da avaliação baseada em contexto para uma operação de objeto.

![\[Ilustração da avaliação baseada em contexto para uma operação de objeto.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/AccessControlAuthorizationFlowObjectResource.png)


## Exemplo de uma solicitação de operação de objeto
<a name="access-control-auth-workflow-object-operation-example1"></a>

Neste exemplo, a usuária do IAM, Jill, cuja Conta da AWS pai é 1111-1111-1111, envia uma solicitação de operação de objeto (por exemplo, `GetObject`) a um objeto pertencente à Conta da AWS 3333-3333-3333 em um bucket pertencente à Conta da AWS 2222-2222-2222. 

![\[Ilustração de uma solicitação de operação de objeto.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/example50-policy-eval-logic.png)


Jill precisará de permissões da Conta da AWS pai, do proprietário do bucket e do proprietário do objeto. O Amazon S3 avalia o contexto da seguinte forma:

1. Como a solicitação é de uma entidade principal do IAM, o Amazon S3 avalia o contexto de usuário para verificar se a Conta da AWS pai 1111-1111-1111 forneceu a Jill permissão para executar a operação solicitada. Se ela tiver essa permissão, o Amazon S3 avaliará o contexto de bucket. Caso contrário, o Amazon S3 negará a solicitação.

1. No contexto do bucket, o proprietário do bucket, a Conta da AWS 2222-2222-2222, é a autoridade de contexto. O Amazon S3 avalia a política de bucket para determinar se o proprietário do bucket negou explicitamente o acesso de Jill ao objeto. 

1. No contexto do objeto, a autoridade de contexto é a Conta da AWS 3333-3333-3333, a proprietária do objeto. O Amazon S3 avalia a ACL do objeto para determinar se Jill tem permissão para acessar o objeto. Se tiver, o Amazon S3 autorizará a solicitação. 

# Permissões obrigatórias para operações de API do Amazon S3
<a name="using-with-s3-policy-actions"></a>

**nota**  
Esta página é sobre as ações de política do Amazon S3 para buckets de uso geral. Para saber mais sobre as ações de política do Amazon S3 para buckets de diretório, consulte [Ações para buckets de diretório](s3-express-security-iam.md#s3-express-security-iam-actions).

Para realizar uma operação de API do S3, é necessário ter as permissões corretas. Esta página associa as operações de API do S3 às permissões necessárias. Para conceder permissões para realizar uma operação de API do S3, você deve criar uma política válida (como uma política de bucket do S3 ou uma política baseada em identidade do IAM) e especificar as ações correspondentes no elemento `Action` da política. Essas ações são chamadas de ações de políticas. Nem toda operação de API do S3 é representada por uma única permissão (uma única ação de política), e algumas permissões (algumas ações de política) são necessárias para diferentes operações de API. 

Ao criar políticas, você deve especificar o elemento `Resource` com base no tipo de recurso correto exigido pelas ações de política correspondentes do Amazon S3. Esta página categoriza as permissões para as operações de API do S3 de acordo com os tipos de recurso. Consulte mais informações sobre os tipos de recurso em [Resource types defined by Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies) na *Referência de autorização do serviço*. Consulte uma lista completa de ações, recursos e chaves de condição do Amazon S3 para uso em políticas em [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) 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](https://docs.aws.amazon.com//AmazonS3/latest/API/API_Operations.html) na *Referência de API do Amazon Simple Storage Service*.

Para ter mais informações sobre como resolver os erros HTTP `403 Forbidden` no S3, consulte [Solucionar erros de acesso negado (403 Forbidden) no Amazon S3](troubleshoot-403-errors.md). Para ter mais informações sobre os recursos do IAM para usar com o S3, consulte [Como o Amazon S3 funciona com o IAM](security_iam_service-with-iam.md). Para ter mais informações sobre as práticas recomendadas de segurança do S3, consulte [Práticas recomendadas de segurança para o Amazon S3](security-best-practices.md). 

**Topics**
+ [Permissões e operações de bucket](#using-with-s3-policy-actions-related-to-buckets)
+ [Permissões e operações do objeto](#using-with-s3-policy-actions-related-to-objects)
+ [Operações e permissões de ponto de acesso para buckets de uso geral](#using-with-s3-policy-actions-related-to-accesspoint)
+ [Permissões e operações de ponto de acesso do Object Lambda](#using-with-s3-policy-actions-related-to-olap)
+ [Operações e permissões de ponto de acesso multirregional](#using-with-s3-policy-actions-related-to-mrap)
+ [Operações e permissões de trabalho em lote](#using-with-s3-policy-actions-related-to-batchops)
+ [Operações e permissões de configuração da Lente de Armazenamento do S3](#using-with-s3-policy-actions-related-to-lens)
+ [Operações e permissões de grupos da Lente de Armazenamento do S3](#using-with-s3-policy-actions-related-to-lens-groups)
+ [Operações e permissões de instância da funcionalidade Concessão de Acesso do S3](#using-with-s3-policy-actions-related-to-s3ag-instances)
+ [Operações e permissões de localização da Concessão de Acesso do S3](#using-with-s3-policy-actions-related-to-s3ag-locations)
+ [Operações e permissões de concessão do recurso Concessão de Acesso do S3](#using-with-s3-policy-actions-related-to-s3ag-grants)
+ [Permissões e operações de conta](#using-with-s3-policy-actions-related-to-accounts)

## Permissões e operações de bucket
<a name="using-with-s3-policy-actions-related-to-buckets"></a>

As operações de bucket são operações de API do S3 que operam no tipo de recurso de bucket. É necessário especificar as ações de política do S3 para operações de bucket nas respectivas políticas ou em políticas baseadas em identidade do IAM.

Nas políticas, o elemento `Resource` deve ser o nome do recurso da Amazon (ARN) do bucket. Para ter mais informações sobre o formato do elemento `Resource` e políticas de exemplo, consulte [Operações de buckets](security_iam_service-with-iam.md#using-with-s3-actions-related-to-buckets).

**nota**  
Para conceder permissões a operações de bucket em políticas de pontos de acesso, observe o seguinte:  
As permissões concedidas para operações de bucket em uma política de ponto de acesso entrarão em vigor somente se o bucket subjacente conceder as mesmas permissões. Ao usar um ponto de acesso, é necessário 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.
Nas políticas de pontos de acesso que concedem permissões às operações de bucket, o elemento `Resource` deve ser o ARN `accesspoint`. Para ter mais informações sobre o formato do elemento `Resource` e políticas de exemplo, consulte [Operações de bucket em políticas de ponto de acesso para buckets de uso geral](security_iam_service-with-iam.md#bucket-operations-ap). Para ter mais informações sobre políticas de ponto de acesso, consulte [Configurar políticas do IAM para uso de pontos de acesso](access-points-policies.md). 
Nem todas as operações de bucket são compatíveis com pontos de acesso. Para obter mais informações, consulte [Compatibilidade de pontos de acesso com operações do S3](access-points-service-api-support.md#access-points-operations-support).

Veja a seguir a correlação entre as operações de bucket e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)  |  (Obrigatória) `s3:CreateBucket`  |  Obrigatória para criar um bucket do S3.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutBucketAcl`  |  Obrigatória se você quiser usar a lista de controle de acesso (ACL) para especificar permissões em um bucket ao fazer uma solicitação `CreateBucket`.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutBucketObjectLockConfiguration`, `s3:PutBucketVersioning`  |  Obrigatória se você quiser habilitar o Bloqueio de Objetos ao criar um bucket.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutBucketOwnershipControls`  |  Obrigatória se você quiser especificar a propriedade de objetos do S3 ao criar um bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) (Operação de API da V2. O nome da ação da política do IAM é o mesmo para as operações de API da V1 e da V2.)  |  (Obrigatórias) `s3:CreateBucketMetadataTableConfiguration`, `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`, `s3tables:CreateTable`, `s3tables:GetTable`, `s3tables:PutTablePolicy`, `s3tables:PutTableEncryption`, `kms:DescribeKey`  |  Necessária para criar uma configuração de tabelas de metadados em um bucket de uso geral.  Para criar um bucket de tabela gerenciado pela AWS e as tabelas de metadados que estão especificadas em sua configuração de tabela de metadados, você deve ter as permissões `s3tables` especificadas. Se você quiser criptografar suas tabelas de metadados com criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), precisará de outras permissões na sua política de chave do KMS. Para obter mais informações, consulte [Definir permissões para configurar tabelas de metadados](metadata-tables-permissions.md). Se você também quiser integrar o bucket de tabela gerenciado pela AWS aos serviços de analytics da AWS para poder consultar a tabela de metadados, precisará de permissões adicionais. Para ter mais informações, consulte [Integrating Amazon S3 Tables with AWS analytics services](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html) (Operação de API da V1)  |  (Obrigatório) `s3:CreateBucketMetadataTableConfiguration`, `s3tables:CreateNamespace`, `s3tables:CreateTable`, `s3tables:GetTable`, `s3tables:PutTablePolicy`  |  Necessária para criar uma configuração de tabelas de metadados em um bucket de uso geral.  Para criar a tabela de metadados no bucket de tabela especificado na configuração de tabelas de metadados, é necessário ter as permissões `s3tables` especificadas. Se você quiser criptografar suas tabelas de metadados com criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), precisará de outras permissões. Para obter mais informações, consulte [Definir permissões para configurar tabelas de metadados](metadata-tables-permissions.md). Se você também quiser integrar o bucket de tabela com os serviços de analytics da AWS para poder consultar a tabela de metadados, precisará de permissões adicionais. Para ter mais informações, consulte [Integrating Amazon S3 Tables with AWS analytics services](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)  |  (Obrigatória) `s3:DeleteBucket`  |  Obrigatória para excluir um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html)  |  (Obrigatória) `s3:PutAnalyticsConfiguration`  |  Obrigatória para excluir uma configuração de analytics do S3 de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html)  |  (Obrigatória) `s3:PutBucketCORS`  |  Obrigatória para excluir a configuração de compartilhamento de recursos entre origens (CORS) de um bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html)  |  (Obrigatória) `s3:PutEncryptionConfiguration`  |  Obrigatória para redefinir a configuração de criptografia padrão para um bucket do S3 como criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html)  |  (Obrigatória) `s3:PutIntelligentTieringConfiguration`  |  Obrigatória para excluir a configuração existente do S3 Intelligent-Tiering de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html)  |  (Obrigatória) `s3:PutInventoryConfiguration`  |  Obrigatória para excluir uma configuração do Inventário S3 de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)  |  (Obrigatória) `s3:PutLifecycleConfiguration`  |  Obrigatória para excluir a configuração de ciclo de vida do S3 para um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) (Operação de API da V2. O nome da ação da política do IAM é o mesmo para as operações de API da V1 e da V2.)  |  (Obrigatória) `s3:DeleteBucketMetadataTableConfiguration`  |  Necessária para excluir uma configuração de tabelas de metadados de um bucket de uso geral.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) (Operação de API da V1)  |  (Obrigatória) `s3:DeleteBucketMetadataTableConfiguration`  |  Necessária para excluir uma configuração de tabelas de metadados de um bucket de uso geral.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html)  |  (Obrigatória) `s3:PutMetricsConfiguration`  |  Obrigatória para excluir uma configuração de métricas de solicitação do Amazon CloudWatch de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketOwnershipControls.html)   |  (Obrigatória) `s3:PutBucketOwnershipControls`  |  Obrigatória para remover a configuração de propriedade do objeto de um bucket do S3. Após a remoção, a configuração de propriedade do objeto torna-se `Object writer`.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)  |  (Obrigatória) `s3:DeleteBucketPolicy`  |  Obrigatória para excluir a política de um bucket do S3.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html)  |  (Obrigatória) `s3:PutReplicationConfiguration`  |  Obrigatória para excluir a configuração de replicação de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)  |  (Obrigatória) `s3:PutBucketTagging`  |  Obrigatória para excluir tags de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html)  |  (Obrigatória) `s3:DeleteBucketWebsite`  |  Obrigatória para remover a configuração do site de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) (nível de bucket)  |  (Obrigatória) `s3:PutBucketPublicAccessBlock`  |  Obrigatória para remover a configuração do Bloqueio de Acesso Público de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html)  |  (Obrigatória) `s3:GetAccelerateConfiguration`  |  Obrigatória para usar o sub-recurso de aceleração para exibir o estado da Aceleração de Transferências do Amazon S3 de um bucket, que é Habilitado ou Suspenso.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAcl.html)  |  (Obrigatória) `s3:GetBucketAcl`  |  Obrigatória para exibir uma lista de controle de acesso (ACL) de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html)  |  (Obrigatória) `s3:GetAnalyticsConfiguration`  |  Obrigatória para exibir uma configuração de analytics identificada pelo ID de configuração de analytics de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html)  |  (Obrigatória) `s3:GetBucketCORS`  |  Obrigatória para exibir a configuração de compartilhamento de recursos entre origens (CORS) de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)  |  (Obrigatória) `s3:GetEncryptionConfiguration`  |  Obrigatória para exibir a configuração de criptografia padrão de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html)  |  (Obrigatória) `s3:GetIntelligentTieringConfiguration`  |  Obrigatória para obter a configuração existente do S3 Intelligent-Tiering de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html)  |  (Obrigatória) `s3:GetInventoryConfiguration`  |  Obrigatória para exibir uma configuração de inventário identificada pelo ID de configuração de inventário do bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)  |  (Obrigatória) `s3:GetLifecycleConfiguration`  |  Obrigatória para exibir a configuração de ciclo de vida do S3 do bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLocation.html)  |  (Obrigatória) `s3:GetBucketLocation`  |  Obrigatória para exibir a Região da AWS onde reside um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html)  |  (Obrigatória) `s3:GetBucketLogging`  |  Obrigatória para exibir o status do registro em log de um bucket do S3 e as permissões que os usuários têm para visualizar e modificar esse status.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) (Operação de API da V2. O nome da ação da política do IAM é o mesmo para as operações de API da V1 e da V2.)  |  (Obrigatória) `s3:GetBucketMetadataTableConfiguration`  |  Necessária para recuperar uma configuração de tabelas de metadados para um bucket de uso geral.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) (Operação de API da V1)  |  (Obrigatória) `s3:GetBucketMetadataTableConfiguration`  |  Necessária para recuperar uma configuração de tabelas de metadados para um bucket de uso geral.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html)  |  (Obrigatória) `s3:GetMetricsConfiguration`  |  Obrigatória para obter a configuração de uma métrica especificada pelo ID da configuração de métricas do bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html)  |  (Obrigatória) `s3:GetBucketNotification`  |  Obrigatória para exibir a configuração de notificação de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketOwnershipControls.html)  |  (Obrigatória) `s3:GetBucketOwnershipControls`  |  Obrigatória para recuperar a configuração de propriedade do objeto de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)  |  (Obrigatória) `s3:GetBucketPolicy`  |  Obrigatória para exibir a política de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html)  |  (Obrigatória) `s3:GetBucketPolicyStatus`  |  Obrigatória para recuperar o status da política de um bucket do S3 que indica se o bucket é público.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html)  |  (Obrigatória) `s3:GetReplicationConfiguration`  |  Obrigatória para exibir a configuração de replicação de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html)  |  (Obrigatória) `s3:GetBucketRequestPayment`  |  Obrigatória para exibir a configuração de pagamento de solicitação de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html)  |  (Obrigatória) `s3:GetBucketVersioning`  |  Obrigatória para exibir o estado de versionamento de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)  |  (Obrigatória) `s3:GetBucketTagging`  |  Obrigatória para exibir o conjunto de tags associado a um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html)  |  (Obrigatória) `s3:GetBucketWebsite`  |  Obrigatória para exibir a configuração do site de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html)  |  (Obrigatória) `s3:GetBucketObjectLockConfiguration`  |  Obrigatória para obter a configuração do Bloqueio de Objetos de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html) (nível de bucket)  |  (Obrigatória) `s3:GetBucketPublicAccessBlock`  |  Obrigatória para recuperar a configuração do Bloqueio de Acesso Público de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)  |  (Obrigatória) `s3:ListBucket`  |  Obrigatória para determinar se existe um bucket e se você tem permissão para acessá-lo.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html)  |  (Obrigatória) `s3:GetAnalyticsConfiguration`  |  Obrigatória para listar as configurações de analytics de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html)  |  (Obrigatória) `s3:GetIntelligentTieringConfiguration`  |  Obrigatória para listar as configurações do S3 Intelligent-Tiering de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html)  |  (Obrigatória) `s3:GetInventoryConfiguration`  |  Obrigatória para exibir uma lista de configurações de inventário de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketMetricsConfigurations.html)  |  (Obrigatória) `s3:GetMetricsConfiguration`  |  Obrigatória para listar as configurações de métricas de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)  |  (Obrigatória) `s3:ListBucket`  |  Obrigatória para listar alguns ou todos os objetos (até mil) de um bucket do S3.  | 
|    |  (Obrigatória em determinadas condições) `s3:GetObjectAcl`  |  Obrigatória se você quiser exibir informações do proprietário do objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)  |  (Obrigatória) `s3:ListBucket`  |  Obrigatória para listar alguns ou todos os objetos (até mil) de um bucket do S3.  | 
|    |  (Obrigatória em determinadas condições) `s3:GetObjectAcl`  |  Obrigatória se você quiser exibir informações do proprietário do objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html)  |  (Obrigatória) `s3:ListBucketVersions`  |  Obrigatória para obter metadados sobre todas as versões de objetos em um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html)  |  (Obrigatória) `s3:PutAccelerateConfiguration`  |  Obrigatória para definir a configuração de aceleração de um bucket existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html)  |  (Obrigatória) `s3:PutBucketAcl`  |  Obrigatória para usar listas de controle de acesso (ACLs) e definir as permissões em um bucket existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html)  |  (Obrigatória) `s3:PutAnalyticsConfiguration`  |  Obrigatória para definir uma configuração de analytics de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)  |  (Obrigatória) `s3:PutBucketCORS`  |  Obrigatório para definir a configuração de compartilhamento de recursos entre origens (CORS) de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)  |  (Obrigatória) `s3:PutEncryptionConfiguration`  |  Obrigatória para configurar a criptografia padrão de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html)  |  (Obrigatória) `s3:PutIntelligentTieringConfiguration`  |  Obrigatória para obter a configuração do S3 Intelligent-Tiering de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html)  |  (Obrigatória) `s3:PutInventoryConfiguration`  |  Obrigatória para adicionar uma configuração de inventário a um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)  |  (Obrigatória) `s3:PutLifecycleConfiguration`  |  Obrigatória para criar uma configuração de ciclo de vida do S3 ou substituir uma configuração de ciclo de vida existente de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html)  |  (Obrigatória) `s3:PutBucketLogging`  |  Obrigatória para definir os parâmetros de registro em log de um bucket do S3 e especificar permissões para quem pode visualizar e modificar os parâmetros de registro em log.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html)  |  (Obrigatória) `s3:PutMetricsConfiguration`  |  Obrigatória para definir ou atualizar uma configuração de métricas de solicitação do Amazon CloudWatch de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html)  |  (Obrigatória) `s3:PutBucketNotification`  |  Obrigatória para habilitar notificações de eventos especificados para um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketOwnershipControls.html)  |  (Obrigatória) `s3:PutBucketOwnershipControls`  |  Obrigatória para criar ou modificar a configuração de propriedade do objeto de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)  |  (Obrigatória) `s3:PutBucketPolicy`  |  Obrigatória para aplicar uma política de bucket do S3 a um bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html)  |  (Obrigatória) `s3:PutReplicationConfiguration`  |  Obrigatória para criar uma configuração de replicação ou substituir uma existente por um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketRequestPayment.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketRequestPayment.html)  |  (Obrigatória) `s3:PutBucketRequestPayment`  |  Obrigatória para definir a configuração de pagamento de solicitação de um bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)  |  (Obrigatória) `s3:PutBucketTagging`  |  Obrigatória para adicionar um conjunto de tags a um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html)  |  (Obrigatória) `s3:PutBucketVersioning`  |  Obrigatória para definir o estado de versionamento de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)  |  (Obrigatória) `s3:PutBucketWebsite`  |  Obrigatória para configurar um bucket como um site e definir a configuração do site.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html)  |  (Obrigatória) `s3:PutBucketObjectLockConfiguration`  |  Obrigatória para aplicar a configuração do Bloqueio de Objetos de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) (nível de bucket)  |  (Obrigatória) `s3:PutBucketPublicAccessBlock`  |  Obrigatória para criar ou modificar a configuração do Bloqueio de Acesso Público de um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html)  |  (Obrigatórias) `s3:UpdateBucketMetadataInventoryTableConfiguration`, `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`, `s3tables:CreateTable`, `s3tables:GetTable`, `s3tables:PutTablePolicy`, `s3tables:PutTableEncryption`, `kms:DescribeKey`  |  Necessárias para habilitar ou desabilitar uma tabela de inventário para uma configuração de tabela de metadados em um bucket de uso geral. Se você quiser criptografar sua tabela de inventário com criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), precisará de outras permissões na sua política de chave do KMS. Para obter mais informações, consulte [Definir permissões para configurar tabelas de metadados](metadata-tables-permissions.md).  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html)  |  (Obrigatória) `s3:UpdateBucketMetadataJournalTableConfiguration`  |  Necessárias para habilitar ou desabilitar a expiração dos registro da tabela de diário para uma configuração de tabela de metadados em um bucket de uso geral.  | 

## Permissões e operações do objeto
<a name="using-with-s3-policy-actions-related-to-objects"></a>

As operações de objeto são operações de API do S3 que atuam no tipo de recurso do objeto. É necessário especificar ações de política do S3 para operações de objeto em políticas baseadas em recursos (como políticas de bucket, políticas de ponto de acesso, políticas de ponto de acesso multirregional, políticas de endpoint da VPC) ou políticas baseadas em identidade do IAM.

Nas políticas, o elemento `Resource` deve ser o ARN do objeto. Para ter mais informações sobre o formato do elemento `Resource` e políticas de exemplo, consulte [Operações com objetos](security_iam_service-with-iam.md#using-with-s3-actions-related-to-objects). 

**nota**  
As ações de política do AWS KMS (`kms:GenerateDataKey` e `kms:Decrypt`) são aplicáveis somente ao tipo de recurso do AWS KMS e devem ser especificadas em políticas baseadas em identidade do IAM e nas políticas baseadas em recursos do AWS KMS (políticas de chave do AWS KMS). Não é possível especificar ações de política do AWS KMS em políticas baseadas em recursos do S3, como políticas de bucket do S3.
Ao usar pontos de acesso para controlar o acesso a operações de objeto, é possível usar políticas de ponto de acesso. Para conceder permissões a operações de objeto em políticas de ponto de acesso, observe o seguinte:  
Em políticas de ponto de acesso que concedem permissões a operações de objeto, o elemento `Resource` deve ser os ARNs para objetos acessados por meio de um ponto de acesso. Para ter mais informações sobre o formato do elemento `Resource` e políticas de exemplo, consulte [Operações de objetos em políticas de ponto de acesso](security_iam_service-with-iam.md#object-operations-ap).
Nem todas as operações de objeto são compatíveis com pontos de acesso. Para obter mais informações, consulte [Compatibilidade de pontos de acesso com operações do S3](access-points-service-api-support.md#access-points-operations-support).
Nem todas as operações de objeto são compatíveis com pontos de acesso multirregionais. Para obter mais informações, consulte [Compatibilidade de pontos de acesso multirregionais com operações do S3](MrapOperations.md#mrap-operations-support).

Veja a seguir a correlação entre as operações de bucket e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html)  |  (Obrigatória) `s3:AbortMultipartUpload`  |  Obrigatória para interromper um carregamento fracionado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)  |  (Obrigatória) `s3:PutObject`  |  Obrigatória para concluir o carregamento fracionado.  | 
|    |  (Obrigatória em determinadas condições) `kms:Decrypt`  |  Obrigatória se você quiser concluir um carregamento fracionado para um objeto criptografado com uma chave do AWS KMS gerenciada pelo cliente.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)  |  Para um objeto de origem:  |  Para um objeto de origem:  | 
|    |  (Obrigatória) `s3:GetObject` ou `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obrigatória em determinadas condições) `kms:Decrypt`  |  Obrigatória se você quiser copiar um objeto do bucket de origem criptografado com uma chave do AWS KMS gerenciada pelo cliente.   | 
|    |  Para um objeto de destino:  |  Para um objeto de destino:  | 
|    |  (Obrigatória) `s3:PutObject`  |  Obrigatória para colocar o objeto copiado no bucket de destino.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectAcl`  |  Obrigatória se você quiser colocar o objeto copiado com a lista de controle de acesso (ACL) do objeto no bucket de destino ao fazer uma solicitação `CopyObject`.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectTagging`  |  Obrigatória se você quiser colocar o objeto copiado com marcação de objeto no bucket de destino ao fazer uma solicitação `CopyObject`.  | 
|    |  (Obrigatória em determinadas condições) `kms:GenerateDataKey`  |  Obrigatória se você quiser criptografar o objeto copiado com uma chave do AWS KMS gerenciada pelo cliente e colocá-lo no bucket de destino.   | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectRetention`  |  Obrigatória se você quiser definir uma configuração de retenção do Bloqueio de Objetos para o novo objeto.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectLegalHold`  |  Obrigatória se quiser colocar uma retenção legal do Bloqueio de Objetos no novo objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)  |  (Obrigatória) `s3:PutObject`  |  Obrigatória para criar um carregamento fracionado.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectAcl`  |  Obrigatória se você quiser definir as permissões de lista de controle de acesso (ACL) para objetos carregados.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectTagging`  |  Obrigatória se você quiser adicionar marcações de objeto ao objeto carregado.  | 
|    |  (Obrigatória em determinadas condições) `kms:GenerateDataKey`  |  Obrigatória se você quiser usar uma chave do AWS KMS gerenciada pelo cliente para criptografar um objeto ao iniciar um carregamento fracionado.   | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectRetention`  |  Obrigatória se você quiser definir uma configuração de retenção do Bloqueio de Objetos para o objeto carregado.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectLegalHold`  |  Obrigatória se você quiser aplicar uma retenção legal do Bloqueio de Objetos ao objeto carregado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)  |  (Obrigatória) `s3:DeleteObject` ou `s3:DeleteObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obrigatória em determinadas condições) `s3:BypassGovernanceRetention`  |  Obrigatória se você quiser excluir um objeto protegido pelo modo de governança para retenção do Bloqueio de Objetos.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)  |  (Obrigatória) `s3:DeleteObject` ou `s3:DeleteObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obrigatória em determinadas condições) `s3:BypassGovernanceRetention`  |  Obrigatória se você quiser excluir objetos protegidos pelo modo de governança para retenção do Bloqueio de Objetos.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)  |  (Obrigatória) `s3:DeleteObjectTagging` ou `s3:DeleteObjectVersionTagging`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)  |  (Obrigatória) `s3:GetObject` ou `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obrigatória em determinadas condições) `kms:Decrypt`  |  Obrigatória se você quiser obter e descriptografar um objeto criptografado com uma chave do AWS KMS gerenciada pelo cliente.   | 
|    |  (Obrigatória em determinadas condições) `s3:GetObjectTagging`  |  Obrigatória se você quiser obter o conjunto de tags de um objeto ao fazer uma solicitação `GetObject`.  | 
|    |  (Obrigatória em determinadas condições) `s3:GetObjectLegalHold`  |  Obrigatória se você quiser conhecer o status atual de retenção legal do Bloqueio de Objetos de um objeto.  | 
|    |  (Obrigatória em determinadas condições) `s3:GetObjectRetention`  |  Obrigatória se você quiser recuperar as configurações de retenção do Bloqueio de Objetos de um objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html)  |  (Obrigatória) `s3:GetObjectAcl` ou `s3:GetObjectVersionAcl`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html)  |  (Obrigatória) `s3:GetObject` ou `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obrigatória em determinadas condições) `kms:Decrypt`  |  Obrigatória se quiser recuperar atributos relacionados a um objeto criptografado com uma chave do AWS KMS gerenciada pelo cliente.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html)  |  (Obrigatória) `s3:GetObjectLegalHold`  |  Obrigatória para obter o status atual de retenção legal do Bloqueio de Objetos de um objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html)  |  (Obrigatória) `s3:GetObjectRetention`  |  Obrigatória para recuperar as configurações de retenção do Bloqueio de Objetos de um objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)  |  (Obrigatória) `s3:GetObjectTagging` ou `s3:GetObjectVersionTagging`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTorrent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTorrent.html)  |  (Obrigatória) `s3:GetObject`  |  Obrigatória para exibir os arquivos torrent de um objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)  |  (Obrigatória) `s3:GetObject`  |  Obrigatória para recuperar metadados de um objeto sem exibir o próprio objeto.  | 
|    |  (Obrigatória em determinadas condições) `s3:GetObjectLegalHold`  |  Obrigatória se você quiser conhecer o status atual de retenção legal do Bloqueio de Objetos de um objeto.  | 
|    |  (Obrigatória em determinadas condições) `s3:GetObjectRetention`  |  Obrigatória se você quiser recuperar as configurações de retenção do Bloqueio de Objetos de um objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html)  |  (Obrigatória) `s3:ListBucketMultipartUploads`  |  Obrigatória para listar carregamentos fracionados em um bucket.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html)  |  (Obrigatória) `s3:ListMultipartUploadParts`  |  Obrigatória para listar as partes carregadas de um carregamento fracionado específico.  | 
|    |  (Obrigatória em determinadas condições) `kms:Decrypt`  |  Obrigatória se você quiser listar partes de um carregamento fracionado criptografado com uma chave do AWS KMS gerenciada pelo cliente.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)  |  (Obrigatória) `s3:PutObject`  |  Obrigatória para colocar um objeto.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectAcl`  |  Obrigatória se você quiser colocar a lista de controle de acesso (ACL) do objeto ao fazer uma solicitação `PutObject`.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectTagging`  |  Obrigatória se você quiser colocar a marcação de objetos ao fazer uma solicitação `PutObject`.  | 
|    |  (Obrigatória em determinadas condições) `kms:GenerateDataKey`  |  Obrigatória se você quiser criptografar um objeto com uma chave do AWS KMSgerenciada pelo cliente .   | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectRetention`  |  Obrigatória se você quiser definir uma configuração de retenção do Bloqueio de Objetos em um objeto.  | 
|    |  (Obrigatória em determinadas condições) `s3:PutObjectLegalHold`  |  Obrigatória se quiser aplicar uma retenção legal do Bloqueio de Objetos a um objeto especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html)  |  (Obrigatória) `s3:PutObjectAcl` ou `s3:PutObjectVersionAcl`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html)  |  (Obrigatória) `s3:PutObjectLegalHold`  |  Obrigatória para aplicar uma configuração de retenção legal do Bloqueio de Objetos a um objeto.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html)  |  (Obrigatória) `s3:PutObjectRetention`  |  Obrigatória para aplicar uma configuração de retenção do Bloqueio de Objetos a um objeto.  | 
|    |  (Obrigatória em determinadas condições) `s3:BypassGovernanceRetention`  |  Obrigatória se você quiser ignorar o modo de governança de uma configuração de retenção do Bloqueio de Objetos.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)  |  (Obrigatória) `s3:PutObjectTagging` ou `s3:PutObjectVersionTagging`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html)  |  (Obrigatória) `s3:RestoreObject`  |  Obrigatória para restaurar uma cópia de um objeto arquivado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html)  |  (Obrigatória) `s3:GetObject`  |  Obrigatória para filtrar o conteúdo de um objeto do S3 com base em uma declaração de linguagem de consulta estruturada (SQL) simples.  | 
|    |  (Obrigatória em determinadas condições) `kms:Decrypt`  |  Obrigatória se você quiser filtrar o conteúdo de um objeto do S3 criptografado com uma chave do AWS KMS gerenciada pelo cliente.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html) | (Obrigatórias) `s3:UpdateObjectEncryption`, `s3:PutObject`, `kms:Encrypt`, `kms:Decrypt`, `kms:GenerateDataKey`, `kms:ReEncrypt*`  | Obrigatório se você quiser alterar o tipo de criptografia de objetos da criptografia do lado do servidor com chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3) para a criptografia do lado do servidor com chaves de criptografia do AWS Key Management Service (AWS KMS) (SSE-KMS). Também é possível usar a operação `UpdateObjectEncryption` para aplicar chaves de bucket do S3 e reduzir os custos da solicitação AWS KMS ou alterar a chave do KMS gerenciada pelo cliente utilizada na criptografia de seus dados e cumprir padrões personalizados de alternância de chaves. | 
|    | (Obrigatória em determinadas condições) `organizations:DescribeAccount` | Se você estiver usando o AWS Organizations, para usar a operação `UpdateObjectEncryption` com chaves do KMS gerenciadas pelo cliente de outras Contas da AWS em sua organização, será necessário ter a permissão `organizations:DescribeAccount`.   Também será necessário entrar em contato com o AWS Support se quiser usar AWS KMS keys pertencentes a outras contas de membro em sua organização.   | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)  |  (Obrigatória) `s3:PutObject`  |  Obrigatória para fazer upload de uma parte em um carregamento fracionado.  | 
|    |  (Obrigatória em determinadas condições) `kms:GenerateDataKey`  |  Obrigatória se você quiser colocar uma parte do upload e criptografá-la com uma chave do AWS KMS gerenciada pelo cliente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)  |  Para um objeto de origem:  |  Para um objeto de origem:  | 
|    |  (Obrigatória) `s3:GetObject` ou `s3:GetObjectVersion`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/using-with-s3-policy-actions.html)  | 
|    |  (Obrigatória em determinadas condições) `kms:Decrypt`  |  Obrigatória se você quiser copiar um objeto do bucket de origem criptografado com uma chave do AWS KMS gerenciada pelo cliente.   | 
|    |  Para a parte de destino:  |  Para a parte de destino:  | 
|    |  (Obrigatória) `s3:PutObject`  |  Obrigatória para fazer upload de uma parte de um carregamento fracionado no bucket de destino.  | 
|    |  (Obrigatória em determinadas condições) `kms:GenerateDataKey`  |  Obrigatória se você quiser criptografar uma parte com uma chave do AWS KMS gerenciada pelo cliente ao fazer upload da parte no bucket de destino.   | 

## Operações e permissões de ponto de acesso para buckets de uso geral
<a name="using-with-s3-policy-actions-related-to-accesspoint"></a>

As operações de ponto de acesso são operações de API do S3 que operam no tipo de recurso de `accesspoint`. É necessário especificar ações de política do S3 para operações de ponto de acesso em políticas baseadas em identidade do IAM, não em políticas de bucket ou políticas de ponto de acesso.

Nas políticas, o elemento `Resource` deve ser o ARN do `accesspoint`. Para ter mais informações sobre o formato do elemento `Resource` e políticas de exemplo, consulte [Operações de ponto de acesso para buckets de uso geral](security_iam_service-with-iam.md#using-with-s3-actions-related-to-accesspoint).

**nota**  
Se quiser usar pontos de acesso para controlar o acesso a operações de bucket ou de objeto, observe o seguinte:  
Quanto ao uso de pontos de acesso para controlar o acesso a operações de bucket, consulte [Operações de bucket em políticas de ponto de acesso para buckets de uso geral](security_iam_service-with-iam.md#bucket-operations-ap).
Quanto ao uso de pontos de acesso para controlar o acesso a operações de objeto, consulte [Operações de objetos em políticas de ponto de acesso](security_iam_service-with-iam.md#object-operations-ap).
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](access-points-policies.md).

Veja a seguir a correlação entre as operações de ponto de acesso e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html)  |  (Obrigatória) `s3:CreateAccessPoint`  |  Obrigatória para criar um ponto de acesso associado a um bucket do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html)  |  (Obrigatória) `s3:DeleteAccessPoint`  |  Obrigatória para excluir um ponto de acesso.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html)  |  (Obrigatória) `s3:DeleteAccessPointPolicy`  |  Obrigatória para excluir uma política de ponto de acesso.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html)  |  (Obrigatória) `s3:GetAccessPointPolicy`  |  Obrigatória para recuperar uma política de ponto de acesso.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicyStatus.html)  |  (Obrigatória) `s3:GetAccessPointPolicyStatus`  |  Obrigatória para recuperar as informações sobre se o ponto de acesso especificado no momento tem uma política que permita o acesso público.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html)  |  (Obrigatória) `s3:PutAccessPointPolicy`  |  Obrigatória para aplicar uma política de ponto de acesso.  | 

## Permissões e operações de ponto de acesso do Object Lambda
<a name="using-with-s3-policy-actions-related-to-olap"></a>

As operações de ponto de acesso do Object Lambda são operações de API do S3 que operam no tipo de recurso `objectlambdaaccesspoint`. 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](olap-policies.md).

Veja a seguir a correlação entre as operações de ponto de acesso do Object Lambda e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPointForObjectLambda.html)  |  (Obrigatória) `s3:CreateAccessPointForObjectLambda`  |  Obrigatória para criar um ponto de acesso do Object Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointForObjectLambda.html)  |  (Obrigatória) `s3:DeleteAccessPointForObjectLambda`  |  Obrigatória para excluir um ponto de acesso do Object Lambda especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicyForObjectLambda.html)  |  (Obrigatória) `s3:DeleteAccessPointPolicyForObjectLambda`  |  Obrigatória para excluir a política em um ponto de acesso do Object Lambda especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointConfigurationForObjectLambda.html)  |  (Obrigatória) `s3:GetAccessPointConfigurationForObjectLambda`  |  Obrigatória para recuperar a configuração do ponto de acesso do Object Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointForObjectLambda.html)  |  (Obrigatória) `s3:GetAccessPointForObjectLambda`  |  Obrigatória para recuperar informações sobre o ponto de acesso do Object Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyForObjectLambda.html)  |  (Obrigatória) `s3:GetAccessPointPolicyForObjectLambda`  |  Obrigatória para exibir a política associada ao ponto de acesso do Object Lambda especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyStatusForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetAccessPointPolicyStatusForObjectLambda.html)  |  (Obrigatória) `s3:GetAccessPointPolicyStatusForObjectLambda`  |  Obrigatória para exibir o status de uma política de ponto de acesso específica do Object Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointConfigurationForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointConfigurationForObjectLambda.html)  |  (Obrigatória) `s3:PutAccessPointConfigurationForObjectLambda`  |  Obrigatória para definir a configuração do ponto de acesso do Object Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointPolicyForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutAccessPointPolicyForObjectLambda.html)  |  (Obrigatória) `s3:PutAccessPointPolicyForObjectLambda`  |  Obrigatória para associar uma política de acesso a um ponto de acesso especificado do Object Lambda.  | 

## Operações e permissões de ponto de acesso multirregional
<a name="using-with-s3-policy-actions-related-to-mrap"></a>

As operações de ponto de acesso multirregional são operações de API do S3 que operam no tipo de recurso `multiregionaccesspoint`. 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](MultiRegionAccessPointPermissions.md#MultiRegionAccessPointPolicyExamples).

Veja a seguir a correlação entre as operações de ponto de acesso multirregional e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateMultiRegionAccessPoint.html)  |  (Obrigatória) `s3:CreateMultiRegionAccessPoint`  |  Obrigatória para criar um ponto de acesso multirregional e associá-lo aos buckets do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteMultiRegionAccessPoint.html)  |  (Obrigatória) `s3:DeleteMultiRegionAccessPoint`  |  Obrigatória para excluir um ponto de acesso multirregional.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeMultiRegionAccessPointOperation.html)  |  (Obrigatória) `s3:DescribeMultiRegionAccessPointOperation`  |  Obrigatória para recuperar o status de uma solicitação assíncrona e gerenciar um ponto de acesso multirregional.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPoint.html)  |  (Obrigatória) `s3:GetMultiRegionAccessPoint`  |  Obrigatória para exibir informações de configuração sobre o ponto de acesso multirregional especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicy.html)  |  (Obrigatória) `s3:GetMultiRegionAccessPointPolicy`  |  Obrigatória para exibir a política de controle de acesso do ponto de acesso multirregional especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointPolicyStatus.html)  |  (Obrigatória) `s3:GetMultiRegionAccessPointPolicyStatus`  |  Obrigatória para exibir o status da política de um ponto de acesso multirregional específico, sobre se esse ponto de acesso tem uma política de controle de acesso que permita o acesso público.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointRoutes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetMultiRegionAccessPointRoutes.html)  |  (Obrigatória) `s3:GetMultiRegionAccessPointRoutes`  |  Obrigatória para exibir a configuração de roteamento de um ponto de acesso multirregional.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutMultiRegionAccessPointPolicy.html)  |  (Obrigatória) `s3:PutMultiRegionAccessPointPolicy`  |  Obrigatória para atualizar a política de controle de acesso do ponto de acesso multirregional especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SubmitMultiRegionAccessPointRoutes.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_SubmitMultiRegionAccessPointRoutes.html)  |  (Obrigatória) `s3:SubmitMultiRegionAccessPointRoutes`  |  Obrigatória para enviar uma configuração de rota atualizada de um ponto de acesso multirregional.  | 

## Operações e permissões de trabalho em lote
<a name="using-with-s3-policy-actions-related-to-batchops"></a>

As operações de trabalho (operações em lote) são operações de API do S3 que operam no tipo de recurso `job`. É necessário especificar as ações de política do S3 para operações de trabalho em políticas baseadas em identidade do IAM, não em políticas de bucket.

Nas políticas, o elemento `Resource` deve ser o ARN do `job`. Para ter mais informações sobre o formato do elemento `Resource` e políticas de exemplo, consulte [Operações de trabalho em lote](security_iam_service-with-iam.md#using-with-s3-actions-related-to-batchops).

Veja a seguir a correlação entre as operações de trabalho em lote e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html)  |  (Obrigatória) `s3:DeleteJobTagging`  |  Obrigatória para remover tags de um trabalho existente de Operações em Lote do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html)  |  (Obrigatória) `s3:DescribeJob`  |  Obrigatória para recuperar os parâmetros de configuração e o status de um trabalho de operações em lote.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html)  |  (Obrigatória) `s3:GetJobTagging`  |  Obrigatória para exibir o conjunto de tags de um trabalho existente de Operações em Lote do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html)  |  (Obrigatória) `s3:PutJobTagging`  |  Obrigatória para aplicar ou substituir tags de um trabalho existente de Operações em Lote do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html)  |  (Obrigatória) `s3:UpdateJobPriority`  |  Obrigatória para atualizar a prioridade de um trabalho existente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html)  |  (Obrigatória) `s3:UpdateJobStatus`  |  Obrigatória para atualizar o status do trabalho especificado.  | 

## Operações e permissões de configuração da Lente de Armazenamento do S3
<a name="using-with-s3-policy-actions-related-to-lens"></a>

As operações de configuração da Lente de Armazenamento do S3 são operações de API do S3 que operam no tipo de recurso `storagelensconfiguration`. 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](storage_lens_iam_permissions.md).

Veja a seguir a correlação entre as operações de configuração da Lente de Armazenamento do S3 e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfiguration.html)  |  (Obrigatória) `s3:DeleteStorageLensConfiguration`  |  Obrigatória para excluir a configuração da Lente de Armazenamento do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfigurationTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensConfigurationTagging.html)  |  (Obrigatória) `s3:DeleteStorageLensConfigurationTagging`  |  Obrigatória para excluir as tags de configuração da Lente de Armazenamento do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfiguration.html)  |  (Obrigatória) `s3:GetStorageLensConfiguration`  |  Obrigatória para obter a configuração da Lente de Armazenamento do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfigurationTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensConfigurationTagging.html)  |  (Obrigatória) `s3:GetStorageLensConfigurationTagging`  |  Obrigatória para obter a configuração da Lente de Armazenamento do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfigurationTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfigurationTagging.html)  |  (Obrigatória) `s3:PutStorageLensConfigurationTagging`  |  Obrigatória para aplicar ou substituir tags em uma configuração existente da Lente de Armazenamento do S3.  | 

## Operações e permissões de grupos da Lente de Armazenamento do S3
<a name="using-with-s3-policy-actions-related-to-lens-groups"></a>

As operações de grupos da Lente de Armazenamento do S3 são operações de API do S3 que operam no tipo de recurso `storagelensgroup`. Para ter mais informações sobre como configurar as operações de grupos da Lente de Armazenamento do S3, consulte [Permissões de grupos de Lente de Armazenamento](storage-lens-groups.md#storage-lens-group-permissions).

Veja a seguir a correlação entre as operações de grupos da Lente de Armazenamento do S3 e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteStorageLensGroup.html)  |  (Obrigatória) `s3:DeleteStorageLensGroup`  |  Obrigatória para excluir um grupo existente da Lente de Armazenamento do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetStorageLensGroup.html)  |  (Obrigatória) `s3:GetStorageLensGroup`  |  Obrigatória para recuperar os detalhes da configuração da Lente de Armazenamento do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateStorageLensGroup.html)  |  (Obrigatória) `s3:UpdateStorageLensGroup`  |  Obrigatória para atualizar o grupo existente da Lente de Armazenamento do S3.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html) | (Obrigatória) `s3:CreateStorageLensGroup` | Necessária para criar um grupo da Lente de Armazenamento. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html), [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) | (Obrigatórias) `s3:CreateStorageLensGroup` e `s3:TagResource` | Necessária para criar um grupo da Lente de Armazenamento com tags. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html) | (Obrigatória) `s3:ListStorageLensGroups` | Necessária para listar todos os grupos da Lente de Armazenamento na região de origem. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html) | (Obrigatória) `s3:ListTagsForResource` | Necessária para listar as tags que foram adicionadas ao grupo da Lente de Armazenamento. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html) | (Obrigatória) `s3:TagResource` | Necessária para adicionar ou atualizar uma tag para um grupo da Lente de Armazenamento existente. | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html) | (Obrigatória) `s3:UntagResource` | Necessária para excluir uma tag de um grupo da Lente de Armazenamento. | 

## Operações e permissões de instância da funcionalidade Concessão de Acesso do S3
<a name="using-with-s3-policy-actions-related-to-s3ag-instances"></a>

As operações de instância da Concessão de Acesso do S3 são operações de API do S3 que operam no tipo de recurso `accessgrantsinstance`. Uma instância da Concessão de Acesso do S3 é um contêiner lógico para concessões de acesso. Consulte mais informações sobre como trabalhar com instâncias da Concessão de Acesso do S3 em [Trabalhar com instâncias do recurso Concessão de Acesso do S3](access-grants-instance.md).

Veja a seguir o mapeamento das operações de configuração de instância da Concessão de Acesso do S3 e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AssociateAccessGrantsIdentityCenter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_AssociateAccessGrantsIdentityCenter.html)  |  (Obrigatória) `s3:AssociateAccessGrantsIdentityCenter`  |  Necessária para associar uma instância do Centro de Identidade do AWS IAM à instância da Concessão de Acesso do S3 e permitir a criação de concessões de acesso para usuários e grupos no diretório de identidades corporativas. Você também deve ter as seguintes permissões:  `sso:CreateApplication`, `sso:PutApplicationGrant`, e `sso:PutApplicationAuthenticationMethod`.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsInstance.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsInstance.html)  |  (Obrigatória) `s3:CreateAccessGrantsInstance`  |  Necessária para criar uma instância da Concessão de Acesso do S3 (recurso `accessgrantsinstance`) que é um contêiner para concessões de acesso individuais.  Para associar uma instância do Centro de Identidade do AWS IAM à instância da Concessão de Acesso do S3, você também deve ter as permissões `sso:DescribeInstance`, `sso:CreateApplication`, `sso:PutApplicationGrant` e `sso:PutApplicationAuthenticationMethod`.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstance.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstance.html)  |  (Obrigatória) `s3:DeleteAccessGrantsInstance`  |  Necessária para excluir uma instância da Concessão de Acesso do S3 (recurso `accessgrantsinstance`) de uma Região da AWS na conta.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstanceResourcePolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsInstanceResourcePolicy.html)  |  (Obrigatória) `s3:DeleteAccessGrantsInstanceResourcePolicy`  |  Necessária para excluir uma política de recurso da instância da Concessão de Acesso do S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DissociateAccessGrantsIdentityCenter.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DissociateAccessGrantsIdentityCenter.html)  |  (Obrigatória) `s3:DissociateAccessGrantsIdentityCenter`  |  Necessária para desassociar uma instância do Centro de Identidade do AWS IAM da instância da Concessão de Acesso do S3. Você também deve ter as seguintes permissões: `sso:DeleteApplication`  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstance.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstance.html)  |  (Obrigatória) `s3:GetAccessGrantsInstance`  |  Necessária para recuperar a instância da Concessão de Acesso do S3 para uma Região da AWS na conta.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceForPrefix.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceForPrefix.html)  |  (Obrigatória) `s3:GetAccessGrantsInstanceForPrefix`  |  Necessária para recuperar a instância da Concessão de Acesso do S3 que contém um prefixo específico.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceResourcePolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsInstanceResourcePolicy.html)  |  (Obrigatória) `s3:GetAccessGrantsInstanceResourcePolicy`  |  Necessária para exibir a política de recursos da instância da Concessão de Acesso do S3.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsInstances.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsInstances.html)  |  (Obrigatória) `s3:ListAccessGrantsInstances`  |  Necessária para retornar uma lista das instâncias da Concessão de Acesso do S3 na conta.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessGrantsInstanceResourcePolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessGrantsInstanceResourcePolicy.html)  |  (Obrigatória) `s3:PutAccessGrantsInstanceResourcePolicy`  |  Necessária para atualizar a política de recurso da instância da Concessão de Acesso do S3.  | 

## Operações e permissões de localização da Concessão de Acesso do S3
<a name="using-with-s3-policy-actions-related-to-s3ag-locations"></a>

As operações de localização da Concessão de Acesso do S3 são operações de API do S3 que operam no tipo de recurso `accessgrantslocation`. Consulte mais informações sobre como trabalhar com localizações da Concessão de Acesso do S3 em [Trabalhar com locais do recurso Concessão de Acesso do S3](access-grants-location.md).

Veja a seguir o mapeamento das operações de configuração de localização da Concessão de Acesso do S3 e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrantsLocation.html)  |  (Obrigatória) `s3:CreateAccessGrantsLocation`  |  Necessária para registrar uma localização na instância da Concessão de Acesso do S3 (criar um recurso `accessgrantslocation`). Você também deve ter a seguinte permissão para o perfil do IAM especificado:  `iam:PassRole`  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrantsLocation.html)  |  (Obrigatória) `s3:DeleteAccessGrantsLocation`  |  Necessária para remover uma localização registrada da instância da Concessão de Acesso do S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrantsLocation.html)  |  (Obrigatória) `s3:GetAccessGrantsLocation`  |  Necessária para recuperar os detalhes de uma localização específica registrada na instância da Concessão de Acesso do S3.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrantsLocations.html)  |  (Obrigatória) `s3:ListAccessGrantsLocations`  |  Necessária para retornar uma lista das localizações registradas na instância da Concessão de Acesso do S3.  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateAccessGrantsLocation.html)  |  (Obrigatória) `s3:UpdateAccessGrantsLocation`  |  Necessária para atualizar o perfil do IAM de um local registrado na instância da Concessão de Acesso do S3.  | 

## Operações e permissões de concessão do recurso Concessão de Acesso do S3
<a name="using-with-s3-policy-actions-related-to-s3ag-grants"></a>

As operações de concessão da funcionalidade Concessão de Acesso do S3 são operações de API do S3 que operam no tipo de recurso `accessgrant`. Consulte mais informações sobre como trabalhar com concessões individuais usando a Concessão de Acesso do S3 em [Trabalhar com concessões no recurso Concessão de Acesso do S3](access-grants-grant.md).

Veja a seguir o mapeamento das operações de configuração de concessão da funcionalidade Concessão de Acesso do S3 e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrant.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessGrant.html)  |  (Obrigatória) `s3:CreateAccessGrant`  |  Necessária para criar uma concessão individual (recurso `accessgrant`) para um usuário ou grupo na instância da Concessão de Acesso do S3. Você também deve ter as seguintes permissões: Para qualquer identidade de diretório: `sso:DescribeInstance` e `sso:DescribeApplication` Para usuários do diretório: `identitystore:DescribeUser`  | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrant.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessGrant.html)  |  (Obrigatória) `s3:DeleteAccessGrant`  |  Necessária para excluir uma concessão de acesso individual (recurso `accessgrant`) da instância da Concessão de Acesso do S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrant.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessGrant.html)  |  (Obrigatória) `s3:GetAccessGrant`  |  Necessária para obter os detalhes sobre uma concessão de acesso individual na instância da Concessão de Acesso do S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrants.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessGrants.html)  |  (Obrigatória) `s3:ListAccessGrants`  |  Necessária para retornar uma lista de concessões de acesso individuais na instância da Concessão de Acesso do S3.   | 
| [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListCallerAccessGrants.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListCallerAccessGrants.html)  |  (Obrigatória) `s3:ListCallerAccessGrants`  |  Necessária para listar as concessões de acesso que concedem ao chamador acesso aos dados do Amazon S3 por meio da Concessão de Acesso do S3.   | 

## Permissões e operações de conta
<a name="using-with-s3-policy-actions-related-to-accounts"></a>

As operações da conta são operações de API do S3 que operam no nível da conta. A conta não é um tipo de recurso definido pelo Amazon S3. É necessário especificar ações de política do S3 para operações de conta em políticas baseadas em identidade do IAM, não em políticas de bucket.

Nas políticas, o elemento `Resource` deve ser `"*"`. Para ter mais informações sobre políticas de exemplo, consulte [Operações de conta](security_iam_service-with-iam.md#using-with-s3-actions-related-to-accounts).

Veja a seguir a correlação entre as operações de conta e as ações de política obrigatórias. 


| Operações de API | Ações de políticas | Descrição das ações de política | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)  |  (Obrigatória) `s3:CreateJob`  |  Obrigatória para criar um trabalho de Operações em Lote do S3.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateStorageLensGroup.html)  |  (Obrigatória) `s3:CreateStorageLensGroup`  |  Obrigatória para criar um grupo de lentes da Lente de Armazenamento do S3 e associá-lo ao ID da Conta da AWS especificado.  | 
|    |  (Obrigatória em determinadas condições) `s3:TagResource`  |  Obrigatória se você quiser criar um grupo da Lente de Armazenamento do S3 com tags de recursos da AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html) (nível de conta)  |  (Obrigatória) `s3:PutAccountPublicAccessBlock`  |  Obrigatória para remover a configuração do Bloqueio de Acesso Público de uma Conta da AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html)  |  (Obrigatória) `s3:GetAccessPoint`  |  Obrigatória para recuperar informações de configuração sobre o ponto de acesso especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) (nível de conta)  |  (Obrigatória) `s3:GetAccountPublicAccessBlock`  |  Obrigatória para recuperar a configuração do Bloqueio de Acesso Público de uma Conta da AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html)  |  (Obrigatória) `s3:ListAccessPoints`  |  Obrigatória para listar os pontos de acesso de um bucket do S3 que pertencem a uma Conta da AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPointsForObjectLambda.html)  |  (Obrigatória) `s3:ListAccessPointsForObjectLambda`  |  Obrigatória para listar os pontos de acesso do Object Lambda.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)  |  (Obrigatória) `s3:ListAllMyBuckets`  |  Obrigatória para exibir uma lista de todos os buckets pertencentes ao remetente autenticado da solicitação.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html)  |  (Obrigatória) `s3:ListJobs`  |  Obrigatória para listar os trabalhos atuais e os trabalhos encerrados recentemente.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListMultiRegionAccessPoints.html)  |  (Obrigatória) `s3:ListMultiRegionAccessPoints`  |  Obrigatória para exibir uma lista dos pontos de acesso multirregionais atualmente associados ao Conta da AWS especificado.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensConfigurations.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensConfigurations.html)  |  (Obrigatória) `s3:ListStorageLensConfigurations`  |  Obrigatória para obter as configurações da Lente de Armazenamento do S3 de uma Conta da AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListStorageLensGroups.html)  |  (Obrigatória) `s3:ListStorageLensGroups`  |  Obrigatória para listar todos os grupos da Lente de Armazenamento do S3 na Região da AWS inicial especificada.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html) (nível de conta)  |  (Obrigatória) `s3:PutAccountPublicAccessBlock`  |  Obrigatório para criar ou modificar a configuração do Bloqueio de Acesso Público de uma Conta da AWS.  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfiguration.html)  |  (Obrigatória) `s3:PutStorageLensConfiguration`  |  Obrigatória para aplicar uma configuração da Lente de Armazenamento do S3.  | 

# Políticas e permissões no Amazon S3
<a name="access-policy-language-overview"></a>

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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) 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](using-with-s3-policy-actions.md).

No sentido mais básico, uma política contém os seguintes elementos:
+ [Resource](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources) – 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:::bucket_name/*"` para todos os objetos no bucket.
  + `"Resource": "arn:aws:s3:::bucket_name/prefix/*"` para objetos com um prefixo específico no bucket.

  Para obter mais informações, consulte [Recursos de políticas para o Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).
+ [Actions](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-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 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) do Amazon S3. (A permissão `s3: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](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions). Para obter uma lista completa de ações do Amazon S3, consulte [Ações](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.html) na *Referência de API do Amazon Simple Storage Service*.
+ [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html): qual será o efeito quando o usuário solicitar a ação específica: pode ser `Allow` ou `Deny`. 

  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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html) no *Guia do usuário do IAM*.
+ [Principal](security_iam_service-with-iam.md#s3-bucket-user-policy-specifying-principal-intro) – 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 obter mais informações, consulte [Entidades principais para políticas de bucket](security_iam_service-with-iam.md#s3-bucket-user-policy-specifying-principal-intro).
+ [Condition](amazon-s3-policy-keys.md) – 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 obter mais informações, consulte [Exemplos de políticas de bucket usando chaves de condição](amazon-s3-policy-keys.md).

O exemplo de política de bucket a seguir mostra os elementos `Effect`, `Principal`, `Action` e `Resource`. Essa política permite ao `Akua`, um usuário na conta `123456789012`, as permissões `s3:GetObject`, `s3:GetBucketLocation` e `s3:ListBucket` do Amazon S3 no bucket `amzn-s3-demo-bucket1`.

------
#### [ JSON ]

****  

```
{
    "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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) e em [Referência de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) no *Guia do usuário do IAM*.

## Delegação de permissão
<a name="permission-delegation"></a>

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
<a name="about-resource-owner"></a>

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](object-lifecycle-mgmt.md).

### Autenticação de solicitação e propriedade
<a name="about-resource-owner-requests"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/API/MakingRequests.html) na *Referência da API do Amazon S3*.

Um proprietário do bucket pode permitir solicitações não autenticadas. Por exemplo, solicitações [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) 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"](access-control-block-public-access.md#access-control-block-public-access-policy-status).

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](access-control-block-public-access.md). Para obter mais informações sobre ACLs, consulte [Visão geral da lista de controle de acesso (ACL)](acl-overview.md).

**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](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html) e [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.







# Políticas de bucket para o Amazon S3
<a name="bucket-policies"></a>

Uma política de bucket é uma política baseada em recursos que você pode usar para conceder permissões de acesso ao bucket do Amazon S3 e aos objetos contidos nele. Só o proprietário do bucket pode associar uma política a um bucket. As permissões anexadas ao bucket se aplicam a todos os objetos do bucket que pertencem ao proprietário do bucket. Essas permissões não se aplicam a objetos pertencentes a outras Contas da AWS.

A Propriedade de objeto do S3 é uma configuração no nível do bucket do Amazon S3 que você pode usar para controlar a propriedade de objetos carregados no bucket e desabilitar ou habilitar as listas de controle de acesso (ACLs). Por padrão, “Propriedade do objeto” está definida com a configuração “Imposto pelo proprietário do bucket” e todas as ACLs estão desabilitadas. O proprietário do bucket possui todos os objetos do bucket e gerencia o acesso aos dados exclusivamente usando políticas.

As políticas de bucket usam uma linguagem de política do AWS Identity and Access Management (IAM) baseada em JSON. Você pode usar políticas de bucket para adicionar ou negar permissões para os objetos em um bucket. As políticas de bucket permitem ou negam solicitações com base nos elementos da política. Esses elementos incluem o solicitante, ações do S3, recursos e aspectos ou condições da solicitação (como o endereço IP usado para fazer a solicitação). 

Por exemplo, você pode criar uma política de bucket que faça o seguinte: 
+ Concede a outras contas permissões entre contas para fazer upload de objetos em seu bucket do S3
+ Garante que você, o proprietário do bucket, tenha controle total dos objetos enviados

Para obter mais informações, consulte [Exemplos de políticas de bucket do Amazon S3](example-bucket-policies.md).

**Importante**  
Você não pode usar uma política de bucket para evitar exclusões ou transições por meio de uma regra de [ciclo de vida do S3](object-lifecycle-mgmt.md). Por exemplo, mesmo que a política de bucket negue todas as ações para todas as entidades principais, a configuração do ciclo de vida do S3 ainda funcionará normalmente.

Os tópicos nesta seção fornecem exemplos e mostram como adicionar uma política de bucket no console do S3. Consulte mais informações sobre políticas baseadas em identidade em [Políticas baseadas em identidade do Amazon S3](security_iam_id-based-policy-examples.md). Para obter informações sobre a linguagem da política de bucket, consulte [Políticas e permissões no Amazon S3](access-policy-language-overview.md).

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](using-with-s3-policy-actions.md).

**Topics**
+ [Adicionar uma política de bucket usando o console do Amazon S3](add-bucket-policy.md)
+ [Controlar o acesso a partir de VPC endpoints com políticas de bucket](example-bucket-policies-vpc-endpoint.md)
+ [Exemplos de políticas de bucket do Amazon S3](example-bucket-policies.md)
+ [Exemplos de políticas de bucket usando chaves de condição](amazon-s3-policy-keys.md)

# Adicionar uma política de bucket usando o console do Amazon S3
<a name="add-bucket-policy"></a>

Use o [Gerador de Políticas da AWS](https://aws.amazon.com/blogs/aws/aws-policy-generator/) e o console do Amazon S3 para adicionar uma nova política de bucket ou editar uma política de bucket existente. Uma política de bucket é uma política do AWS Identity and Access Management (IAM) baseada em recursos. Você adiciona uma política de bucket a um bucket para conceder permissões de acesso ao bucket, e aos objetos contidos nele, a outras Contas da AWS ou usuários do IAM. As permissões de objeto aplicam-se somente aos objetos criados pela proprietário do bucket. Para obter mais informações sobre políticas de bucket, consulte [Gerenciamento de identidade e acesso para o Amazon S3](security-iam.md).

Solucione avisos de segurança, erros, avisos gerais e sugestões de AWS Identity and Access Management Access Analyzer antes de salvar a política. O IAM Access Analyzer executa verificações de política para validar sua política em relação à [gramática das políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) e às [práticas recomendadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) do IAM. Essas verificações geram descobertas e fornecem recomendações práticas que ajudam a criar políticas que sejam funcionais e estejam em conformidade com as práticas recomendadas de segurança. Para saber mais sobre a validação de políticas usando o IAM Access Analyzer, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do usuário do IAM*. Para visualizar uma lista de avisos, erros e sugestões retornados pelo IAM Access Analyzer, consulte [Referência de verificação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html).

Para obter orientação sobre como solucionar erros com uma política, consulte [Solucionar erros de acesso negado (403 Forbidden) no Amazon S3](troubleshoot-403-errors.md).

**Para criar ou editar uma política de bucket**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral** ou **Buckets de diretórios**.

1. Na lista de buckets, escolha o nome do bucket para o qual você deseja criar uma política de bucket ou cuja política de bucket você queira editar.

1. Escolha a aba **Permissões**.

1. Em **Bucket policy** (Política de bucket), escolha **Edit** (Editar). A página **Edit bucket policy** (Editar política de bucket) é exibida.

1. Na página **Edit bucket policy** (Editar política de bucket), faça uma das seguintes ações: 
   + Para ver exemplos de políticas de bucket, selecione **Exemplos de política**. Ou consulte [Exemplos de políticas de bucket do Amazon S3](example-bucket-policies.md) no *Guia do usuário do Amazon S3*.
   + Para gerar uma política automaticamente ou editar o JSON na seção **Policy** (Política), escolha **Policy generator** (Gerador de políticas).

   Se você escolher **Policy generator** (Gerador de políticas), o Gerador de Políticas da AWS será aberto em uma nova janela.

   1. Na página **Gerador de Políticas da AWS**, em **Selecionar tipo de política**, escolha **Política de bucket do S3**.

   1. Adicione uma instrução inserindo as informações nos campos fornecidos e escolha **Add Statement** (Adicionar instrução). Repita esta etapa para todas as instruções que deseja adicionar. Para ter mais informações sobre esses campos, consulte a [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*. 
**nota**  
Por conveniência, a página **Editar política de bucket** exibe o **ARN do bucket** (nome do recurso da Amazon) do bucket atual acima do campo de texto **Política**. Você pode copiar este ARN para usá-lo nas instruções da página do **AWS Policy Generator**. 

   1. Depois de terminar de adicionar as instruções, escolha **Generate Policy** (Gerar política).

   1. Copie o texto da política gerada, escolha **Close** (Fechar) e retorne à página **Edit bucket policy** (Editar política de bucket) no console do Amazon S3.

1. Na caixa **Policy** (Política), edite a política existente ou cole a política de bucket do Gerador de Políticas da AWS. Solucione avisos de segurança, erros, avisos gerais e sugestões antes de salvar a política.
**nota**  
As políticas de bucket são limitadas a 20 KB.

1. (Opcional) Escolha **Preview external access** (Pré-visualizar o acesso externo) na canto inferior direito para pré-visualizar a forma como sua nova política afetará o acesso público e entre contas ao seu recurso. Antes de salvar sua política, você pode verificar se ela introduz novas descobertas do IAM Access Analyzer ou resolve as descobertas existentes. Se você não vir um analisador ativo, escolha **Go to Access Analyzer** (Acessar o Access Analyzer) para [criar um analisador de contas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) no IAM Access Analyzer. Para obter mais informações, consulte [Visualizar acesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html) no *Guia do usuário do IAM*. 

1. Escolha **Save changes** (Salvar alterações), o que levará você de volta à guia **Permissions** (Permissões). 

# Controlar o acesso a partir de VPC endpoints com políticas de bucket
<a name="example-bucket-policies-vpc-endpoint"></a>

É possível usar políticas de bucket do Amazon S3 para controlar o acesso a buckets por endpoints específicos da nuvem privada virtual (VPC) ou por VPCs específicas. Esta seção contém exemplos de políticas de bucket que você pode usar para controlar o acesso de endpoints da VPC ao bucket do Amazon S3. Para saber como configurar VPC endpoints, consulte [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) no *Guia do usuário da VPC*. 

A VPC permite executar os recursos da AWS em uma rede virtual definida por você. Um endpoint da VPC permite criar uma conexão privada entre a VPC e outro AWS service (Serviço da AWS). Essa conexão privada não exige acesso pela internet, por meio de uma conexão de rede privada virtual (VPN), de uma instância NAT ou do Direct Connect. 

Um endpoint de VPC para Amazon S3 é uma entidade lógica em uma VPC que oferece conectividade apenas ao Amazon S3. O VPC endpoint roteia as solicitações para o Amazon S3 e roteia as respostas de rotas de volta para a VPC. Os VPC endpoints alteram somente a forma como as solicitações são roteadas. Os endpoints públicos do Amazon S3 e os nomes de DNS continuarão funcionando com VPC endpoints. Consulte informações importantes sobre o uso de endpoints da VPC com o Amazon S3 em [Gateway endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html) e em [Gateway endpoints for Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html) no *Guia do usuário da VPC*. 

Os VPC endpoints para Amazon S3 fornecem duas maneiras de controlar o acesso aos dados do Amazon S3: 
+ É possível controlar as solicitações, os usuários ou os grupos permitidos por um VPC endpoint específico. Consulte informações sobre esse tipo de controle de acesso em [Controlling access to VPC endpoints using endpoint policies](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) no *Guia do usuário da VPC*.
+ É possível controlar quais VPCs ou VPC endpoints têm acesso aos seus buckets usando as políticas de bucket do Amazon S3. Para obter exemplos desse tipo de controle de acesso de política de bucket, consulte os seguintes tópicos sobre restrição de acesso.

**Topics**
+ [Restringir o acesso a um VPC endpoint específico](#example-bucket-policies-restrict-accesss-vpc-endpoint)
+ [Restringir o acesso a uma VPC específica](#example-bucket-policies-restrict-access-vpc)
+ [Restringir o acesso a um endpoint da VPC IPv6](#example-bucket-policies-ipv6-vpc-endpoint)

**Importante**  
Ao aplicar políticas de bucket do Amazon S3 para os endpoints da VPC descritos nesta seção, talvez você bloqueie o acesso ao bucket de maneira não intencional. As permissões de bucket destinadas especificamente a limitar o acesso do bucket às conexões originadas do seu VPC endpoint podem bloquear todas as conexões ao bucket. Consulte informações sobre como corrigir esse problema em [Como corrigir uma política de bucket quando ela tem o ID da VPC ou do endpoint da VPC errado?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-regain-access/) no *Centro de Conhecimento da AWS Support*.

## Restringir o acesso a um VPC endpoint específico
<a name="example-bucket-policies-restrict-accesss-vpc-endpoint"></a>

O seguinte é um exemplo de um política de bucket do Amazon S3 que restringe o acesso a um bucket específico, `awsexamplebucket1`, somente no VPC endpoint com o ID `vpce-1a2b3c4d`. Se o endpoint especificado não for usado, essa política negará todo acesso ao bucket. A condição `aws:SourceVpce` especifica o endpoint. A condição `aws:SourceVpce` não exige um nome do recurso da Amazon (ARN) para o recurso do endpoint da VPC, somente o ID correspondente. Para obter mais informações sobre o uso de condições em uma política, consulte [Exemplos de políticas de bucket usando chaves de condição](amazon-s3-policy-keys.md).

**Importante**  
Antes de usar a política de exemplo a seguir, substitua o ID do VPC endpoint por um valor apropriado para o caso de uso. Caso contrário, não será possível acessar o bucket.
Essa política desabilita o acesso do console ao bucket especificado, pois as solicitações do console não se originam do endpoint da VPC especificado.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "Policy1415115909152",
   "Statement": [
     {
       "Sid": "Access-to-specific-VPCE-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:SourceVpce": "vpce-0abcdef1234567890"
         }
       }
     }
   ]
}
```

------

## Restringir o acesso a uma VPC específica
<a name="example-bucket-policies-restrict-access-vpc"></a>

Você pode criar uma política de bucket que restringe o acesso a uma VPC específica usando a condição `aws:SourceVpc`. Isso será útil se você tiver vários VPC endpoints configurados na mesma VPC e desejar gerenciar o acesso aos buckets do Amazon S3 para todos os endpoints. Veja a seguir um exemplo de política que nega acesso a `awsexamplebucket1` e seus objetos para qualquer pessoa de fora da VPC `vpc-111bbb22`. Se a VPC especificada não for usada, a política negará todo acesso ao bucket. Essa instrução não concede acesso ao bucket. Para conceder acesso, é necessário adicionar uma instrução `Allow` separada. A chave de condição `vpc-111bbb22` não exige um ARN para o recurso da VPC, somente o ID correspondente.

**Importante**  
Antes de usar a política de exemplo a seguir, substitua o ID da VPC por um valor apropriado para o caso de uso. Caso contrário, não será possível acessar o bucket.
Essa política desabilita o acesso do console ao bucket especificado, pois as solicitações do console não se originam da VPC especificada.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id": "Policy1415115909153",
   "Statement": [
     {
       "Sid": "Access-to-specific-VPC-only",
       "Principal": "*",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:SourceVpc": "vpc-1a2b3c4d"
         }
       }
     }
   ]
}
```

------

## Restringir o acesso a um endpoint da VPC IPv6
<a name="example-bucket-policies-ipv6-vpc-endpoint"></a>

O exemplo de política a seguir nega todas as ações do Amazon S3 (`s3:`) no bucket *amzn-s3-demo-bucket* e nos respectivos objetos, a menos que a solicitação origine-se do endpoint da VPC especificado (`vpce-0a1b2c3d4e5f6g`) e o endereço IP de origem corresponda ao bloco CIDR IPv6 fornecido.

```
{
   "Version": "2012-10-17", 		 	 	 
   "Id": "Policy1415115909154",
   "Statement": [
     {
       "Sid": "AccessSpecificIPv6VPCEOnly",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                    "arn:aws:s3:::amzn-s3-demo-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:SourceVpc": "vpc-0a1b2c3d4e5f6g4h2"
         },
        "NotIpAddress": {
          "aws:VpcSourceIp": "2001:db8::/32"
        }
       }
     }
   ]
}
```

Para ter informações sobre como restringir o acesso ao bucket com base em IPs ou VPCs específicos, consulte [Como faço para permitir que somente endpoints ou endereços IP de VPC específicos acessem meu bucket do Amazon S3?](https://repost.aws/knowledge-center/block-s3-traffic-vpc-ip) no Centro de Conhecimento do AWS re:Post.

# Exemplos de políticas de bucket do Amazon S3
<a name="example-bucket-policies"></a>

Com as políticas de bucket do Amazon S3, você pode proteger o acesso a objetos em seus buckets, para que somente usuários com as permissões apropriadas possam acessá-los. Você pode até mesmo impedir que usuários autenticados sem as permissões apropriadas acessem seus recursos do Amazon S3.

Esta seção apresenta exemplos de casos de uso típicos de políticas de bucket. Essas políticas de exemplo usam `amzn-s3-demo-bucket` como valor do recurso. Para testar essas políticas, substitua `user input placeholders` por suas informações (como o nome do seu bucket). 

Para conceder ou negar permissões para um conjunto de objetos, você pode usar caracteres curinga (`*`) em nomes de recursos da Amazon (ARNs) e outros valores. Por exemplo, é possível controlar o acesso a grupos de objetos que começam com um [prefixo](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix) ou terminam com uma extensão específica, como `.html`. 

Para obter mais informações sobre a linguagem da política do AWS Identity and Access Management (IAM), consulte [Políticas e permissões no Amazon S3](access-policy-language-overview.md).

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](using-with-s3-policy-actions.md).

**nota**  
Ao testar as permissões usando o console do Amazon S3, você deve conceder as permissões adicionais que o console exige: `s3:ListAllMyBuckets`, `s3:GetBucketLocation` e `s3:ListBucket`. Para acessar um exemplo de demonstração que concede permissões aos usuários e testa essas permissões usando o console, consulte [Controlar o acesso a um bucket com políticas de usuário](walkthrough1.md).

Recursos adicionais para criar políticas de bucket incluem:
+ Consulte uma lista de ações de políticas do IAM, recursos e chaves de condição que você pode usar ao criar uma política de bucket em [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) 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](using-with-s3-policy-actions.md).
+ Para obter orientação sobre como criar uma política do S3, consulte [Adicionar uma política de bucket usando o console do Amazon S3](add-bucket-policy.md).
+ Para solucionar erros com uma política, consulte [Solucionar erros de acesso negado (403 Forbidden) no Amazon S3](troubleshoot-403-errors.md).

Se você estiver tendo problemas para adicionar ou atualizar uma política, consulte [Por que recebo o erro “Invalid principal in policy” quando tento atualizar minha política de bucket do Amazon S3?](https://repost.aws/knowledge-center/s3-invalid-principal-in-policy-error) no Centro de Conhecimento do AWS re:Post.

**Topics**
+ [Conceder permissão somente leitura a um usuário anônimo público](#example-bucket-policies-anonymous-user)
+ [Exigir criptografia](#example-bucket-policies-encryption)
+ [Gerenciar buckets usando ACLs predefinidas](#example-bucket-policies-public-access)
+ [Gerenciar o acesso a objetos com marcação de objetos](#example-bucket-policies-object-tags)
+ [Gerenciar o acesso a objetos usando chaves de condição globais](#example-bucket-policies-global-condition-keys)
+ [Gerenciar o acesso com base em solicitações HTTP ou HTTPS](#example-bucket-policies-HTTP-HTTPS)
+ [Gerenciar o acesso de usuários a pastas específicas](#example-bucket-policies-folders)
+ [Gerenciar o acesso para logs de acesso](#example-bucket-policies-access-logs)
+ [Gerenciar o acesso para uma OAI do Amazon CloudFront](#example-bucket-policies-cloudfront)
+ [Gerenciar o acesso para a Lente de Armazenamento do Amazon S3](#example-bucket-policies-lens)
+ [Gerenciar permissões para o Inventário do S3, análises do S3 e relatórios do Inventário do S3](#example-bucket-policies-s3-inventory)
+ [Exigir MFA](#example-bucket-policies-MFA)
+ [Impedir que os usuários excluam objetos](#using-with-s3-actions-related-to-bucket-subresources)

## Conceder permissão somente leitura a um usuário anônimo público
<a name="example-bucket-policies-anonymous-user"></a>

É possível usar as configurações de política para conceder acesso a usuários anônimos públicos, o que será útil se você estiver configurando o bucket como um site estático. A concessão de acesso a usuários anônimos públicos exige que você desative as configurações do Bloqueio de Acesso Público do bucket. Consulte mais informações sobre como fazer isso e a política exigida em [Configuração de permissões para acesso ao site](WebsiteAccessPermissionsReqd.md). Para saber como configurar políticas mais restritivas para o mesmo propósito, consulte [How can I grant public read access to some objects in my Amazon S3 bucket?](https://repost.aws/knowledge-center/read-access-objects-s3-bucket) no Centro de Conhecimento da AWS.

Por padrão, o Amazon S3 bloqueia o acesso público à sua conta e aos seus buckets. Se quiser usar um bucket para hospedar um site estático, use estas etapas para editar as configurações de bloqueio de acesso público. 

**Atenção**  
Antes de concluir estas etapas, revise [Bloquear o acesso público ao armazenamento do Amazon S3](access-control-block-public-access.md) para garantir que você entenda e aceite os riscos envolvidos em permitir o acesso público. Ao desativar as configurações de bloqueio de acesso público para tornar seu bucket público, qualquer pessoa na Internet pode acessá-lo. Recomendamos que você bloqueie todo o acesso público aos buckets.

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Escolha o nome do bucket configurado como um site estático.

1. Escolha **Permissions (Permissões)**.

1. Em **Block public access (bucket settings) (Bloqueio de acesso público (configurações de bucket)**, escolha **Edit (Editar)**.

1. Desmarque **Block *all* public access (Bloquear todo acesso público)** e escolha **Save changes (Salvar alterações)**.  
![\[O console do Amazon S3, que mostra as configurações do bucket do Bloqueio de Acesso Público.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   O Amazon S3 desativa as configurações do Bloqueio de Acesso Público para o bucket. Para criar um site público estático, talvez também seja necessário [editar as configurações do Bloqueio de Acesso Público](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) para sua conta antes de adicionar uma política de bucket. Se as configurações do Bloqueio de Acesso Público da conta estiverem ativadas no momento, você verá uma observação em **Bloquear acesso público (configurações de bucket)**.

## Exigir criptografia
<a name="example-bucket-policies-encryption"></a>

É possível exigir a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), conforme mostrado nos exemplos a seguir.

### Exigir SSE-KMS para todos os objetos gravados em um bucket
<a name="example-bucket-policies-encryption-1"></a>

O exemplo de política a seguir exige que cada objeto gravado no bucket seja criptografado com criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Se o objeto não estiver criptografado com a SSE-KMS, a solicitação será negada.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Id": "PutObjPolicy",
"Statement": [{
  "Sid": "DenyObjectsThatAreNotSSEKMS",
  "Principal": "*",
  "Effect": "Deny",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
  "Condition": {
    "Null": {
      "s3:x-amz-server-side-encryption-aws-kms-key-id": "true"
    }
  }
}]
}
```

------

### Exigir SSE-KMS com uma AWS KMS key específica para todos os objetos gravados em um bucket
<a name="example-bucket-policies-encryption-2"></a>

O exemplo de política a seguir impede que objetos sejam gravados no bucket quando não estão criptografados com SSE-KMS usando um ID de chave do KMS específico. Mesmo que os objetos sejam criptografados com a SSE-KMS usando um cabeçalho por solicitação ou criptografia padrão de bucket, os objetos não serão gravados no bucket se não tiverem sido criptografados com a chave do KMS especificada. Substitua o ARN da chave do KMS usado neste exemplo pelo ARN da sua chave do KMS.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Id": "PutObjPolicy",
"Statement": [{
  "Sid": "DenyObjectsThatAreNotSSEKMSWithSpecificKey",
  "Principal": "*",
  "Effect": "Deny",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
  "Condition": {
    "ArnNotEqualsIfExists": {
      "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
    }
  }
}]
}
```

------

## Gerenciar buckets usando ACLs predefinidas
<a name="example-bucket-policies-public-access"></a>

### Conceder permissões a várias contas para fazer upload de objetos ou definir ACLs de objetos para acesso público
<a name="example-bucket-policies-acl-1"></a>

O exemplo de política a seguir concede as permissões `s3:PutObject` e `s3:PutObjectAcl` a várias Contas da AWS. Além disso, o exemplo de política exige que as solicitações para essas operações incluam a [lista de controle de acesso (ACL) predefinida](acl-overview.md#canned-acl) `public-read`. Para obter mais informações, consulte [Ações de políticas para o Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) e [Chaves de condição de política para o Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys).

**Atenção**  
A ACL predefinida `public-read` permite que qualquer pessoa no mundo veja os objetos em seu bucket. Tenha cautela ao conceder acesso anônimo ao seu bucket do Amazon S3 ou ao desabilitar as configurações de bloqueio de acesso público. Quando você concede acesso anônimo, qualquer pessoa no mundo pode acessar seu bucket. Recomendamos nunca conceder acesso anônimo ao seu bucket do Amazon S3, a menos que seja especificamente necessário, como com a [hospedagem de site estático](WebsiteHosting.md). Se você quiser habilitar configurações de bloqueio de acesso público para hospedagem de sites estáticos, consulte [Tutorial: Configurar um site estático no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPublicReadCannedAcl",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root",
                    "arn:aws:iam::444455556666:root"
                ]
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": [
                        "public-read"
                    ]
                }
            }
        }
    ]
}
```

------

### Conceder permissões entre contas para fazer upload de objetos garantindo que o proprietário do bucket tenha controle total
<a name="example-bucket-policies-acl-2"></a>

O exemplo a seguir mostra como permitir que outra Conta da AWS faça upload de objetos no bucket e, ao mesmo tempo, garantir controle total sobre os objetos carregados. Essa política concede a uma Conta da AWS específica (*`111122223333`*) a capacidade de carregar objetos se essa conta incluir a ACL pré-configurada `bucket-owner-full-control` no carregamento. A condição `StringEquals` na política especifica a chave de condição `s3:x-amz-acl` para expressar o requisito de ACL predefinida. Para obter mais informações, consulte [Chaves de condição de política para o Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
     {
       "Sid":"PolicyForAllowUploadWithACL",
       "Effect":"Allow",
       "Principal":{"AWS":"111122223333"},
       "Action":"s3:PutObject",
       "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*",
       "Condition": {
         "StringEquals": {"s3:x-amz-acl":"bucket-owner-full-control"}
       }
     }
   ]
}
```

------

## Gerenciar o acesso a objetos com marcação de objetos
<a name="example-bucket-policies-object-tags"></a>

### Permitir que um usuário leia somente os objetos que têm a chave e o valor de uma etiqueta específica
<a name="example-bucket-policies-tagging-1"></a>

A política de permissões a seguir limita a capacidade de leitura dos usuários para que leiam somente objetos que tenham a chave e o valor da tag `environment: production`. Essa política usa a chave de condição `s3:ExistingObjectTag` para especificar a chave e o valor da etiqueta.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Principal":{
            "AWS":"arn:aws:iam::111122223333:role/JohnDoe"
         },
         "Effect":"Allow",
         "Action":[
            "s3:GetObject",
            "s3:GetObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*",
         "Condition":{
            "StringEquals":{
               "s3:ExistingObjectTag/environment":"production"
            }
         }
      }
   ]
}
```

------

### Restringir quais chaves de etiqueta de objeto os usuários podem adicionar
<a name="example-bucket-policies-tagging-2"></a>

O exemplo de política a seguir concede ao usuário permissão para executar a ação `s3:PutObjectTagging`, que permite que o usuário adicione etiquetas a um objeto existente. A condição usa a chave de condição `s3:RequestObjectTagKeys` para especificar as chaves de etiqueta permitidas, como `Owner` ou `CreationDate`. Para obter mais informações, consulte [Criar uma condição que testa vários valores de chave](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) no *Guia do usuário do IAM*.

A política garante que cada chave de etiqueta especificada na solicitação seja uma chave de etiqueta autorizada. O qualificador `ForAnyValue` na condição garante que pelo menos uma das chaves especificadas esteja presente na solicitação.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
            "arn:aws:iam::111122223333:role/JohnDoe"
         ]
       },
 "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [
            "Owner",
            "CreationDate"
          ]
        }
      }
    }
  ]
}
```

------

### Exigir a chave e o valor de uma etiqueta específica ao permitir que os usuários adicionem etiquetas de objeto
<a name="example-bucket-policies-tagging-3"></a>

O exemplo de política a seguir concede ao usuário permissão para executar a ação `s3:PutObjectTagging`, que permite que o usuário adicione etiquetas a um objeto existente. A condição requer que o usuário inclua uma chave de etiqueta específica (como `Project`) com o valor definido como `X`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
       "arn:aws:iam::111122223333:user/JohnDoe"
         ]
       },
      "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X"
        }
      }
    }
  ]
}
```

------

### Permitir que um usuário adicione somente objetos com a chave e o valor de uma etiqueta específica
<a name="example-bucket-policies-tagging-4"></a>

O exemplo de política a seguir concede ao usuário permissão para realizar a ação `s3:PutObject` para que possa adicionar objetos a um bucket. No entanto, a instrução `Condition` restringe as chaves e os valores de etiqueta permitidos nos objetos enviados. Neste exemplo, o usuário só pode adicionar objetos que tenham a chave de etiqueta específica (`Department`) com o valor definido como `Finance` no bucket.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Principal":{
            "AWS":[
                 "arn:aws:iam::111122223333:user/JohnDoe"
         ]
        },
        "Effect": "Allow",
        "Action": [
            "s3:PutObject"
        ],
        "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ],
        "Condition": {
            "StringEquals": {
                "s3:RequestObjectTag/Department": "Finance"
            }
        }
    }]
}
```

------

## Gerenciar o acesso a objetos usando chaves de condição globais
<a name="example-bucket-policies-global-condition-keys"></a>

As [chaves de condição globais](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html) são chaves de condição com um prefixo `aws`. Os Serviços da AWS podem oferecer suporte a chaves de condição globais ou chaves específicas do serviço que incluem seu prefixo de serviço. É possível usar o elemento `Condition` de uma política JSON para comparar chaves em uma solicitação com os valores de chave especificados em sua política.

### Restringir o acesso somente às entregas de logs de acesso ao servidor do Amazon S3
<a name="example-bucket-policies-global-condition-keys-1"></a>

No exemplo de política de bucket a seguir, a chave de condição global [https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) é usada para comparar o [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns), fazendo uma solicitação de serviço a serviço com o ARN especificado na política. A chave de condição global `aws:SourceArn` é usada para impedir que o serviço Amazon S3 seja usado como um [representante confuso](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html) durante transações entre os serviços. Somente o serviço Amazon S3 tem permissão para adicionar objetos ao bucket do Amazon S3.

Este exemplo de política de bucket concede permissões de `s3:PutObject` somente à entidade principal do serviço de registro em log (`logging.s3.amazonaws.com`). 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObjectS3ServerAccessLogsPolicy",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-logs/*",
            "Condition": {
                "StringEquals": {
                "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket1"
                }
            }
        },
        {
            "Sid": "RestrictToS3ServerAccessLogs",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-logs/*",
            "Condition": {
                "ForAllValues:StringNotEquals": {
                    "aws:PrincipalServiceNamesList": "logging.s3.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### Permitir o acesso somente à sua organização
<a name="example-bucket-policies-global-condition-keys-2"></a>

Se você quiser exigir que todas as [entidades principais do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) que acessam um recurso sejam de uma Conta da AWS em sua organização (incluindo a conta de gerenciamento do AWS Organizations), poderá usar a chave de condição global `aws:PrincipalOrgID`.

Para conceder ou restringir esse tipo de acesso, defina a condição `aws:PrincipalOrgID` e defina o valor como o [ID da sua organização](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_org_details.html) na política de bucket. O ID da organização é usado para controlar o acesso ao bucket. Quando você usa a condição `aws:PrincipalOrgID`, as permissões da política de bucket também são aplicadas a todas as novas contas adicionadas à organização.

Aqui está um exemplo de política de bucket baseada em recursos que você pode usar para conceder a entidades principais do IAM específicas em sua organização acesso direto ao bucket. Ao adicionar a chave de condição global `aws:PrincipalOrgID` à sua política de bucket, agora é necessário que a conta da entidade principal esteja em sua organização para obter acesso ao recurso. Mesmo que você acidentalmente especifique uma conta incorreta ao conceder acesso, a [chave de condição global aws:PrincipalOrgID](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) atuará como uma proteção adicional. Quando uma chave global é usada em uma política, ela impede que todas as entidades principais fora da organização especificada acessem o bucket do S3. Somente entidades principais de contas na organização listada podem obter acesso ao recurso.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "AllowGetObject",
        "Principal": {
            "AWS": "*"
        },
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalOrgID": ["o-aa111bb222"]
            }
        }
    }]
}
```

------

## Gerenciar o acesso com base em solicitações HTTP ou HTTPS
<a name="example-bucket-policies-HTTP-HTTPS"></a>

### Restringir o acesso somente a solicitações HTTPS
<a name="example-bucket-policies-use-case-HTTP-HTTPS-1"></a>

Se você quiser evitar que possíveis invasores manipulem o tráfego de rede, poderá usar HTTPS (TLS) para permitir somente conexões criptografadas e, ao mesmo tempo, restringir o acesso de solicitações HTTP ao seu bucket. Para determinar se a solicitação é HTTP ou HTTPS, use a chave de condição global [https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) em sua política de bucket do S3. A chave de condição `aws:SecureTransport` verifica se uma solicitação foi enviada usando HTTP.

Se uma solicitação retornar `true`, isso significa que ela foi enviada por HTTPS. Se a solicitação retornar `false`, isso significa que ela foi enviada por HTTP. Depois, você pode permitir ou negar acesso ao bucket com base no esquema de solicitação desejado.

No exemplo a seguir, a política de bucket nega explicitamente as solicitações HTTP. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "RestrictToTLSRequestsOnly",
        "Action": "s3:*",
        "Effect": "Deny",
        "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket",
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ],
        "Condition": {
            "Bool": {
                "aws:SecureTransport": "false"
            }
        },
        "Principal": "*"
    }]
}
```

------

### Restringir o acesso a um indicador HTTP específico
<a name="example-bucket-policies-HTTP-HTTPS-2"></a>

Suponha que você tenha um site com nome de domínio *`www.example.com`* ou *`example.com`* com links para fotos e vídeos armazenados em seu bucket chamado `amzn-s3-demo-bucket`. Por padrão, todos os recursos do Amazon S3 são privados e, portanto, somente a Conta da AWS que criou os recursos pode acessá-los. 

Para permitir acesso de leitura a esses objetos em seu site, você pode adicionar uma política de bucket que conceda a permissão `s3:GetObject` com uma condição de que a solicitação `GET` deve se originar de páginas específicas da Web. A política a seguir restringe as solicitações usando a condição `StringLike` com a chave de condição `aws:Referer`.

Certifique-se de que os navegadores que você usa incluam o cabeçalho HTTP `referer` na solicitação.

**Atenção**  
Recomendamos cuidado ao usar a chave de condição `aws:Referer`. É perigoso incluir um valor de cabeçalho do indicador HTTP conhecido publicamente. Partes não autorizadas podem usar navegadores personalizados ou modificados para fornecer qualquer valor de `aws:Referer` que escolherem. Assim sendo, não use `aws:Referer` para impedir que partes não autorizadas façam solicitações diretas à AWS.   
A chave de condição `aws:Referer` é oferecida apenas para permitir que os clientes protejam o conteúdo digital, como o conteúdo armazenado no Simple Storage Service (Amazon S3), evitando que seja referenciado em sites de terceiros não autorizados. Para obter mais informações, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-referer](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-referer) no *Guia do usuário do IAM*.

## Gerenciar o acesso de usuários a pastas específicas
<a name="example-bucket-policies-folders"></a>

### Conceder acesso a pastas específicas para os usuários
<a name="example-bucket-policies-folders-1"></a>

Suponha que você esteja tentando conceder a uma pasta específica para os usuários. Se o usuário do IAM e o bucket do S3 pertencerem à mesma Conta da AWS, você poderá usar uma política do IAM para conceder acesso a uma pasta de bucket específica para os usuários. Com essa abordagem, você não precisa atualizar sua política de bucket para conceder acesso. Você pode adicionar a política do IAM a um perfil do IAM para o qual vários usuários podem mudar. 

Se a identidade do IAM e o bucket do S3 pertencerem a Contas da AWS diferentes, você deverá conceder acesso entre contas tanto na política do IAM quanto na política de bucket. Para obter mais informações sobre como conceder acesso entre contas, consulte [Proprietário do bucket concedendo permissões de bucket entre contas](https://docs.aws.amazon.com//AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html). 

O exemplo de política de bucket a seguir concede a `JohnDoe` acesso total ao console somente na pasta dele (`home/JohnDoe/`). Ao criar uma pasta `home` e conceder as permissões apropriadas aos seus usuários, você pode fazer com que vários usuários compartilhem um único bucket. Essa política consiste em três instruções `Allow`:
+ `AllowRootAndHomeListingOfCompanyBucket`: permite que o usuário (`JohnDoe`) liste objetos no nível raiz do bucket `amzn-s3-demo-bucket` e na pasta `home`. Essa instrução também permite que o usuário pesquise o prefixo `home/` usando o console.
+ `AllowListingOfUserFolder`: permite que o usuário (`JohnDoe`) liste todos os objetos na pasta `home/JohnDoe/` e em quaisquer subpastas.
+ `AllowAllS3ActionsInUserFolder`: permite que o usuário execute todas as ações do Amazon S3 ao conceder as permissões `Read`, `Write` e `Delete`. As permissões são limitadas à pasta inicial do proprietário do bucket.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRootAndHomeListingOfCompanyBucket",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/JohnDoe"
                ]
            },
            "Effect": "Allow",
            "Action": ["s3:ListBucket"],
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": ["", "home/", "home/JohnDoe"],
                    "s3:delimiter": ["/"]
                }
            }
        },
        {
            "Sid": "AllowListingOfUserFolder",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/JohnDoe"
                ]
            },
            "Action": ["s3:ListBucket"],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"],
            "Condition": {
                "StringLike": {
                    "s3:prefix": ["home/JohnDoe/*"]
                }
            }
        },
        {
            "Sid": "AllowAllS3ActionsInUserFolder",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/JohnDoe"
                ]
            },
            "Action": ["s3:*"],
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/home/JohnDoe/*"]
        }
    ]
}
```

------

## Gerenciar o acesso para logs de acesso
<a name="example-bucket-policies-access-logs"></a>

### Conceder acesso ao Application Load Balancer para habilitar logs de acesso
<a name="example-bucket-policies-access-logs-1"></a>

Ao habilitar os logs de acesso para o Application Load Balancer, você deve especificar o nome do bucket do S3 em que o balanceador de carga [armazenará os logs](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#access-log-create-bucket). O bucket deve ter uma [política anexada](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#attach-bucket-policy) que conceda ao Elastic Load Balancing permissão para gravar no bucket.

No exemplo a seguir, a política de bucket concede ao Elastic Load Balancing (ELB) permissão para gravar os logs de acesso no bucket:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/111122223333/*"
        }
    ]
}
```

------

**nota**  
Substitua `elb-account-id` pelo ID da Conta da AWS do Elastic Load Balancing para sua Região da AWS. Para ver a lista de regiões do Elastic Load Balancing, consulte [Anexar uma política ao seu bucket do S3](https://docs.aws.amazon.com//elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy) no *Guia do usuário do Elastic Load Balancing*.

Se sua Região da AWS não aparecer na lista de regiões compatíveis do Elastic Load Balancing, use a política a seguir, que concede permissões ao serviço de entrega de logs especificado.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
       "Principal": {
         "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
          },
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/111122223333/*"
    }
  ]
}
```

------

Depois, configure os [logs de acesso do Elastic Load Balancing](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#enable-access-logs) habilitando-os. Você pode [verificar as permissões de bucket](https://docs.aws.amazon.com//elasticloadbalancing/latest/application/enable-access-logging.html#verify-bucket-permissions) criando um arquivo de teste.

## Gerenciar o acesso para uma OAI do Amazon CloudFront
<a name="example-bucket-policies-cloudfront"></a>

### Conceder permissão para uma OAI do Amazon CloudFront
<a name="example-bucket-policies-cloudfront-1"></a>

O exemplo de política de bucket a seguir concede uma permissão de identidade do acesso de origem (OAI) do CloudFront para obter (ler) todos os objetos em seu bucket do S3. Você pode usar uma OAI do CloudFront para permitir que os usuários acessem objetos em seu bucket por meio do CloudFront, mas não diretamente pelo Amazon S3. Para obter mais informações, consulte [Restringir acesso ao conteúdo do Amazon S3 usando uma identidade do acesso de origem](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) no *Guia do desenvolvedor do Amazon CloudFront*.

A política a seguir usa o ID da OAI como `Principal` da política. Para obter mais informações sobre como usar políticas de bucket do S3 para conceder acesso a uma OAI do CloudFront, consulte [Migrar da identidade do acesso de origem (OAI) para o controle de acesso à origem (OAC)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html#migrate-from-oai-to-oac) no *Guia do desenvolvedor do Amazon CloudFront*.

Para usar este exemplo:
+ Substitua `EH1HDMB1FH2TC` pelo ID da OAI. Para localizar o ID da OAI, consulte a página [Origin Access Identity](https://console.aws.amazon.com/cloudfront/home?region=us-east-1#oai:) (Identidade do acesso de origem) no console do CloudFront ou use [https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html) na API do CloudFront.
+ Substitua `amzn-s3-demo-bucket` pelo nome do seu bucket.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

## Gerenciar o acesso para a Lente de Armazenamento do Amazon S3
<a name="example-bucket-policies-lens"></a>

### Conceder permissões para a Lente de Armazenamento do Amazon S3
<a name="example-bucket-policies-lens-1"></a>

A Lente de Armazenamento do S3 agrega suas métricas e exibe as informações na seção **Account snapshot** (Snapshot da conta) na página **Buckets** do console do Amazon S3. A Lente de Armazenamento do S3 também oferece um painel interativo para visualizar insights e tendências, sinalizar discrepâncias e receber recomendações para otimizar os custos de armazenamento e aplicar as práticas recomendadas de proteção de dados. O painel tem opções de detalhamento para gerar e visualizar insights no nível da organização, conta, Região da AWS, classe de armazenamento, bucket, prefixo ou grupo de Lente de Armazenamento. Também é possível enviar um relatório diário de métricas no formato CSV ou Parquet a um bucket do S3 de uso geral ou exportar as métricas diretamente para um bucket de tabela do S3 gerenciado pela AWS.

A Lente de Armazenamento do S3 pode exportar as métricas de uso de armazenamento agregadas em um bucket do Amazon S3 para análise posterior. O bucket em que o S3 Storage Lens coloca as exportações de métricas dele é conhecido como *bucket de destino*. Ao configurar a exportação de métricas do S3 Storage Lens, você deve ter uma política para o bucket de destino. Para obter mais informações, consulte [Monitorar a atividade de armazenamento e o uso com a Lente de Armazenamento do Amazon S3](storage_lens.md).

O exemplo de política de bucket a seguir concede ao Amazon S3 permissão para gravar objetos (solicitações `PUT`) em um bucket de destino. Você usa uma política de bucket como essa no bucket de destino ao configurar uma exportação de métricas do S3 Storage Lens.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3StorageLensExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "storage-lens.s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/destination-prefix/StorageLens/111122223333/*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:s3:region-code:111122223333:storage-lens/storage-lens-dashboard-configuration-id"
                }
            }
        }
    ]
}
```

------

Ao configurar uma exportação de métricas da organização da Lente de Armazenamento do S3, use a modificação a seguir na instrução `Resource` da política de bucket anterior.

```
1. "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/destination-prefix/StorageLens/your-organization-id/*",
```

## Gerenciar permissões para o Inventário do S3, análises do S3 e relatórios do Inventário do S3
<a name="example-bucket-policies-s3-inventory"></a>

### Conceder permissões para o Inventário do S3 e análises do S3
<a name="example-bucket-policies-s3-inventory-1"></a>

O Inventário do S3 cria listas dos objetos em um bucket do, e a exportação da análise da classe de armazenamento do S3 cria arquivos de saída dos dados usados na análise. O bucket para o qual o inventário lista objetos é chamado de *bucket de origem*. O bucket onde o arquivo de inventário ou arquivo de exportação da análise é gravado é chamado de *bucket de destino*. Ao configurar a exportação de um inventário ou uma análise, você deve criar uma política de bucket para o bucket de destino. Para obter mais informações, consulte [Catalogar e analisar seus dados com o Inventário S3](storage-inventory.md) e [Análise do Amazon S3 – Análise de classe de armazenamento](analytics-storage-class.md).

O exemplo da política de bucket a seguir concede permissão ao Amazon S3 para gravar objetos (solicitações `PUT`) da conta do bucket de origem para o bucket de destino. Use uma política de bucket como essa no bucket de destino ao configurar o Inventário do S3 e a exportação da análise do S3.

------
#### [ JSON ]

****  

```
{  
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
            "Sid": "InventoryAndAnalyticsExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": [
            "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
            ],
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket"
                },
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}
```

------

### Controlar a criação da configuração de relatórios do Inventário S3
<a name="example-bucket-policies-s3-inventory-2"></a>

[Catalogar e analisar seus dados com o Inventário S3](storage-inventory.md) cria listas dos objetos em um bucket do S3 e dos metadados de cada objeto. Com a permissão `s3:PutInventoryConfiguration`, o usuário tem autorização para criar uma configuração de inventário que inclui todos os campos de metadados de objetos que estão disponíveis por padrão e especificar o bucket de destino para armazenar o inventário. Um usuário com acesso de leitura aos objetos no bucket de destino pode acessar todos os campos de metadados do objeto que estão disponíveis no relatório de inventário. Para obter mais informações sobre os campos de metadados que estão disponíveis no S3 Inventory, consulte [Lista do Amazon S3 Inventory](storage-inventory.md#storage-inventory-contents).

Para impedir que um usuário configure um relatório do Inventário S3, remova a permissão `s3:PutInventoryConfiguration` do usuário.

Alguns campos de metadados de objetos nas configurações de relatório do Inventário S3 são opcionais, o que significa que estão disponíveis por padrão, mas podem ser restritos quando você concede a permissão `s3:PutInventoryConfiguration` a um usuário. É possível controlar se os usuários podem incluir esses campos de metadados opcionais em seus relatórios usando a chave de condição `s3:InventoryAccessibleOptionalFields`. Consulte uma lista dos campos de metadados opcionais disponíveis no Inventário S3 em [https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody) na *Referência de API do Amazon Simple Storage Service*.

Para conceder permissão ao usuário para criar uma configuração de inventário com campos de metadados opcionais específicos, use a chave de condição `s3:InventoryAccessibleOptionalFields` para refinar as condições na política de bucket. 

O exemplo de política a seguir concede a um usuário (`Ana`) permissão para criar uma configuração de inventário condicionalmente. A condição `ForAllValues:StringEquals` na política usa a chave de condição `s3:InventoryAccessibleOptionalFields` para especificar os dois campos de metadados opcionais permitidos, a saber `Size` e `StorageClass`. Então, quando `Ana` está criando uma configuração de inventário, os únicos campos de metadados opcionais que ela pode incluir são `Size` e `StorageClass`. 

------
#### [ JSON ]

****  

```
{
	"Id": "InventoryConfigPolicy",
	"Version":"2012-10-17",		 	 	 
	"Statement": [{
			"Sid": "AllowInventoryCreationConditionally",
			"Effect": "Allow",			
			"Principal": {
				"AWS": "arn:aws:iam::111122223333:user/Ana"
			},			
			"Action": 
				"s3:PutInventoryConfiguration",
			"Resource": 
				"arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET",
			"Condition": {
				"ForAllValues:StringEquals": {
					"s3:InventoryAccessibleOptionalFields": [
					   "Size",
					   "StorageClass"
					   ]
				  }
				}
			}
	]
}
```

------

Para impedir que um usuário configure um relatório do Inventário S3 que inclua campos de metadados opcionais específicos, adicione uma instrução `Deny` explícita à política do bucket de origem. O exemplo de política de bucket a seguir impede que a usuária `Ana` crie uma configuração de inventário no bucket de origem `amzn-s3-demo-source-bucket` que inclua os campos de metadados opcionais `ObjectAccessControlList` ou `ObjectOwner`. A usuária `Ana` ainda pode criar uma configuração de inventário com outros campos de metadados opcionais.

```
 1. {
 2. 	"Id": "InventoryConfigSomeFields",
 3. 	"Version": "2012-10-17",		 	 	 
 4. 	"Statement": [{
 5. 			"Sid": "AllowInventoryCreation",
 6. 			"Effect": "Allow",
 7. 			"Principal": {
 8. 				"AWS": "arn:aws:iam::111122223333:user/Ana"
 9. 			},
10. 			"Action": "s3:PutInventoryConfiguration",			
11. 			"Resource": 
12. 				"arn:aws:s3:::amzn-s3-demo-source-bucket",
13. 
14. 		},
15. 		{
16. 			"Sid": "DenyCertainInventoryFieldCreation",
17. 			"Effect": "Deny",
18. 			"Principal": {
19. 				"AWS": "arn:aws:iam::111122223333:user/Ana"
20. 			},
21. 			"Action": "s3:PutInventoryConfiguration",	
22. 			"Resource": 
23. 			  "arn:aws:s3:::amzn-s3-demo-source-bucket",			
24. 			"Condition": {
25. 				"ForAnyValue:StringEquals": {
26. 					"s3:InventoryAccessibleOptionalFields": [
27. 					   "ObjectOwner",
28. 					   "ObjectAccessControlList"
29. 					   ]
30. 				  }
31. 				}
32. 			}
33. 	]
34. }
```

**nota**  
O uso da chave de condição `s3:InventoryAccessibleOptionalFields` nas políticas de bucket não afeta a entrega de relatórios de inventário com base nas configurações de inventário existentes. 

**Importante**  
Recomendamos usar `ForAllValues` com efeito `Allow` ou `ForAnyValue` com efeito `Deny`, conforme mostrado nos exemplos anteriores.  
Não use `ForAllValues` com efeito `Deny` nem `ForAnyValue` com efeito `Allow`, pois essas combinações podem ser excessivamente restritivas e bloquear a exclusão da configuração do inventário.  
Para saber mais sobre os operadores do conjunto de condições `ForAllValues` e `ForAnyValue`, consulte [Multivalued context keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys) no *Guia do usuário do IAM*.

## Exigir MFA
<a name="example-bucket-policies-MFA"></a>

O Amazon S3 oferece suporte a acesso à API protegido por MFA, um recurso que pode impor a autenticação multifator para acessar os recursos do Amazon S3. A autenticação multifator fornece um nível extra de segurança que pode ser aplicado a seu ambiente da AWS. MFA é um recurso de segurança que exige que os usuários comprovem a posse física de um dispositivo MFA fornecendo um código válido de MFA. Para obter mais informações, consulte [Autenticação multifator da AWS](https://aws.amazon.com/mfa/). É possível exigir a autenticação MFA para todas as solicitações de acesso a seus recursos do Amazon S3. 

Para impor o requisito de MFA, use a chave de condição `aws:MultiFactorAuthAge` em uma política de bucket. Os usuários do IAM podem acessar os recursos do Amazon S3 usando credenciais temporárias emitidas pelo AWS Security Token Service (AWS STS). Forneça o código da MFA no momento da solicitação do AWS STS. 

Quando o Amazon S3 recebe uma solicitação com autenticação multifator, a chave de condição `aws:MultiFactorAuthAge` fornece um valor numérico que indica há quanto tempo (em segundos) a credencial temporária foi criada. Se a credencial temporária fornecida na solicitação não foi criada usando um dispositivo MFA, esse valor de chave será nulo (ausente). Em uma política de bucket, você pode adicionar uma condição para verificar esse valor, conforme mostrado no exemplo a seguir. 

O exemplo de política negará qualquer operação do Amazon S3 na pasta *`/taxdocuments`* do bucket `amzn-s3-demo-bucket` se a solicitação não for autenticada usando MFA. Para saber mais sobre MFA, consulte [Uso da autenticação multifator (MFA) na AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) no *Guia do usuário do IAM*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "123",
    "Statement": [
      {
        "Sid": "",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": { "Null": { "aws:MultiFactorAuthAge": true }}
      }
    ]
 }
```

------

A condição `Null` no bloco `Condition` será avaliada como `true` se o valor da chave de condição `aws:MultiFactorAuthAge` for nulo, o que indica que as credenciais de segurança temporárias da solicitação foram criadas sem um dispositivo de MFA. 

A política de bucket a seguir é uma extensão da política de bucket anterior. A política a seguir inclui duas declarações de política. Uma instrução concede a permissão `s3:GetObject` em um bucket (`amzn-s3-demo-bucket`) a todos. Outra instrução restringe ainda mais o acesso à pasta `amzn-s3-demo-bucket/taxdocuments` no bucket ao exigir MFA. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "123",
    "Statement": [
      {
        "Sid": "DenyInsecureConnections",
        "Effect": "Deny",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:root"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": { "Null": { "aws:MultiFactorAuthAge": true } }
      },
      {
        "Sid": "AllowGetObject",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:root"
        },
        "Action": ["s3:GetObject"],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    ]
 }
```

------

Opcionalmente, você pode usar uma condição numérica para limitar a validade da chave `aws:MultiFactorAuthAge`. A duração que você especifica com a chave `aws:MultiFactorAuthAge` não depende do ciclo de vida da credencial de segurança temporária usada para autenticar a solicitação. 

Por exemplo, a seguinte política de bucket, além de exigir autenticação MFA, também verifica há quanto tempo a sessão temporária foi criada. A política negará qualquer operação se o valor da chave `aws:MultiFactorAuthAge` indicar que a sessão temporária foi criada há mais de uma hora (3.600 segundos). 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "123",
    "Statement": [
      {
        "Sid": "",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": {"Null": {"aws:MultiFactorAuthAge": true }}
      },
      {
        "Sid": "",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/taxdocuments/*",
        "Condition": {"NumericGreaterThan": {"aws:MultiFactorAuthAge": 3600 }}
       },
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": "*",
         "Action": ["s3:GetObject"],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
    ]
 }
```

------

## Impedir que os usuários excluam objetos
<a name="using-with-s3-actions-related-to-bucket-subresources"></a>

Por padrão, os usuários não têm nenhuma permissão. No entanto, ao criar políticas, você pode conceder permissões que 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. 

Para impedir explicitamente que usuários ou contas excluam objetos, é necessário adicionar as seguintes ações a uma política de bucket: as permissões `s3:DeleteObject`, `s3:DeleteObjectVersion` e `s3:PutLifecycleConfiguration`. Todas as três ações são necessárias porque é possível excluir objetos chamando explicitamente a API `DELETE Object` ou configurando seu ciclo de vida (consulte [Gerenciar o ciclo de vida dos objetos](object-lifecycle-mgmt.md)) de modo que o Amazon S3 possa remover os objetos quando o respectivo ciclo de vida expirar.

No exemplo de política a seguir, você nega explicitamente as permissões `DELETE Object` ao usuário `MaryMajor`. Uma declaração `Deny` explícita sempre se sobrepõe a qualquer outra permissão concedida.

------
#### [ JSON ]

****  

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

------

# Exemplos de políticas de bucket usando chaves de condição
<a name="amazon-s3-policy-keys"></a>

Você pode usar a linguagem de políticas de acesso para especificar condições ao conceder permissões. É possível usar o elemento `Condition` opcional ou o bloco `Condition` para especificar condições referentes a quando uma política está em vigor. 

Para obter políticas que usam chaves de condição do Amazon S3 para operações de objeto e bucket, consulte os exemplos a seguir. Para obter mais informações sobre essas chaves de condição, consulte [Chaves de condição de política para o Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys). Consulte uma lista completa de ações, chaves de condição e recursos do Amazon S3 que você pode especificar em políticas em [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) 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](using-with-s3-policy-actions.md).

## Exemplos: chaves de condição do Amazon S3 para operações de objeto
<a name="object-keys-in-amazon-s3-policies"></a>

Os exemplos a seguir mostram como usar chaves de condição específicas do Amazon S3 para operações de objeto. Consulte uma lista completa de ações, chaves de condição e recursos do Amazon S3 que você pode especificar em políticas em [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) 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](using-with-s3-policy-actions.md).

Várias das políticas de exemplo mostram como você pode usar chaves de condições com operações de [objeto PUT](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html). As operações de objeto PUT permitem cabeçalhos específicos baseados em lista de controle de acesso (ACL) usados para conceder permissões baseadas em ACL. Usando essas chaves de condição, é possível definir uma condição para exigir permissões de acesso específicas quando o usuário faz upload de um objeto. Você também pode conceder permissões baseadas em ACL com a operação PutoObjectAcl. Para obter mais informações, consulte [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html) na *Referência da API do Amazon S3 Amazon Simple Storage Service*. Para obter mais informações sobre ACLs, consulte [Visão geral da lista de controle de acesso (ACL)](acl-overview.md).

**Topics**
+ [Exemplo 1: conceder a permissão `s3:PutObject` que exige que os objetos sejam armazenados usando criptografia do lado do servidor](#putobject-require-sse-2)
+ [Exemplo 2: conceder a permissão `s3:PutObject` para copiar objetos com uma restrição na origem da cópia](#putobject-limit-copy-source-3)
+ [Exemplo 3: conceder acesso a uma versão específica de um objeto](#getobjectversion-limit-access-to-specific-version-3)
+ [Exemplo 4: conceder permissões com base em tags de objetos](#example-object-tagging-access-control)
+ [Exemplo 5: restringir o acesso pelo ID da Conta da AWS do proprietário do bucket](#example-object-resource-account)
+ [Exemplo 6: exigir uma versão mínima do TLS](#example-object-tls-version)
+ [Exemplo 7: excluir determinadas entidades principais de uma declaração `Deny`](#example-exclude-principal-from-deny-statement)
+ [Exemplo 8: forçar os clientes a fazer upload de objetos condicionalmente com base nos nomes de chave de objeto ou nas ETags](#example-conditional-writes-enforce)

### Exemplo 1: conceder a permissão `s3:PutObject` que exige que os objetos sejam armazenados usando criptografia do lado do servidor
<a name="putobject-require-sse-2"></a>

Vamos supor que a conta A é proprietária de um bucket. O administrador da conta deseja conceder a Jane, uma usuária na conta A, permissão para fazer upload de objetos com a condição de que Jane sempre solicite a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3). O administrador da conta A pode especificar esse requisito usando a chave de condição `s3:x-amz-server-side-encryption`, conforme exibido. O par de chave-valor no bloco `Condition` a seguir especifica a chave de condição `s3:x-amz-server-side-encryption` e SSE-S3 (`AES256`) como o tipo de criptografia:

```
"Condition": {
     "StringNotEquals": {
         "s3:x-amz-server-side-encryption": "AES256"
     }}
```

Ao testar essa permissão por meio da AWS CLI, você deve adicionar a criptografia necessária usando o parâmetro `--server-side-encryption`, conforme mostrado no exemplo a seguir. Para usar esse exemplo de comando, substitua os `user input placeholders` por suas próprias informações. 

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key HappyFace.jpg --body c:\HappyFace.jpg --server-side-encryption "AES256" --profile AccountAadmin
```

### Exemplo 2: conceder a permissão `s3:PutObject` para copiar objetos com uma restrição na origem da cópia
<a name="putobject-limit-copy-source-3"></a>

Em uma solicitação de objeto `PUT`, quando se especifica o objeto de origem, a solicitação é uma operação de cópia (consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)). De acordo com isso, o proprietário do bucket pode conceder ao usuário permissão para copiar objetos com restrições na origem; por exemplo:
+ Permite copiar objetos somente do bucket de origem especificado (por exemplo, `amzn-s3-demo-source-bucket`).
+ Permite copiar objetos do bucket de origem especificado e somente os objetos cujo nome de chave comece com um prefixo específico, como *`public/`* (por exemplo, `amzn-s3-demo-source-bucket/public/*`).
+ Permite copiar somente um objeto específico do bucket de origem (por exemplo, `amzn-s3-demo-source-bucket/example.jpg`).

A política de bucket a seguir concede a um usuário (`Dave`) a permissão `s3:PutObject`. Essa política permite que ele copie objetos apenas com a condição de que a solicitação inclua o cabeçalho `s3:x-amz-copy-source` e o valor do cabeçalho especifique o prefixo de nome de chave `/amzn-s3-demo-source-bucket/public/*`. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Sid": "cross-account permission to user in your own account",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
        },
        {
            "Sid": "Deny your user permission to upload object if copy source is not /bucket/prefix",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*",
            "Condition": {
                "StringNotLike": {
                    "s3:x-amz-copy-source": "amzn-s3-demo-source-bucket/public/*"
                }
            }
        }
    ]
}
```

------

**Testar a política com a AWS CLI**  
Você pode testar a permissão usando o comando da AWS CLI `copy-object`. Você especifica a origem adicionando o parâmetro `--copy-source`; o prefixo de nome de chave que deve coincidir com o prefixo permitido na política. Você precisa inserir as credenciais do usuário de Dave usando o parâmetro `--profile`. Consulte mais informações sobre como configurar a AWS CLI em [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) na *Referência de API do Amazon S3*.

```
aws s3api copy-object --bucket amzn-s3-demo-source-bucket --key HappyFace.jpg 
--copy-source amzn-s3-demo-source-bucket/public/PublicHappyFace1.jpg --profile AccountADave
```

**Conceder permissão para copiar somente um objeto específico**  
A política anterior usa a condição `StringNotLike`. Para conceder a permissão para copiar apenas um objeto específico, é necessário alterar a condição de `StringNotLike` para `StringNotEquals` e, depois, especificar a chave de objeto exata, conforme exibido no exemplo a seguir. Para usar esse exemplo de comando, substitua os `user input placeholders` por suas próprias informações.

```
"Condition": {
       "StringNotEquals": {
           "s3:x-amz-copy-source": "amzn-s3-demo-source-bucket/public/PublicHappyFace1.jpg"
       }
}
```

### Exemplo 3: conceder acesso a uma versão específica de um objeto
<a name="getobjectversion-limit-access-to-specific-version-3"></a>

Vamos supor que a conta A seja proprietária de um bucket habilitado para versionamento. O bucket tem várias versões do objeto `HappyFace.jpg`. O administrador da conta A agora deseja conceder ao usuário `Dave` permissão para receber apenas uma versão específica do objeto. O administrador da conta pode fazer isso concedendo ao usuário `Dave` a permissão `s3:GetObjectVersion` de modo condicional, conforme mostrado no exemplo a seguir. O par de chave-valor no bloco `Condition` especifica a chave de condição `s3:VersionId`. Neste caso, para recuperar o objeto do bucket específico habilitado para versionamento, `Dave` precisa conhecer o ID de versão do objeto exato. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.

Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) na *Referência da API do Amazon Simple Storage Service*. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "statement1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:GetObjectVersion",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/HappyFace.jpg"
        },
        {
            "Sid": "statement2",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": "s3:GetObjectVersion",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/HappyFace.jpg",
            "Condition": {
                "StringNotEquals": {
                    "s3:VersionId": "AaaHbAQitwiL_h47_44lRO2DDfLlBO5e"
                }
            }
        }
    ]
}
```

------

**Testar a política com a AWS CLI**  
É possível testar as permissões nessa política usando o comando `get-object` da AWS CLI com o parâmetro `--version-id` para identificar a versão específica do objeto a ser recuperada. O comando recupera a versão especificada do objeto e a salva no arquivo `OutputFile.jpg`.

```
aws s3api get-object --bucket amzn-s3-demo-bucket --key HappyFace.jpg OutputFile.jpg --version-id AaaHbAQitwiL_h47_44lRO2DDfLlBO5e --profile AccountADave
```

### Exemplo 4: conceder permissões com base em tags de objetos
<a name="example-object-tagging-access-control"></a>

Para ver exemplos de como usar chaves de condição de marcação de objetos com operações do Amazon S3, consulte [Marcação e políticas de controle de acesso](tagging-and-policies.md).

### Exemplo 5: restringir o acesso pelo ID da Conta da AWS do proprietário do bucket
<a name="example-object-resource-account"></a>

É possível usar a chave de condição `aws:ResourceAccount` ou `s3:ResourceAccount` para gravar políticas de endpoint da nuvem privada virtual (VPC) ou do IAM que restrinjam o acesso de usuários, perfis ou aplicações aos buckets do Amazon S3 pertencentes a um ID de Conta da AWS específico. É possível usar essas chaves de condição para restringir o acesso dos clientes dentro da VPC aos buckets que você não possui.

No entanto, saiba que os serviços da AWS dependem do acesso a buckets gerenciados pela AWS. Portanto, usar a chave `aws:ResourceAccount` ou `s3:ResourceAccount` em sua política do IAM também pode afetar o acesso a esses recursos. Para saber mais, consulte os seguintes recursos:
+ [Restringir o acesso a buckets em uma Conta da AWS especificada](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#bucket-policies-s3) no *Guia do usuário do AWS PrivateLink*
+ [Restringir o acesso aos buckets que o Amazon ECR usa](https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-minimum-s3-perms) no *Guia do Amazon ECR*
+ [Fornecer acesso necessário ao Systems Manager para buckets do Amazon S3 gerenciados pela AWS](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-minimum-s3-permissions.html) no *Guia do AWS Systems Manager*

Para ter mais informações sobre as chaves de condição `aws:ResourceAccount` e `s3:ResourceAccount` e exemplos que mostram como usá-las, consulte [Limit access to Amazon S3 buckets owned by specific Contas da AWS](https://aws.amazon.com/blogs/storage/limit-access-to-amazon-s3-buckets-owned-by-specific-aws-accounts/) no *Blog do AWS Storage*.

### Exemplo 6: exigir uma versão mínima do TLS
<a name="example-object-tls-version"></a>

É possível usar a chave de condição `s3:TlsVersion` para gravar políticas do IAM, de endpoint de nuvem privada virtual (VPCE) ou de bucket que restrinjam o acesso de usuários ou de aplicações aos buckets do Amazon S3 com base na versão de TLS usada pelo cliente. Você pode usar essa chave de condição para gravar políticas que exigem uma versão mínima do TLS. 

**nota**  
Quando os serviços da AWS fazem chamadas para outros serviços da AWS em seu nome (chamadas de serviço para serviço), determinado contexto de autorização específico da rede é editado, incluindo `s3:TlsVersion`, `aws:SecureTransport`, `aws:SourceIp` e `aws:VpcSourceIp`. Se sua política usar essas chaves de condição com instruções `Deny`, as entidades principais do serviço da AWS poderão ser bloqueadas acidentalmente. Para permitir que os serviços da AWS funcionem adequadamente, mantendo seus requisitos de segurança, exclua as entidades principais do serviço de suas instruções `Deny` adicionando a chave de condição `aws:PrincipalIsAWSService` com um valor `false`. Por exemplo:  

```
{
  "Effect": "Deny",
  "Action": "s3:*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false",
      "aws:PrincipalIsAWSService": "false"
    }
  }
}
```
Essa política nega acesso às operações do S3 quando o HTTPS não é usado (`aws:SecureTransport` é falso), mas somente para entidades principais que não são de serviços da AWS. Isso garante que suas restrições condicionais se apliquem a todas as entidades principais, exceto às entidades principais de serviços da AWS.

**Example**  
O exemplo de política de bucket a seguir *nega* solicitações `PutObject` de clientes que tenham uma versão de TLS inferior a 1.2; por exemplo, 1.1 ou 1.0. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1",
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ],
            "Condition": {
                "NumericLessThan": {
                    "s3:TlsVersion": 1.2
                }
            }
        }
    ]
}
```

**Example**  
O exemplo de política de bucket a seguir *permite* solicitações `PutObject` de clientes que têm uma versão de TLS posterior a 1.1; por exemplo, 1.2, 1.3 ou posterior:    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1",
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ],
            "Condition": {
                "NumericGreaterThan": {
                    "s3:TlsVersion": 1.1
                }
            }
        }
    ]
}
```

### Exemplo 7: excluir determinadas entidades principais de uma declaração `Deny`
<a name="example-exclude-principal-from-deny-statement"></a>

A política de bucket a seguir nega acesso `s3:GetObject` ao `amzn-s3-demo-bucket`, exceto às entidades principais com o número de conta *`123456789012`*. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessFromPrincipalNotInSpecificAccount",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalAccount": [
            "123456789012"
          ]
        }
      }
    }
  ]
}
```

------

### Exemplo 8: forçar os clientes a fazer upload de objetos condicionalmente com base nos nomes de chave de objeto ou nas ETags
<a name="example-conditional-writes-enforce"></a>

Com gravações condicionais, é possível adicionar outro cabeçalho às solicitações `WRITE` a fim de especificar condições prévias para a operação do S3. Esse cabeçalho especifica uma condição que, se não for atendida, provocará uma falha na operação do S3. Por exemplo, você pode evitar a substituição de dados existentes ao confirmar que não há nenhum objeto com o mesmo nome de chave no bucket durante o upload do objeto. Você também pode verificar a tag de entidade (ETag) de um objeto no Amazon S3 antes de gravar um objeto.

Para conferir exemplos de políticas de bucket que usam condições para impor gravações condicionais, consulte [Impor gravações condicionais em buckets do Amazon S3](conditional-writes-enforce.md).

## Exemplos: chaves de condição do Amazon S3 para operações de bucket
<a name="bucket-keys-in-amazon-s3-policies"></a>

As políticas de exemplo a seguir mostram como usar chaves de condição específicas do Amazon S3 para operações de bucket.

**Topics**
+ [Exemplo 1: conceder a permissão `s3:GetObject` com uma condição em um endereço IP](#AvailableKeys-iamV2)
+ [Exemplo 2: obter uma lista de objetos em um bucket com um prefixo específico](#condition-key-bucket-ops-2)
+ [Exemplo 3: definir o número máximo de chaves](#example-numeric-condition-operators)

### Exemplo 1: conceder a permissão `s3:GetObject` com uma condição em um endereço IP
<a name="AvailableKeys-iamV2"></a>

Será possível conceder a usuários autenticados permissão para usar a ação `s3:GetObject`, se a solicitação for proveniente de um intervalo específico de endereços IP (por exemplo, `192.0.2.*`), a menos que o endereço IP seja um dos que você queira excluir (por exemplo, `192.0.2.188`). No bloco `Condition`, `IpAddress` e `NotIpAddress` são condições, e cada uma recebe um par de chave-valor para avaliação. Os dois pares de chave-valor neste exemplo usam a chave `aws:SourceIp` em toda a AWS. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.

**nota**  
Os valores de chave `IPAddress` e `NotIpAddress` especificados no bloco `Condition` usam notação CIDR conforme descrito na RFC 4632. Para obter mais informações,consulte [http://www.rfc-editor.org/rfc/rfc4632.txt](http://www.rfc-editor.org/rfc/rfc4632.txt).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "statement1",
            "Effect": "Allow",
            "Principal": "*",
            "Action":"s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition" : {
                "IpAddress" : {
                    "aws:SourceIp": "192.0.2.0/24" 
                },
                "NotIpAddress" : {
                    "aws:SourceIp": "192.0.2.188/32" 
                } 
            } 
        } 
    ]
}
```

------

Você também pode usar outras chaves de condição de toda a AWS nas políticas do Amazon S3. Por exemplo, você pode especificar o `aws:SourceVpce` e as chaves de condição `aws:SourceVpc` em políticas de bucket para VPC endpoints. Para obter exemplos específicos, consulte [Controlar o acesso a partir de VPC endpoints com políticas de bucket](example-bucket-policies-vpc-endpoint.md).

**nota**  
Em relação a algumas chaves de condição globais da AWS, somente certos tipos de recurso são compatíveis. Portanto, confira se o Amazon S3 é compatível com a chave de condição global e o tipo de recurso que você deseja usar ou se você precisará usar uma chave de condição específica do Amazon S3. Consulte uma lista completa de chaves de condição e tipos de recurso compatíveis com o Amazon S3 em [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) 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](using-with-s3-policy-actions.md).

### Exemplo 2: obter uma lista de objetos em um bucket com um prefixo específico
<a name="condition-key-bucket-ops-2"></a>

É possível usar a chave de condição `s3:prefix` para limitar a resposta da operação de API [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) a nomes de chave com um prefixo específico. Se o bucket pertencer a você, será possível usar essa chave de condição para impedir que um usuário liste o conteúdo de um prefixo específico no bucket. A chave de condição `s3:prefix` será útil se os objetos no bucket forem organizados por prefixos de nome de chave. 

O console do Amazon S3 usa prefixos de nomes de chaves para mostrar um conceito de pasta. Somente o console suporta o conceito de pastas; a API do Amazon S3 suporta somente buckets e objetos. Por exemplo, se você tiver dois objetos com nomes de chave *`public/object1.jpg`* e *`public/object2.jpg`*, o console mostrará os objetos na pasta *`public`*. Na API do Amazon S3, esses são objetos com prefixos, não objetos em pastas. Para obter mais informações sobre como usar prefixos e delimitadores para filtrar permissões de acesso, consulte [Controlar o acesso a um bucket com políticas de usuário](walkthrough1.md). 

No caso a seguir, o proprietário do bucket e a conta principal à qual o usuário pertence são os mesmos. Assim, o proprietário do bucket pode usar uma política de bucket ou uma política de usuário para conceder acesso. Para ter mais informações sobre outras chaves de condição que você pode usar para chamar a operação de API `ListObjectsV2`, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html).

**nota**  
Se o bucket tiver o versionamento habilitado, para listar os objetos no bucket, você deverá conceder a permissão `s3:ListBucketVersions` nas políticas a seguir, em vez da permissão `s3:ListBucket`. A permissão `s3:ListBucketVersions` também comporta a chave de condição `s3:prefix`. 

**Política de usuário**  
A política de usuário a seguir concede a permissão `s3:ListBucket` (consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)) com uma declaração `Condition` que exige que o usuário especifique um prefixo na solicitação com um valor de `projects`. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action": "s3:ListBucket",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringEquals" : {
                 "s3:prefix": "projects" 
             }
          } 
       },
      {
         "Sid":"statement2",
         "Effect":"Deny",
         "Action": "s3:ListBucket",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringNotEquals" : {
                 "s3:prefix": "projects" 
             }
          } 
       }         
    ]
}
```

------

A declaração `Condition` determina que o usuário liste apenas as chaves de objeto com o prefixo `projects`. A declaração `Deny` explícita adicionada nega ao usuário a listagem de chaves com qualquer outro prefixo, independentemente de outras permissões que ele possa ter. Por exemplo, é possível que o usuário receba a permissão para listar chaves de objeto sem nenhuma restrição, tanto por meio de atualizações na política de usuário anterior quanto por meio de uma política de bucket. Como as declarações `Deny` explícitas sempre substituem as declarações `Allow`, se o usuário tentar indicar chaves que não tenham o prefixo `projects`, a solicitação será negada. 

**Política de bucket**  
Se você adicionar o elemento `Principal` à política de usuário acima, identificando o usuário, terá uma política de bucket conforme exibido no exemplo a seguir. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/bucket-owner"
         },  
         "Action":  "s3:ListBucket",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringEquals" : {
                 "s3:prefix": "projects" 
             }
          } 
       },
      {
         "Sid":"statement2",
         "Effect":"Deny",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/bucket-owner"
         },  
         "Action": "s3:ListBucket",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition" : {
             "StringNotEquals" : {
                 "s3:prefix": "projects"  
             }
          } 
       }         
    ]
}
```

------

**Testar a política com a AWS CLI**  
Você pode testar a política usando o seguinte comando `list-object` da AWS CLI. No comando, você fornece as credenciais do usuário usando o parâmetro `--profile`. Consulte mais informações sobre como configurar e usar a AWS CLI em [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) na *Referência de API do Amazon S3*.

```
aws s3api list-objects --bucket amzn-s3-demo-bucket --prefix projects --profile AccountA
```

### Exemplo 3: definir o número máximo de chaves
<a name="example-numeric-condition-operators"></a>

É possível usar a chave de condição `s3:max-keys` para definir o número máximo de chaves que um solicitante pode exibir em uma solicitação [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) ou [https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com//AmazonS3/latest/API/API_ListObjectVersions.html). Por padrão, essas operações de API exibem até mil chaves. Para obter uma lista de operadores de condição numérica que você pode usar com `s3:max-keys` e exemplos associados, consulte [Operadores de condição numérica](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Numeric) no *Guia do usuário do IAM*.

# Políticas baseadas em identidade do Amazon S3
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, usuários e perfis não têm permissão para criar ou modificar recursos do Amazon S3. Para conceder permissão aos usuários para executar ações nos recursos que eles precisam, um administrador do IAM pode criar políticas do IAM.

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte [Criar políticas do IAM (no console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) no *Guia do usuário do IAM*.

Consulte detalhes sobre ações e tipos de recurso definidos pelo Amazon S3, incluindo o formato dos ARNs para cada tipo de recurso, em [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) 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](using-with-s3-policy-actions.md).

**Topics**
+ [Práticas recomendadas de política](#security_iam_service-with-iam-policy-best-practices)
+ [Controlar o acesso a um bucket com políticas de usuário](walkthrough1.md)
+ [Exemplos de políticas baseadas em identidade para o Amazon S3](example-policies-s3.md)

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Amazon S3 em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas gerenciadas pela AWS e avance para as permissões de privilégio mínimo**: para começar a conceder permissões a seus usuários e workloads, use as *políticas gerenciadas pela AWS*, que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis em seus Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente da AWS que são específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Também pode usar condições para conceder acesso a ações de serviço, se elas forem usadas por meio de um AWS service (Serviço da AWS) específico, como o CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA)**: se houver um cenário que exija usuários do IAM ou um usuário raiz em sua Conta da AWS, ative a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

# Controlar o acesso a um bucket com políticas de usuário
<a name="walkthrough1"></a>

Esta demonstração explica como as permissões de usuário funcionam com o Amazon S3. Nesse exemplo, você cria um bucket com pastas. Depois, crie usuários do AWS Identity and Access Management (IAM) na sua Conta da AWS e conceda a eles permissões incrementais no bucket do Amazon S3 e nas pastas dele. 

**Topics**
+ [Elementos básicos de buckets e pastas](#walkthrough-background1)
+ [Resumo da demonstração](#walkthrough-scenario)
+ [Preparar para a demonstração](#walkthrough-what-you-need)
+ [Etapa 1: Criar um bucket](#walkthrough1-create-bucket)
+ [Etapa 2: criar usuários do IAM e um grupo](#walkthrough1-add-users)
+ [Etapa 3: verificar se os usuários do IAM não têm nenhuma permissão](#walkthrough1-verify-no-user-permissions)
+ [Etapa 4: Conceder permissões no nível do grupo](#walkthrough-group-policy)
+ [Etapa 5: conceder permissões específicas do usuário do IAM Alice](#walkthrough-grant-user1-permissions)
+ [Etapa 6: conceder permissões específicas do usuário do IAM Bob](#walkthrough1-grant-permissions-step5)
+ [Etapa 7: Proteger a pasta Private](#walkthrough-secure-private-folder-explicit-deny)
+ [Etapa 8: Limpar](#walkthrough-cleanup)
+ [Recursos relacionados](#RelatedResources-walkthrough1)

## Elementos básicos de buckets e pastas
<a name="walkthrough-background1"></a>

O modelo de dados do Amazon S3 é uma estrutura plana: você cria um bucket e o bucket armazena objetos. Não há hierarquia de buckets ou de subpastas, mas você pode emular uma hierarquia de pastas. Ferramentas como o console do Amazon S3 podem apresentar uma visualização dessas pastas e subpastas lógicas no bucket.

O console mostra que o bucket nomeado `companybucket` tem três pastas, `Private`, `Development` e `Finance`, e um objeto, `s3-dg.pdf`. O console usa os nomes de objeto (chaves) para criar uma hierarquia lógica com pastas e subpastas. Considere os seguintes exemplos:
+ Ao criar a pasta `Development`, o console cria um objeto com a chave `Development/`. Observe delimitador (`/`) no final.
+ Quando você faz upload de um objeto chamado `Projects1.xls` na pasta `Development`, o console sobe o objeto e concede a ele a chave `Development/Projects1.xls`. 

  Na chave, `Development` é o [prefixo](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix) e `/` é o delimitador. A API do Amazon S3 oferece suporte a prefixos e delimitadores em suas operações. Por exemplo, você pode obter uma lista de todos os objetos no bucket com um prefixo e um delimitador específicos. No console, quando você abre a pasta `Development`, o console lista os objetos nela. No exemplo a seguir, a pasta `Development` contém um objeto. 

  Quando o console lista a pasta `Development` no bucket `companybucket`, ele envia uma solicitação para o Amazon S3 na qual especifica o prefixo `Development` e o delimitador `/` na solicitação. A resposta do console parece uma lista de pastas no sistema de arquivos de seu computador. O exemplo anterior mostra que o bucket `companybucket` tem um objeto com a chave `Development/Projects1.xls`.

O console está usando chaves de objeto para inferir uma hierarquia lógica. O Amazon S3 não tem hierarquia física. O Amazon S3 só tem buckets que contêm objetos em uma estrutura de arquivos simples. Ao criar objetos usando a API do Amazon S3, você pode usar chaves de objeto que implicam uma hierarquia lógica. Ao criar uma hierarquia lógica de objetos, você pode gerenciar o acesso a pastas individuais, como este passo a passo ensina.

Antes de começar, você precisa conhecer o conceito de conteúdo *no nível raiz* do bucket. Suponha que seu bucket `companybucket` contenha os seguintes objetos:
+ `Private/privDoc1.txt`
+ `Private/privDoc2.zip`
+ `Development/project1.xls`
+ `Development/project2.xls`
+ `Finance/Tax2011/document1.pdf`
+ `Finance/Tax2011/document2.pdf`
+ `s3-dg.pdf`

Essas chaves de objeto criam uma hierarquia lógica com `Private`, `Development` e `Finance` como pastas no nível raiz, e `s3-dg.pdf` como objeto no nível raiz. Quando você escolhe o nome do bucket no console do Amazon S3, os itens no nível raiz são exibidos. O console exibe os prefixos no nível superior (`Private/`, `Development/` e `Finance/`) como pastas no nível raiz. A chave de `s3-dg.pdf` não tem um prefixo, então, ela aparece como um item no nível raiz.



## Resumo da demonstração
<a name="walkthrough-scenario"></a>

Neste passo a passo, você cria um bucket com três pastas (`Private`, `Development` e `Finance`). 

Você tem dois usuários, Alice e Bob. Você quer que a Alice tenha acesso somente à pasta `Development`, e Bob tenha acesso à `Finance`. Você quer manter o conteúdo da pasta `Private` privado. Na demonstração, você gerencia o acesso criando usuários do IAM (o exemplo usa os mesmos nomes de usuário, Alice e Bob) e concede as permissões necessárias. 

O IAM também permite criar grupos de usuários e conceder permissões no nível do grupo que se aplicam a todos os usuários no grupo. Isso ajuda a gerenciar melhor as permissões. Neste exercício, Alice e Bob precisam ter algumas permissões comuns. Então, você também cria um grupo chamado `Consultants` e adiciona Alice e Bob a ele. Primeiro, você concede permissões anexando uma política de grupo ao grupo. Depois, adiciona permissões específicas do usuário anexando políticas a usuários específicos.

**nota**  
O passo a passo usa `companybucket` como o nome do bucket, Alice e Bob como os usuários do `Consultants`, e IAM como o nome do grupo. Como o Amazon S3 exige que os nomes de bucket sejam globalmente exclusivos, você precisará substituir o nome do bucket pelo nome que criar.

## Preparar para a demonstração
<a name="walkthrough-what-you-need"></a>

 Neste exemplo, use suas credenciais da Conta da AWS para criar usuários do IAM. Inicialmente, esses usuários não têm nenhuma permissão. Você concede gradualmente a esses usuários as permissões para executar ações específicas do Amazon S3. Para testar essas permissões, você entra no console com as credenciais de cada usuário. À medida que conceder gradualmente permissões como proprietário da Conta da AWS e testar permissões como um usuário do IAM, você precisará entrar e sair, sempre usando credenciais diferentes. Você pode fazer o teste em apenas um navegador, mas o processo é mais rápido se você usar dois navegadores diferentes. Use um navegador para se conectar ao Console de gerenciamento da AWS com as suas credenciais da Conta da AWS e outro para se conectar com as credenciais de usuário do IAM. 

 Para fazer login no Console de gerenciamento da AWS com as credenciais da sua Conta da AWS, acesse [https://console.aws.amazon.com/](https://console.aws.amazon.com/).  Um usuário do IAM não pode fazer login com o mesmo link. Um usuário do IAM deve usar uma página de login habilitada para o IAM. Como proprietário da conta, você pode fornecer este link para seus usuários. 

Para obter mais informações sobre o IAM, consulte a [página sobre login no Console de gerenciamento da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/console.html) no *Guia do usuário do IAM*.

### Para fornecer um link de login para usuários do IAM
<a name="walkthrough-sign-in-user-credentials"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel **Navigation (Navegação)**, escolha **IAM Dashboard (Painel do IAM)**.

1. Observe o URL em **IAM users sign in link: (Link de login de usuários do IAM:)**. Você dará este link para usuários do IAM entrarem no console com seu nome de usuário e senha do IAM.

## Etapa 1: Criar um bucket
<a name="walkthrough1-create-bucket"></a>

Nesta etapa, você faz login no console do Amazon S3 com suas credenciais da Conta da AWS, cria um bucket, adiciona pastas a ele e carrega uma ou duas amostras de documentos em cada pasta. 

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Crie um bucket. 

   Para obter instruções detalhadas, consulte [Criar um bucket de uso geral](create-bucket-overview.md).

1. Faça upload de um documento no bucket.

   Este exercício pressupõe que você tem o documento `s3-dg.pdf` no nível raiz desse bucket. Se você carregar um documento diferente, substitua o nome de arquivo para `s3-dg.pdf`.

1. Adicione três pastas nomeadas `Private`, `Finance` e `Development` ao bucket.

   Para obter instruções detalhadas para criar uma pasta, consulte [Organizar objetos no console do Amazon S3 usando pastas](using-folders.md)> no *Manual do usuário do Amazon Simple Storage Service*.

1. Faça upload de um ou dois documentos em cada pasta. 

   Neste exercício, suponha que você tenha carregado alguns documentos em cada pasta, resultando que o bucket tenha objetos com as seguintes chaves:
   + `Private/privDoc1.txt`
   + `Private/privDoc2.zip`
   + `Development/project1.xls`
   + `Development/project2.xls`
   + `Finance/Tax2011/document1.pdf`
   + `Finance/Tax2011/document2.pdf`
   + `s3-dg.pdf`

   

   Para obter instruções detalhadas, consulte [Fazer upload de objetos](upload-objects.md). 

## Etapa 2: criar usuários do IAM e um grupo
<a name="walkthrough1-add-users"></a>

Agora, use o [console do IAM](https://console.aws.amazon.com/iam/) para adicionar dois usuários do IAM, Alice e Bob, à sua Conta da AWS. Para obter instruções passo a passo, consulte [Criar um usuário do IAM na sua Conta da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) no *Guia do usuário do IAM*. 

Crie também um grupo administrativo chamado `Consultants`. Depois, adicione os dois usuários ao grupo. Para obter instruções passo a passo, consulte [Criação de grupos de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html). 

**Atenção**  
Quando você adicionar usuários e um grupo, não anexe políticas que concedem permissões a esses usuários. No início, esses usuários não terão permissões. Nas próximas seções, você concederá permissões incrementalmente. Primeiro verifique se atribuiu senhas a esses usuários do IAM. Você utilizará essas credenciais de usuário para testar as ações do Amazon S3 e verificar se as permissões funcionam como esperado.

Consulte instruções detalhadas de como criar um usuário do IAM em [Criar um usuário do IAM na sua Conta da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) no *Guia do usuário do IAM*. Ao criar usuários seguindo este passo a passo, selecione **Acesso ao Console de gerenciamento da AWS** e desmarque [Acesso programático](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).

Para obter instruções passo a passo para criar um grupo administrativo, consulte [Criar seu primeiro usuário administrador e grupo do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) no *Guia do usuário do IAM*.



## Etapa 3: verificar se os usuários do IAM não têm nenhuma permissão
<a name="walkthrough1-verify-no-user-permissions"></a>

Se você estiver usando dois navegadores, agora poderá usar o segundo navegador para entrar no console usando uma das credenciais de usuário do IAM.

1. Usando o link de login de usuário do IAM (consulte [Para fornecer um link de login para usuários do IAM](#walkthrough-sign-in-user-credentials)), entre no Console de gerenciamento da AWS usando qualquer uma das credenciais de usuário do IAM.

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

    Verifique a mensagem do console que informa que o acesso foi negado. 

Agora, você pode começar a conceder permissões incrementais aos usuários. Antes, você anexará uma política de grupo concedendo as permissões de que os dois usuários precisam. 

## Etapa 4: Conceder permissões no nível do grupo
<a name="walkthrough-group-policy"></a>

Você quer que os usuários possam fazer o seguinte:
+ Listar todos os buckets de propriedade da conta pai. Para fazer isso, Bob e Alice devem ter permissão para a ação `s3:ListAllMyBuckets`.
+ Listar itens, pastas e objetos no nível raiz no bucket `companybucket`. Para fazer isso, Bob e Alice devem ter permissão para a ação `s3:ListBucket` no bucket `companybucket`.

Primeiro, você cria uma política que concede essas permissões e, depois, anexa-a ao grupo `Consultants`. 

### Etapa 4.1: Conceder permissão para listar todos os buckets
<a name="walkthrough1-grant-permissions-step1"></a>

Nesta etapa, você cria uma política gerenciada que concede aos usuários as permissões mínimas para listar todos os buckets de propriedade da conta pai. Depois, anexa a política ao grupo `Consultants`. Ao anexar a política gerenciada a um usuário ou um grupo, você concede ao usuário ou grupo a permissão para obter uma lista de buckets de propriedade da pai Conta da AWS.

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).
**nota**  
Como você está concedendo permissões de usuário, faça login com suas credenciais da Conta da AWS, e não como um usuário do IAM.

1. Crie a política gerenciada.

   1. No painel de navegação à esquerda, escolha **Policies (Políticas)** e **Create Policy (Criar política)**.

   1. Selecione a guia **JSON**.

   1. Copie a política de acesso a seguir e cole-a no campo de texto da política.

------
#### [ JSON ]

****  

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

------

      Uma política é um documento JSON. No documento, uma `Statement` é uma matriz de objetos, cada uma descrevendo uma permissão usando uma coleção de pares de valores de nome. A política anterior descreve uma permissão específica. A `Action` especifica o tipo de acesso. Na política, `s3:ListAllMyBuckets` é uma ação do Amazon S3 predefinida. Esta ação abrange a operação GET Service do Amazon S3, que retorna uma lista de todos os buckets pertencentes ao remetente autenticado. O valor do elemento `Effect` determina se a permissão específica é permitida ou negada.

   1. Escolha **Review Policy** (Revisar política). Na próxima página, insira `AllowGroupToSeeBucketListInTheConsole` no campo **Name (Nome)** e escolha em **Create policy (Criar política)**.
**nota**  
A entrada **Summary (Resumo)** exibe uma mensagem afirmando que a política não concede permissão nenhuma. Para esta apresentação, você pode, de maneira segura, ignorar essa mensagem.

1. Anexe a política gerenciada `AllowGroupToSeeBucketListInTheConsole` que você criou para o grupo `Consultants`.

   Consulte instruções detalhadas de como anexar uma política gerenciada em [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#attach-managed-policy-console) no *Guia do usuário do IAM*. 

   Anexe documentos de política a usuários e grupos do IAM no console do IAM. Como você quer que os dois usuários possam listar os buckets, você anexa a política ao grupo. 

1. Teste a permissão.

   1. Usando o link de login de usuário do IAM (consulte [Para fornecer um link de login para usuários do IAM](#walkthrough-sign-in-user-credentials)), entre no console usando qualquer uma das credenciais de usuário do IAM.

   1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

      O console agora deve listar todos os buckets, mas não os objetos dos buckets.

### Etapa 4.2: Permitir que os usuários listem o conteúdo do nível raiz de um bucket
<a name="walkthrough1-grant-permissions-step2"></a>

Agora, você permite que todos os usuários no grupo `Consultants` listem itens no nível raiz do bucket `companybucket`. Quando um usuário escolhe o bucket da empresa no console do Amazon S3, ele pode visualizar os itens no nível raiz do bucket.

**nota**  
Esse exemplo usa `companybucket` como ilustração. Use o nome do bucket que você criou.

Para entender a solicitação que o console envia ao Amazon S3 quando você escolhe o nome de um bucket, a resposta que o Amazon S3 retorna e como o console a interpreta, examine o fluxo mais detalhadamente.

Quando você clica no nome de um bucket, o console envia a solicitação [GET Bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) ao Amazon S3. Essa solicitação inclui os parâmetros a seguir:
+ O parâmetro `prefix` com uma string vazia como valor. 
+ O parâmetro `delimiter` com `/` como valor. 

Veja a seguir uma solicitação de exemplo.

```
GET ?prefix=&delimiter=/ HTTP/1.1 
Host: companybucket.s3.amazonaws.com
Date: Wed, 01 Aug  2012 12:00:00 GMT
Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE=
```

O Amazon S3 retorna uma resposta que inclui o seguinte elemento `<ListBucketResult/>`.

```
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>companybucket</Name>
  <Prefix></Prefix>
  <Delimiter>/</Delimiter>
   ...
  <Contents>
    <Key>s3-dg.pdf</Key>
    ...
  </Contents>
  <CommonPrefixes>
    <Prefix>Development/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>Finance/</Prefix>
  </CommonPrefixes>
  <CommonPrefixes>
    <Prefix>Private/</Prefix>
  </CommonPrefixes>
</ListBucketResult>
```

O objeto `s3-dg.pdf` da chave não contém o delimitador `/`, e o Amazon S3 retorna a chave no elemento `<Contents>`. Contudo, todas as outras chaves no bucket de exemplo contêm o delimitador `/`. O Amazon S3 agrupa essas chaves e retorna um elemento `<CommonPrefixes>` para cada um dos valores distintos de prefixo `Development/`, `Finance/` e `Private/`, isto é, uma substring desde o início dessas chaves até a primeira ocorrência do delimitador `/` especificado. 

O console interpreta este resultado e exibe os itens no nível raiz como três pastas e uma chave de objeto. 

Se Bob ou Alice abrirem a pasta **Development (Desenvolvimento)**, o console enviará a solicitação [GET Bucket (Listar objetos)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) ao Amazon S3 com os parâmetros `prefix` e `delimiter` definidos como os seguintes valores:
+ O parâmetro `prefix` com valor `Development/`.
+ O parâmetro `delimiter` com valor "`/`". 

Em resposta, o Amazon S3 retorna as chaves de objeto que começam com o prefixo especificado. 

```
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Name>companybucket</Name>
  <Prefix>Development</Prefix>
  <Delimiter>/</Delimiter>
   ...
  <Contents>
    <Key>Project1.xls</Key>
    ...
  </Contents>
  <Contents>
    <Key>Project2.xls</Key>
    ...
  </Contents> 
</ListBucketResult>
```

O console mostra as chaves de objeto.

Agora, volte a conceder aos usuários a permissão para listar itens no nível raiz do bucket. Para listar conteúdo de bucket, os usuários precisam de permissão para chamar a ação `s3:ListBucket`, conforme exibido na seguinte declaração de política. Para garantir que eles vejam somente o conteúdo no nível raiz, você adiciona uma condição de que os usuários devem especificar um `prefix` vazio na solicitação, isto é, eles não podem clicar duas vezes em nenhuma das pastas no nível raiz. Finalmente, você adiciona uma condição para solicitar o acesso de pasta exigindo que as solicitações de usuário incluam o parâmetro `delimiter` com valor "`/`". 

```
{
  "Sid": "AllowRootLevelListingOfCompanyBucket",
  "Action": ["s3:ListBucket"],
  "Effect": "Allow",
  "Resource": ["arn:aws:s3:::companybucket"],
  "Condition":{ 
         "StringEquals":{
             "s3:prefix":[""], "s3:delimiter":["/"]
                        }
              }
}
```

Quando você escolhe o bucket no console do Amazon S3, o console primeiro envia a solicitação [GET Bucket location](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlocation.html) para encontrar a Região da AWS em que o bucket está implantado. Depois, o console usa o endpoint específico da região para o bucket enviar a solicitação [GET Bucket (listar objetos)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html). Como resultado, se os usuários forem usar o console, você deverá conceder permissão para a ação `s3:GetBucketLocation` conforme exibido na seguinte declaração de política.

```
{
   "Sid": "RequiredByS3Console",
   "Action": ["s3:GetBucketLocation"],
   "Effect": "Allow",
   "Resource": ["arn:aws:s3:::*"]
}
```

**Para permitir que os usuários listem o conteúdo do nível raiz do bucket**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   Use as credenciais da sua Conta da AWS, e não as credenciais de um usuário do IAM, para fazer login no console.

1. Substitua a política gerenciada existente `AllowGroupToSeeBucketListInTheConsole` que está anexada ao grupo `Consultants` pela política a seguir, que também permite a ação `s3:ListBucket`. Lembre-se de substituir *`companybucket`* na política `Resource` pelo nome do bucket. 

   Consulte instruções detalhadas em [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*. Ao seguir as instruções detalhadas, siga as etapas para aplicar as alterações em todas as entidades principais às quais a política está anexada. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	                  
     "Statement": [
        {
          "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
          "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ],
          "Effect": "Allow",
          "Resource": [ "arn:aws:s3:::*"  ]
        },
        {
          "Sid": "AllowRootLevelListingOfCompanyBucket",
          "Action": ["s3:ListBucket"],
          "Effect": "Allow",
          "Resource": ["arn:aws:s3:::companybucket"],
          "Condition":{ 
                "StringEquals":{
                       "s3:prefix":[""], "s3:delimiter":["/"]
                              }
                      }
        }
     ] 
   }
   ```

------

1. Teste as permissões atualizadas.

   1. Usando o link de login de usuário do IAM (consulte [Para fornecer um link de login para usuários do IAM](#walkthrough-sign-in-user-credentials)), acesse o Console de gerenciamento da AWS. 

      Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Escolha o bucket que você criou, e o console mostrará os itens no nível raiz do bucket. Se você escolher alguma pasta no bucket, não verá o conteúdo dela, porque ainda não concedeu essas permissões.

Esse teste é bem-sucedido quando os usuários usam o console do Amazon S3. Ao escolher um bucket no console, a implementação do console envia uma solicitação que inclui o parâmetro `prefix` com uma string vazia como seu valor e o parâmetro `delimiter` com "`/`" como valor.

### Etapa 4.3: Resumo da política de grupo
<a name="walkthrough-group-policy-summary"></a>

O efeito final da política de grupo que você adicionou é conceder aos usuários do IAM Alice e Bob as seguintes permissões mínimas:
+ Listar todos os buckets de propriedade da conta pai.
+ Ver itens no nível raiz no bucket `companybucket`. 

Contudo, os usuários ainda não podem fazer muita coisa. Agora, conceda as permissões específicas do usuário da seguinte maneira:
+ Permite que a Alice obtenha e coloque objetos na pasta `Development`.
+ Permite que o Bob obtenha e coloque objetos na pasta `Finance`.

Para permissões específicas do usuário, anexe uma política ao usuário específico, não ao grupo. Na próxima seção, conceda permissão para a Alice trabalhar na pasta `Development`. Você pode repetir as etapas para conceder a Bob permissão semelhante para trabalhar na pasta `Finance`.

## Etapa 5: conceder permissões específicas do usuário do IAM Alice
<a name="walkthrough-grant-user1-permissions"></a>

Agora você concede permissões adicionais a Alice para que ela possa ver o conteúdo da pasta `Development` e obter e colocar objetos nela.

### Etapa 5.1: conceder permissão do usuário do IAM Alice para listar o conteúdo da pasta Development
<a name="walkthrough-grant-user1-permissions-listbucket"></a>

Para que Alice possa listar o conteúdo da pasta `Development`, você deve aplicar uma política à usuária Alice concedendo permissão para a ação `s3:ListBucket` no bucket `companybucket`, contanto que a solicitação inclua o prefixo `Development/`. Você quer que essa política seja aplicada somente ao usuário Alice, então, usa uma política em linha. Para obter mais informações sobre políticas em linha, consulte [Políticas gerenciadas e em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do IAM*.

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   Use as credenciais da sua Conta da AWS, e não as credenciais de um usuário do IAM, para fazer login no console.

1. Crie uma política em linha para conceder ao usuário Alice permissão para listar o conteúdo da pasta `Development`.

   1. No painel de navegação à esquerda, escolha **Uses (Usuários)**.

   1. Selecione o nome de usuário **Alice**.

   1. Na página de detalhes do usuário, selecione a guia **Permissions (Permissões)** e escolha **Add inline policy (Adicionar política em linha)**.

   1. Selecione a guia **JSON**.

   1. Copie a política a seguir e cole-a no campo de texto da política.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	   
          "Statement": [
          {
            "Sid": "AllowListBucketIfSpecificPrefixIsIncludedInRequest",
            "Action": ["s3:ListBucket"],
            "Effect": "Allow",
            "Resource": ["arn:aws:s3:::companybucket"],
            "Condition": { "StringLike": {"s3:prefix": ["Development/*"] }
             }
          }
        ]
      }
      ```

------

   1. Escolha **Review Policy** (Revisar política). Na próxima página, insira um nome no campo **Name (Nome)** e escolha **Create policy (Criar política)**.

1. Teste a alteração nas permissões de Alice:

   1. Usando o link de login de usuário do IAM (consulte [Para fornecer um link de login para usuários do IAM](#walkthrough-sign-in-user-credentials)), acesse o Console de gerenciamento da AWS. 

   1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. No console do Amazon S3, verifique se Alice pode visualizar a lista de objetos na pasta `Development/` no bucket. 

      Quando o usuário escolhe a pasta `/Development` para visualizar a lista de objetos nela, o console do Amazon S3 envia a solicitação `ListObjects` ao Amazon S3 com o prefixo `/Development`. Como o usuário recebe permissão para visualizar a lista de objetos com o prefixo `Development` e o delimitador `/`, o Amazon S3 retorna a lista de objetos com o prefixo de chave `Development/`, e o console exibe a lista.

### Etapa 5.2: conceder permissões do usuário do IAM Alice para obter e colocar objetos na pasta Development
<a name="walkthrough-grant-user1-permissions-get-put-object"></a>

Para que a Alice possa obter e colocar objetos na pasta `Development`, ela precisa de permissão para chamar as ações `s3:GetObject` e `s3:PutObject`. As declarações de política a seguir concedem essas permissões, contanto que a solicitação inclua o parâmetro `prefix` com um valor de `Development/`.

```
{
    "Sid":"AllowUserToReadWriteObjectData",
    "Action":["s3:GetObject", "s3:PutObject"],
    "Effect":"Allow",
    "Resource":["arn:aws:s3:::companybucket/Development/*"]
 }
```



1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   Use as credenciais da sua Conta da AWS, e não as credenciais de um usuário do IAM, para fazer login no console.

1. Edite a política em linha que você criou na etapa anterior. 

   1. No painel de navegação à esquerda, escolha **Uses (Usuários)**.

   1. Selecione o nome de usuário Alice.

   1. Na página de detalhes do usuário, selecione a guia **Permissions (Permissões)** e depois expanda a seção **Inline Policies (Políticas em linha)**.

   1. Escolha **Edit Policy (Editar política)** ao lado do nome da política que você criou na etapa anterior.

   1. Copie a política a seguir e cole no campo do texto de política para substituir a política existente:

------
#### [ JSON ]

****  

      ```
      {
           "Version":"2012-10-17",		 	 	 
           "Statement":[
            {
               "Sid":"AllowListBucketIfSpecificPrefixIsIncludedInRequest",
               "Action":["s3:ListBucket"],
               "Effect":"Allow",
               "Resource":["arn:aws:s3:::companybucket"],
               "Condition":{
                  "StringLike":{"s3:prefix":["Development/*"]
                  }
               }
            },
            {
              "Sid":"AllowUserToReadWriteObjectDataInDevelopmentFolder", 
              "Action":["s3:GetObject", "s3:PutObject"],
              "Effect":"Allow",
              "Resource":["arn:aws:s3:::companybucket/Development/*"]
            }
         ]
      }
      ```

------

1. Teste a política atualizada:

   1. Usando o link de login de usuário do IAM (consulte [Para fornecer um link de login para usuários do IAM](#walkthrough-sign-in-user-credentials)), acesse o Console de gerenciamento da AWS. 

   1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. No console do Amazon S3, verifique se Alice agora pode adicionar um objeto e fazer download de um objeto na pasta `Development`. 

### Etapa 5.3: negar explicitamente permissões do usuário do IAM Alice a todas as outras pastas no bucket
<a name="walkthrough-grant-user1-explicit-deny-other-access"></a>

O usuário Alice agora pode listar o conteúdo do nível raiz no bucket `companybucket`. Ela também pode obter e colocar objetos na pasta `Development`. Se você quiser realmente limitar as permissões de acesso, poderá negar explicitamente o acesso de Alice a todas as outras pastas no bucket. Se houver alguma outra política (política de bucket ou ACL) que concede a Alice acesso a outras pastas no bucket, essa negação explícita cancelará essas permissões. 

É possível adicionar a seguinte declaração à política de usuário Alice que exige que todas as solicitações que Alice envia ao Amazon S3 incluam o parâmetro `prefix`, cujo valor pode ser `Development/*` ou uma string vazia. 



```
{
   "Sid": "ExplicitlyDenyAnyRequestsForAllOtherFoldersExceptDevelopment",
   "Action": ["s3:ListBucket"],
   "Effect": "Deny",
   "Resource": ["arn:aws:s3:::companybucket"],
   "Condition":{  "StringNotLike": {"s3:prefix":["Development/*",""] },
                  "Null"         : {"s3:prefix":false }
    }
}
```

Há duas expressões condicionais no bloco `Condition`. O resultado dessas expressões condicionais é combinado usando o operador lógico `AND`. Se ambas as condições forem verdadeiras, o resultado da condição combinada será verdadeiro. Como o `Effect` nessa política é `Deny`, quando `Condition` é classificado como verdadeiro, os usuários não podem executar a `Action` especificada.
+ A expressão condicional `Null` garante que as solicitações de Alice incluam o parâmetro `prefix`. 

  O parâmetro `prefix` requer acesso de pasta. Se você enviar uma solicitação sem o parâmetro `prefix`, o Amazon S3 retornará todas as chaves de objeto. 

  Se a solicitação incluir o parâmetro `prefix` com um valor nulo, a expressão será classificada como verdadeiro e, portanto, a `Condition` inteira será classificada como verdadeira. Você deve permitir uma string vazia como o valor do parâmetro `prefix`. Com a discussão anterior, lembre-se que a string nula permite que Alice recupere itens de bucket no nível raiz como o console faz na discussão anterior. Para obter mais informações, consulte [Etapa 4.2: Permitir que os usuários listem o conteúdo do nível raiz de um bucket](#walkthrough1-grant-permissions-step2). 
+ A expressão condicional `StringNotLike` garante que, se o valor do parâmetro `prefix` for especificado e não for `Development/*`, a solicitação falhará. 

Siga as etapas na seção anterior e atualize novamente a política em linha que você criou para o usuário Alice.

Copie a política a seguir e cole no campo do texto de política para substituir a política existente:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowListBucketIfSpecificPrefixIsIncludedInRequest",
         "Action":["s3:ListBucket"],
         "Effect":"Allow",
         "Resource":["arn:aws:s3:::companybucket"],
         "Condition":{
            "StringLike":{"s3:prefix":["Development/*"]
            }
         }
      },
      {
        "Sid":"AllowUserToReadWriteObjectDataInDevelopmentFolder", 
        "Action":["s3:GetObject", "s3:PutObject"],
        "Effect":"Allow",
        "Resource":["arn:aws:s3:::companybucket/Development/*"]
      },
      {
         "Sid": "ExplicitlyDenyAnyRequestsForAllOtherFoldersExceptDevelopment",
         "Action": ["s3:ListBucket"],
         "Effect": "Deny",
         "Resource": ["arn:aws:s3:::companybucket"],
         "Condition":{  "StringNotLike": {"s3:prefix":["Development/*",""] },
                        "Null"         : {"s3:prefix":false }
          }
      }
   ]
}
```

------

## Etapa 6: conceder permissões específicas do usuário do IAM Bob
<a name="walkthrough1-grant-permissions-step5"></a>

Agora você quer conceder ao Bob permissão para a pasta `Finance`. Siga as etapas que você usou anteriormente para conceder permissões a Alice, mas substitua a pasta `Development` pela pasta `Finance`. Para obter instruções detalhadas, consulte [Etapa 5: conceder permissões específicas do usuário do IAM Alice](#walkthrough-grant-user1-permissions). 

## Etapa 7: Proteger a pasta Private
<a name="walkthrough-secure-private-folder-explicit-deny"></a>

Neste exemplo, você tem apenas dois usuários. Você concedeu todas as permissões mínimas necessárias no nível do grupo e concedeu permissões no nível do usuário somente quando realmente precisou de permissões no nível do usuário individual. Essa abordagem ajuda a minimizar o esforço de gerenciamento de permissões. Conforme o número de usuários aumenta, gerenciar permissões pode ser um problema. Por exemplo, você não quer que nenhum dos usuários neste exemplo acesse o conteúdo da pasta `Private`. Como garantir que você não vai conceder acidentalmente uma permissão ao usuário para a pasta `Private`? Adicione uma política que negue explicitamente acesso à pasta. Uma negação explícita substitui todas as outras permissões. 

Para garantir que a pasta `Private` permaneça privada, você pode adicionar as duas declarações de negação a seguir à política de grupo:
+ Adicione a seguinte declaração para negar explicitamente qualquer ação em recursos na pasta `Private` (`companybucket/Private/*`).

  ```
  {
    "Sid": "ExplictDenyAccessToPrivateFolderToEveryoneInTheGroup",
    "Action": ["s3:*"],
    "Effect": "Deny",
    "Resource":["arn:aws:s3:::companybucket/Private/*"]
  }
  ```
+ Você também nega permissão para a ação de listar objetos quando a solicitação especifica o prefixo `Private/`. No console, se Bob ou Alice abrir a pasta `Private`, essa política fará o Amazon S3 retornar uma resposta de erro.

  ```
  {
    "Sid": "DenyListBucketOnPrivateFolder",
    "Action": ["s3:ListBucket"],
    "Effect": "Deny",
    "Resource": ["arn:aws:s3:::*"],
    "Condition":{
        "StringLike":{"s3:prefix":["Private/"]}
     }
  }
  ```

Substitua a política do grupo `Consultants` por uma política atualizada que inclua as declarações de negação anteriores. Após a política atualizada ser aplicada, nenhum usuário no grupo poderá acessar a pasta `Private` no seu bucket. 

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   Use as credenciais da sua Conta da AWS, e não as credenciais de um usuário do IAM, para fazer login no console.

1. Substitua a política gerenciada `AllowGroupToSeeBucketListInTheConsole` existente que está anexada ao grupo `Consultants` pela política a seguir. Lembre-se de substituir *`companybucket`* na política pelo nome do bucket. 

   Consulte instruções em [Edição de políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html#edit-managed-policy-console) no *Guia do usuário do IAM*. Ao seguir as instruções, não se esqueça de seguir as orientações para aplicar alterações em todas as entidades principais às quais a política está anexada. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
         "Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::*"]
       },
       {
         "Sid": "AllowRootLevelListingOfCompanyBucket",
         "Action": ["s3:ListBucket"],
         "Effect": "Allow",
         "Resource": ["arn:aws:s3:::companybucket"],
         "Condition":{
             "StringEquals":{"s3:prefix":[""]}
          }
       },
       {
         "Sid": "RequireFolderStyleList",
         "Action": ["s3:ListBucket"],
         "Effect": "Deny",
         "Resource": ["arn:aws:s3:::*"],
         "Condition":{
             "StringNotEquals":{"s3:delimiter":"/"}
          }
        },
       {
         "Sid": "ExplictDenyAccessToPrivateFolderToEveryoneInTheGroup",
         "Action": ["s3:*"],
         "Effect": "Deny",
         "Resource":["arn:aws:s3:::companybucket/Private/*"]
       },
       {
         "Sid": "DenyListBucketOnPrivateFolder",
         "Action": ["s3:ListBucket"],
         "Effect": "Deny",
         "Resource": ["arn:aws:s3:::*"],
         "Condition":{
             "StringLike":{"s3:prefix":["Private/"]}
          }
       }
     ]
   }
   ```

------



## Etapa 8: Limpar
<a name="walkthrough-cleanup"></a>

Para limpar, abra o [console do IAM](https://console.aws.amazon.com/iam/) e remova os usuários Alice e Bob. Consulte instruções detalhadas em [Exclusão de um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) no *Guia do usuário do IAM*.

Para garantir que você não seja mais cobrado pelo armazenamento, exclua também os objetos e o bucket que criou neste exercício.

## Recursos relacionados
<a name="RelatedResources-walkthrough1"></a>
+ [Como gerenciar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) no *Guia do usuário do IAM*

# Exemplos de políticas baseadas em identidade para o Amazon S3
<a name="example-policies-s3"></a>

Esta seção mostra diversos exemplos de políticas baseadas em identidade do AWS Identity and Access Management (IAM) para controle de acesso ao Amazon S3. Consulte exemplos de *políticas de bucket* (políticas baseadas em recursos) em [Políticas de bucket para o Amazon S3](bucket-policies.md). Para obter informações sobre a linguagem de políticas do IAM, consulte [Políticas e permissões no Amazon S3](access-policy-language-overview.md).

Os exemplos de política a seguir funcionarão se você testá-los de forma programática. No entanto, para usá-los com o console do Amazon S3, você precisará conceder permissões adicionais solicitadas pelo console. Para obter informações sobre o uso de políticas como essas com o console do Amazon S3, consulte [Controlar o acesso a um bucket com políticas de usuário](walkthrough1.md). 

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](using-with-s3-policy-actions.md).

**Topics**
+ [Permitir que um usuário do IAM acesse um dos seus buckets](#iam-policy-ex0)
+ [Permitir que cada usuário do IAM acesse uma pasta em um bucket](#iam-policy-ex1)
+ [Permitir que um grupo tenha uma pasta compartilhada no Amazon S3](#iam-policy-ex2)
+ [Permitir que todos os seus usuários leiam objetos em uma parte de um bucket](#iam-policy-ex3)
+ [Permitir que um parceiro solte arquivos em uma parte específica de um bucket](#iam-policy-ex4)
+ [Restringir o acesso a buckets do Amazon S3 em uma Conta da AWS específica](#iam-policy-ex6)
+ [Restringir o acesso a buckets do Amazon S3 em sua unidade organizacional](#iam-policy-ex7)
+ [Restringir o acesso a buckets do Amazon S3 em sua unidade organizacional](#iam-policy-ex8)
+ [Conceder permissão para recuperar a configuração PublicAccessBlock para uma Conta da AWS](#using-with-s3-actions-related-to-accountss)
+ [Restringir a criação de buckets a uma região](#condition-key-bucket-ops-1)

## Permitir que um usuário do IAM acesse um dos seus buckets
<a name="iam-policy-ex0"></a>

Neste exemplo, um usuário do IAM na sua Conta da AWS recebe acesso a um dos seus buckets, *amzn-s3-demo-bucket1*, e você permite que ele adicione, atualize e exclua objetos. 

Além de conceder as permissões `s3:PutObject`, `s3:GetObject` e `s3:DeleteObject` ao usuário, a política também concede as permissões `s3:ListAllMyBuckets`, `s3:GetBucketLocation` e `s3:ListBucket`. Estas são permissões adicionais, exigidas pelo console. As ações `s3:PutObjectAcl` e `s3:GetObjectAcl` também são necessárias para copiar, recortar e colar objetos no console. Para obter um exemplo de passo a passo que concede permissões aos usuários e testa-as usando o console, consulte [Controlar o acesso a um bucket com políticas de usuário](walkthrough1.md). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action": "s3:ListAllMyBuckets",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":["s3:ListBucket","s3:GetBucketLocation"],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:DeleteObject"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*"
      }
   ]
}
```

------

## Permitir que cada usuário do IAM acesse uma pasta em um bucket
<a name="iam-policy-ex1"></a>

Neste exemplo, você deseja que dois usuários do IAM, Mary e Carlos, tenham acesso ao bucket, *amzn-s3-demo-bucket1*, para que possam adicionar, atualizar e excluir objetos. No entanto, você quer restringir o acesso de todos os usuários a um único prefixo (pasta) no bucket. Você pode criar pastas com nomes correspondentes aos seus nomes de usuário. 

```
amzn-s3-demo-bucket1
   Mary/
   Carlos/
```

Para conceder a cada usuário acesso apenas à pasta dele, crie uma política para cada um deles e anexe-a individualmente. Por exemplo, você pode anexar a política a seguir ao usuário Alice para conceder a ela permissões específicas do Amazon S3 na pasta `amzn-s3-demo-bucket1/Mary`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/Mary/*"
      }
   ]
}
```

------

Você pode anexar uma política semelhante ao usuário Carlos, especificando a pasta `Carlos` no valor `Resource`.

Em vez de anexar políticas a usuários individuais, você pode criar uma única política que use uma variável de política e anexá-la a um grupo. Primeiro, você precisará criar um grupo e adicionar os usuários Alice e Carlos a ele. O exemplo de política a seguir concede um conjunto de permissões do Amazon S3 na pasta `amzn-s3-demo-bucket1/${aws:username}`. Quando a política é avaliada, a variável `${aws:username}` é substituída pelo nome do usuário do solicitante. Por exemplo, se Alice enviar uma solicitação para colocar um objeto, a operação será permitida apenas se Alice estiver fazendo upload do objeto na pasta `amzn-s3-demo-bucket1/Mary`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/${aws:username}/*"
      }
   ]
}
```

------

**nota**  
Ao usar variáveis de política, você deve especificar explicitamente a versão `2012-10-17` na política. A versão padrão da linguagem da política do IAM, 2008-10-17, não é compatível com variáveis de política. 

 Se quiser testar a política anterior no console do Amazon S3, o console exigirá permissões adicionais, conforme exibido na política a seguir. Para obter informações sobre como o console usa essas permissões, consulte [Controlar o acesso a um bucket com políticas de usuário](walkthrough1.md). 

------
#### [ JSON ]

****  

```
{
 "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowGroupToSeeBucketListInTheConsole",
      "Action": [ 
      	"s3:ListAllMyBuckets", 
      	"s3:GetBucketLocation" 
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"  
    },
    {
      "Sid": "AllowRootLevelListingOfTheBucket",
      "Action": "s3:ListBucket",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": { 
            "StringEquals": {
                    "s3:prefix": [""], "s3:delimiter": ["/"]
                           }
                 }
    },
    {
      "Sid": "AllowListBucketOfASpecificUserPrefix",
      "Action": "s3:ListBucket",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1",
      "Condition": {  "StringLike": {"s3:prefix": ["${aws:username}/*"] }
       }
    },
      {
     "Sid": "AllowUserSpecificActionsOnlyInTheSpecificUserPrefix",
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/${aws:username}/*"
      }
  ]
}
```

------

**nota**  
Na versão 2012-10-17 da política, as variáveis de política começam com `$`. Essa mudança na sintaxe poderá criar um conflito se a chave de objeto (nome do objeto) incluir um `$`.   
Para evitar esse conflito, especifique o caractere `$` usando `${$}`. Por exemplo, para incluir a chave de objeto `my$file` em uma política, especifique-a como `my${$}file`.

Embora os nomes de usuários do IAM sejam identificadores amigáveis e legíveis, eles não precisam ser globalmente exclusivos. Por exemplo, se o usuário Carlos deixar a empresa e outro Carlos ingressar, este poderá acessar as informações do Carlos anterior.

Em vez de usar nomes de usuário, você pode criar pastas baseadas nos IDs de usuário do IAM. O ID de cada usuário do IAM é exclusivo. Neste caso, você deve modificar a política anterior para usar a variável de política `${aws:userid}`. Para obter mais informações sobre identificadores de usuário, consulte [Identificadores do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) no *Guia do usuário do IAM*.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/home/${aws:userid}/*"
      }
   ]
}
```

------

### Permitir que usuários que não são do IAM (usuários de aplicativos móveis) acessem pastas em um bucket
<a name="non-iam-mobile-app-user-access"></a>

Vamos supor que você queira desenvolver um aplicativo móvel, um jogo que armazena dados dos usuários em um bucket do S3. Para cada usuário do aplicativo, você quer criar uma pasta em seu bucket. Também é desejável limitar o acesso de todos os usuários à própria pasta, mas não é possível criar pastas antes que alguém baixe sua aplicação e comece a jogar, pois você não tem o ID do usuário.

Neste caso, você pode exigir que os usuários criem uma conta em seu aplicativo usando provedores públicos de identidade, como Login with Amazon, Facebook ou Google. Depois que os usuários criarem uma conta em seu aplicativo por meio de um desses provedores, eles terão um ID de usuário que você poderá usar para criar pastas específicas de usuário no tempo de execução.

Você pode usar a federação de identidades da web no AWS Security Token Service para integrar informações do provedor de identidade com seu aplicativo e para obter credenciais de segurança temporárias para cada usuário. Você pode criar políticas do IAM que permitem que o aplicativo acesse seu bucket e execute operações como criação de pastas específicas de usuário e upload de dados. Para obter mais informações sobre federação de identidades da Web, consulte [Sobre federação de identidades da Web](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html) no *Guia do usuário do IAM*.

## Permitir que um grupo tenha uma pasta compartilhada no Amazon S3
<a name="iam-policy-ex2"></a>

Anexar a política a seguir ao grupo concede a todos no grupo acesso à seguinte pasta no Amazon S3: `amzn-s3-demo-bucket1/share/marketing`. Os membros do grupo têm permissão para acessar apenas permissões específicas do Amazon S3 exibidas na política e apenas para objetos na pasta especificada. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/share/marketing/*"
      }
   ]
}
```

------

## Permitir que todos os seus usuários leiam objetos em uma parte de um bucket
<a name="iam-policy-ex3"></a>

Neste exemplo, você cria um grupo chamado `AllUsers`, que contém todos os usuários do IAM que pertencem à Conta da AWS. Em seguida, anexe uma política que concede ao grupo acesso a `GetObject` e `GetObjectVersion`, mas somente para objetos na pasta `amzn-s3-demo-bucket1/readonly`. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObject",
            "s3:GetObjectVersion"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/readonly/*"
      }
   ]
}
```

------

## Permitir que um parceiro solte arquivos em uma parte específica de um bucket
<a name="iam-policy-ex4"></a>

Neste exemplo, crie um grupo chamado `AnyCompany` que representa uma empresa parceira. Crie um usuário do IAM para a pessoa ou aplicação específica na empresa parceira que precisa de acesso. Depois, coloque o usuário no grupo. 

Depois, anexe uma política que conceda ao grupo `PutObject` acesso à seguinte pasta em um bucket:

`amzn-s3-demo-bucket1/uploads/anycompany` 

É preciso impedir que o grupo `AnyCompany` faça qualquer outra coisa no bucket e, portanto, você adiciona uma declaração negando explicitamente outras permissões a ações do Amazon S3, exceto `PutObject`, em qualquer recurso do Amazon S3 na Conta da AWS.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"s3:PutObject",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/uploads/anycompany/*"
      },
      {
         "Effect":"Deny",
         "Action":"s3:*",
         "NotResource":"arn:aws:s3:::amzn-s3-demo-bucket1/uploads/anycompany/*"
      }
   ]
}
```

------

## Restringir o acesso a buckets do Amazon S3 em uma Conta da AWS específica
<a name="iam-policy-ex6"></a>

Se quiser garantir que suas entidades principais do Amazon S3 acessem apenas os recursos que estão em uma Conta da AWS confiável, você poderá restringir o acesso. Por exemplo, esta [política do IAM baseada em identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) usa um efeito `Deny` para bloquear o acesso às ações do Amazon S3, a menos que o recurso do Amazon S3 que está sendo acessado esteja na conta `222222222222`. Para impedir que uma entidade principal do IAM em uma Conta da AWS acesse objetos do Amazon S3 fora da conta, anexe a seguinte política do IAM:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": [
        "s3:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "222222222222"
          ]
        }
      }
    }
  ]
}
```

------

**nota**  
Essa política não substitui os controles de acesso do IAM existentes, pois não concede nenhum acesso. Em vez disso, essa política funciona como uma barreira de proteção adicional para suas outras permissões do IAM, independentemente das permissões concedidas por meio de outras políticas do IAM.

Substitua o ID da conta `222222222222` na política pela sua própria Conta da AWS. Para aplicar uma política a várias contas e ainda manter essa restrição, substitua o ID da conta pela chave de condição `aws:PrincipalAccount`. Essa condição exige que a entidade principal e o recurso estejam na mesma conta.

## Restringir o acesso a buckets do Amazon S3 em sua unidade organizacional
<a name="iam-policy-ex7"></a>

Se você tiver uma [unidade organizacional (UO)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_ous.html) configurada no AWS Organizations, é recomendável restringir o acesso ao bucket do Amazon S3 a uma parte específica de sua organização. Neste exemplo, usaremos a chave `aws:ResourceOrgPaths` para restringir o acesso ao bucket do Amazon S3 a uma UO em sua organização. Neste exemplo, o [ID da UO](https://docs.aws.amazon.com/organizations/latest/APIReference/API_OrganizationalUnit.html) é `ou-acroot-exampleou`. Substitua esse valor em sua própria política por seus próprios IDs de UO.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "AllowS3AccessOutsideMyBoundary",
       "Effect": "Allow",
       "Action": [
         "s3:*"
       ],
       "Resource": "*",
       "Condition": {
         "ForAllValues:StringLike": {
           "aws:ResourceOrgPaths": [
             "o-acorg/r-acroot/ou-acroot-exampleou/"
           ] 
         }
       }
     }
   ]
 }
```

------

**nota**  
Essa política não concede nenhum acesso. Em vez disso, essa política funciona como uma barreira para suas outras permissões do IAM, impedindo que suas entidades principais acessem objetos do Amazon S3 fora de um limite definido pela UO.

A política nega acesso às ações do Amazon S3, a menos que o objeto do Amazon S3 que está sendo acessado esteja na UO `ou-acroot-exampleou` em sua organização. A [condição da política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) exige `aws:ResourceOrgPaths`, uma chave de condição com vários valores, para conter qualquer um dos caminhos de UO listados. A política usa o operador `ForAllValues:StringNotLike` para comparar os valores de `aws:ResourceOrgPaths` com as UOs listadas sem distinção de maiúsculas e minúsculas.

## Restringir o acesso a buckets do Amazon S3 em sua unidade organizacional
<a name="iam-policy-ex8"></a>

Para restringir o acesso a objetos do Amazon S3 em sua organização, anexe uma política do IAM à raiz da organização, aplicando-a a todas as contas. Para exigir que suas entidades principais do IAM sigam essa regra, use uma [política de controle de serviços (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html). Se você optar por usar uma SCP, [teste-a](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html#scp-warning-testing-effect) antes de anexar a política à raiz da organização.

No exemplo de política a seguir, o acesso é negado às ações do Amazon S3, a menos que o objeto do Amazon S3 que está sendo acessado esteja na mesma organização que a entidade principal do IAM que o está acessando:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
     {
       "Sid": "DenyS3AccessOutsideMyBoundary",
       "Effect": "Deny",
       "Action": [
         "s3:*"
       ],
       "Resource": "arn:aws:s3:::*/*",
       "Condition": {
         "StringNotEquals": {
           "aws:ResourceOrgID": "${aws:PrincipalOrgID}"
         }
       }
     }
   ]
 }
```

------

**nota**  
Essa política não concede nenhum acesso. Essa política funciona como uma barreira para suas outras permissões do IAM, impedindo que suas entidades principais acessem quaisquer objetos do Amazon S3 de fora de sua organização. Essa política também se aplica aos recursos do Amazon S3 que são criados depois que a política é implementada.

Neste exemplo, a [condição da política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) exige que `aws:ResourceOrgID` e `aws:PrincipalOrgID` sejam equivalentes. Com esse requisito, a entidade principal que faz a solicitação e o recurso que está sendo acessado devem estar na mesma organização.

## Conceder permissão para recuperar a configuração PublicAccessBlock para uma Conta da AWS
<a name="using-with-s3-actions-related-to-accountss"></a>

O exemplo de política baseada em identidade a seguir concede a permissão `s3:GetAccountPublicAccessBlock` a um usuário. Para todas essas permissões, defina o valor `Resource` como `"*"`. Consulte mais informações sobre os ARNs de recursos em [Recursos de políticas para o Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

------
#### [ JSON ]

****  

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

------

## Restringir a criação de buckets a uma região
<a name="condition-key-bucket-ops-1"></a>

Suponha que um administrador de uma Conta da AWS queira conceder ao seu usuário (Dave) a permissão para criar um bucket somente na região América do Sul (São Paulo). O administrador da conta pode anexar a política de usuário a seguir que concede a permissão `s3:CreateBucket` com uma condição, conforme exibido. O par de chave-valor no bloco `Condition` especifica a chave `s3:LocationConstraint` e a região `sa-east-1` como valor.

**nota**  
Neste exemplo, o proprietário do bucket concede permissão para um de seus usuários, de modo que tanto uma política de bucket quanto uma política de usuário podem ser usadas. Este exemplo mostra uma política de usuário.

Para conferir a lista de regiões do Amazon S3, consulte [Regiões e endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html) na *Referência geral da AWS*. 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "statement1",
         "Effect": "Allow",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       }
    ]
}
```

------

**Adicionar negação explícita**  
A política acima impede que o usuário crie um bucket em qualquer outra Região, exceto `sa-east-1`. No entanto, alguma outra política pode conceder a esse usuário permissão para criar buckets em outra Região. Por exemplo, se ele pertencer a um grupo, o grupo pode ter uma política anexada que permita que todos os seus usuários tenham permissão para criar buckets em outra Região. Para garantir que o usuário não obtenha permissão para criar buckets em nenhuma outra região, adicione uma instrução de negação explícita à política acima. 

A declaração `Deny` usa a condição `StringNotLike`. Isto é, uma solicitação de criação de bucket será negada se a restrição de localização não for `sa-east-1`. A negação explícita não permite que o usuário crie um bucket em nenhuma outra região, independentemente de outras permissões que ele receba. A política a seguir inclui uma instrução de negação explícita.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       },
      {
         "Sid":"statement2",
         "Effect":"Deny",
         "Action": "s3:CreateBucket",
         "Resource": "arn:aws:s3:::*",
         "Condition": {
             "StringNotLike": {
                 "s3:LocationConstraint": "sa-east-1"
             }
         }
       }
    ]
}
```

------

**Testar a política com a AWS CLI**  
Você pode testar a política usando o seguinte comando `create-bucket` da AWS CLI. Este exemplo usa o arquivo `bucketconfig.txt` para especificar a restrição de localização. Anote o caminho do arquivo do Windows. Você precisa atualizar o nome e o caminho do bucket conforme apropriado. Você deve fornecer as credenciais do usuário usando o parâmetro `--profile`. Consulte mais informações sobre como configurar e usar a AWS CLI em [Developing with Amazon S3 using the AWS CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/setup-aws-cli.html) na *Referência de API do Amazon S3*.

```
aws s3api create-bucket --bucket examplebucket --profile AccountADave --create-bucket-configuration file://c:/Users/someUser/bucketconfig.txt
```

O arquivo `bucketconfig.txt` especifica a configuração da seguinte maneira.

```
{"LocationConstraint": "sa-east-1"}
```

# Demonstrações que usam políticas para gerenciar o acesso a recursos do Amazon S3
<a name="example-walkthroughs-managing-access"></a>

Este tópico fornece exemplos de demonstrações introdutórias para conceder acesso aos recursos do Amazon S3. Esses exemplos usam o Console de gerenciamento da AWS para criar recursos (buckets, objetos, usuários) e conceder permissões a eles. Em seguida, os exemplos mostram como verificar as permissões usando as ferramentas da linha de comando, para que nenhum código precise ser escrito. Fornecemos comandos usando tanto a AWS Command Line Interface (AWS CLI) quanto o AWS Tools for Windows PowerShell.
+ [Exemplo 1: Proprietário do bucket que concede permissões do bucket aos usuários](example-walkthroughs-managing-access-example1.md)

  Por padrão, os usuários do IAM criados na conta não têm permissões. Neste exercício, você concederá uma permissão de usuário para realizar operações no bucket e no objeto.
+ [Exemplo 2: Proprietário do bucket concedendo permissões de bucket entre contas](example-walkthroughs-managing-access-example2.md)

  Neste exercício, um proprietário do bucket, conta A, concede permissões entre contas a outra Conta da AWS, conta B. Em seguida, a conta B delega essas permissões aos usuários em sua conta. 
+ **Gerenciar permissões de objeto quando os proprietários do bucket e do objeto são diferentes**

  Nesse caso, os cenários do exemplo são um proprietário de bucket que concede permissões de objeto para outros, mas nem todos os objetos do bucket pertencem ao proprietário do bucket. De quais permissões o proprietário do bucket precisa e como ele pode delegar essas permissões?

  A Conta da AWS que cria um bucket é chamada de *proprietária do bucket*. O proprietário pode conceder permissões a outras Contas da AWS para carregar objetos, e os proprietários desses objetos são as Contas da AWS que os criaram. O proprietário do bucket não tem permissões sobre os objetos criados por outras Contas da AWS. Quando o proprietário do bucket escreve uma política de bucket concedendo acesso aos objetos, ela não se aplica aos objetos pertencentes a outras contas. 

  Nesse caso, o proprietário do objeto deve, primeiro, conceder permissões ao proprietário do bucket usando uma ACL do objeto. Em seguida, o proprietário do bucket pode autorizar essas permissões de objeto para outros, para usuários em sua própria conta ou para outra Conta da AWS, conforme ilustrado pelos exemplos a seguir.
  + [Exemplo 3: O proprietário do bucket concede permissões para objetos que não possui](example-walkthroughs-managing-access-example3.md)

    Neste exercício, primeiro o proprietário do bucket obtém permissões do proprietário do objeto. Em seguida, o proprietário do bucket delega tais permissões para usuários em sua própria conta.
  + [Exemplo 4: proprietário do bucket concede permissão entre contas a objetos que não possui](example-walkthroughs-managing-access-example4.md)

    Após o recebimento das permissões do proprietário do objeto, o proprietário do bucket não pode delegar permissões a outras Contas da AWS, já que a delegação entre contas não é permitida (consulte [Delegação de permissão](access-policy-language-overview.md#permission-delegation)). Em vez disso, o proprietário do bucket pode criar uma função do IAM com permissões para realizar determinadas operações (como obter objeto) e permitir que outra Conta da AWS assuma essa função. Qualquer um que assumir a função pode, então, acessar os objetos. Este exemplo mostra como um proprietário do bucket pode usar uma função do IAM para habilitar essa delegação de conta cruzada. 

## Antes de tentar as demonstrações de exemplo
<a name="before-you-try-example-walkthroughs-manage-access"></a>

Esses exemplos usam o Console de gerenciamento da AWS para criar recursos e conceder permissões. Para testar permissões, os exemplos usam ferramentas de linha de comando, a AWS CLI e o AWS Tools for Windows PowerShell para que não seja necessário escrever nenhum código. Para testar permissões, você deve configurar uma dessas ferramentas. Para obter mais informações, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md). 

Além disso, ao criar recursos, esses exemplos não usam as credenciais de usuário-raiz de uma Conta da AWS. Em vez disso, crie um usuário administrador nessas contas para executar essas tarefas. 

### Sobre o uso de um usuário administrador para criar recursos e conceder permissões
<a name="about-using-root-credentials"></a>

O AWS Identity and Access Management (IAM) recomenda não usar as credenciais do usuário raiz da sua Conta da AWS para fazer solicitações. Em vez disso, crie um perfil ou usuário do IAM, conceda acesso total a esse perfil ou usuário, depois use as credenciais desse perfil ou usuário para fazer solicitações. Essa entidade é conhecida como perfil ou usuário administrador. Para obter mais informações, acesse [Credenciais de Usuário raiz da conta da AWS e identidades do IAM](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html) na *Referência geral da AWS* e [Práticas recomendadas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

Todos as demonstrações com exemplos nesta seção usam as credenciais do usuário administrador. Caso você não tenha criado um usuário administrador para sua Conta da AWS, os tópicos mostram como fazê-lo. 

Para fazer login no Console de gerenciamento da AWS usando as credenciais de usuário, é necessário usar o URL de login do usuário do IAM. O [console do IAM](https://console.aws.amazon.com/iam/) fornece esse URL para sua Conta da AWS. Os tópicos mostram como obter o URL.

# Configurar as ferramentas para as demonstrações
<a name="policy-eval-walkthrough-download-awscli"></a>

Os exemplos introdutórios (consulte [Demonstrações que usam políticas para gerenciar o acesso a recursos do Amazon S3](example-walkthroughs-managing-access.md)) usam o Console de gerenciamento da AWS para criar recursos e conceder permissões. Para testar permissões, os exemplos usam ferramentas de linha de comando, a AWS Command Line Interface (AWS CLI) e o AWS Tools for Windows PowerShell para que não seja necessário escrever nenhum código. Para testar permissões, você deve configurar uma dessas ferramentas. 

**Para configurar a AWS CLI**

1. Faça download e configure a AWS CLI. Para obter instruções, consulte os seguintes tópicos no *Guia do usuário do AWS Command Line Interface*: 

    [Install or update to the latest version of the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) 

    [Get started with the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

1. Defina o perfil padrão. 

   As credenciais de usuário são armazenadas no arquivo de configuração da AWS CLI. Crie um perfil padrão no arquivo de configuração usando as credenciais da sua Conta da AWS. Consulte instruções sobre como encontrar e editar o arquivo de configuração da AWS CLI em [Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

   ```
   [default]
   aws_access_key_id = access key ID
   aws_secret_access_key = secret access key
   region = us-west-2
   ```

1. Verifique a configuração inserindo o comando a seguir no prompt de comando. Ambos os comandos não fornecem as credenciais explicitamente, de modo que as credenciais do perfil padrão são usadas.
   + Experimente o comando `help`.

     ```
     aws help
     ```
   + Para obter uma lista dos buckets na conta configurada, use o comando `aws s3 ls`.

     ```
     aws s3 ls
     ```

À medida que você avançar nas demonstrações, criará usuários e salvará credenciais de usuários nos arquivos de configuração ao criar perfis, conforme mostra o exemplo a seguir. Esses perfis têm os nomes de `AccountAadmin` e `AccountBadmin`.

```
[profile AccountAadmin]
aws_access_key_id = User AccountAadmin access key ID
aws_secret_access_key = User AccountAadmin secret access key
region = us-west-2

[profile AccountBadmin]
aws_access_key_id = Account B access key ID
aws_secret_access_key = Account B secret access key
region = us-east-1
```

Para executar um comando usando essas credenciais de usuário, adicione o parâmetro `--profile` especificando o nome do perfil. O comando da AWS CLI a seguir recupera uma lista de objetos em *`examplebucket`* e especifica o perfil `AccountBadmin`. 

```
aws s3 ls s3://examplebucket --profile AccountBadmin
```

Como alternativa, configure um conjunto de credenciais de usuário como perfil padrão alterando a variável de ambiente `AWS_DEFAULT_PROFILE` no prompt de comando. Depois que fizer isso, sempre que você executar comandos da AWS CLI sem o parâmetro `--profile`, a AWS CLI usará o perfil definido na variável de ambiente como o perfil padrão.

```
$ export AWS_DEFAULT_PROFILE=AccountAadmin
```

**Como configurar o AWS Tools for Windows PowerShell**

1. Faça download e configure a AWS Tools for Windows PowerShell. Consulte instruções em [Installing the AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html#pstools-installing-download) no *Guia do usuário do Ferramentas da AWS para PowerShell*. 
**nota**  
Para carregar o módulo do AWS Tools for Windows PowerShell, é necessário habilitar a execução de script do PowerShell. Consulte mais informações em [Enable Script Execution](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html#enable-script-execution) no *Guia do usuário do Ferramentas da AWS para PowerShell*.

1. Para essas demonstrações, especifique credenciais da AWS por sessão usando o comando `Set-AWSCredentials`. O comando salva as credenciais em um armazenamento persistente (`-StoreAs `parâmetro).

   ```
   Set-AWSCredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas string
   ```

1. Verifique a configuração.
   + Para recuperar uma lista de comandos disponíveis que podem ser usados para operações do Amazon S3, execute o comando `Get-Command`. 

     ```
     Get-Command -module awspowershell -noun s3* -StoredCredentials string
     ```
   + Para recuperar uma lista de objetos em um bucket, execute o comando `Get-S3Object`.

     ```
     Get-S3Object -BucketName bucketname -StoredCredentials string
     ```

Consulte uma lista de comandos em [AWS Tools for PowerShell Cmdlet Reference](https://docs.aws.amazon.com/powershell/latest/reference/Index.html). 

Agora está tudo pronto para você testar as demonstrações. Siga os links fornecidos no início de cada seção.

# Exemplo 1: Proprietário do bucket que concede permissões do bucket aos usuários
<a name="example-walkthroughs-managing-access-example1"></a>

**Importante**  
Conceder permissões a perfis do IAM é uma prática mais adequada do que conceder permissões a usuários individuais. Consulte mais informações sobre como conceder permissões a perfis do IAM em [Noções básicas de permissões entre contas e do uso de perfis do IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Preparar para a demonstração](#grant-permissions-to-user-in-your-account-step0)
+ [Etapa 1: criar recursos na Conta A e conceder permissões](#grant-permissions-to-user-in-your-account-step1)
+ [Etapa 2: Testar permissões](#grant-permissions-to-user-in-your-account-test)

Nessa demonstração, uma Conta da AWS possui um bucket e a conta inclui um usuário do IAM. Por padrão, o usuário não tem permissões. Para que o usuário realize execute qualquer tarefa, a conta pai deve conceder permissão a ele. O proprietário do bucket e a conta pai são os mesmos. Portanto, para conceder ao usuário permissões no bucket, a Conta da AWS pode usar uma política de bucket, uma política de usuário ou ambas. O proprietário da conta concederá algumas permissões usando uma política de bucket e outras permissões usando uma política de usuário.

Os passos a seguir resumem as etapas de demonstração:

![\[Diagrama que mostra uma conta da AWS concedendo permissões.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/access-policy-ex1.png)


1. O administrador da conta cria uma política do bucket concedendo um conjunto de permissões ao usuário.

1. O administrador da conta anexa uma política de usuário ao usuário concedendo permissões adicionais.

1. O usuário então testa as permissões concedidas por política do bucket e por política de usuário.

Neste exemplo, você precisará de uma Conta da AWS. Em vez de usar as credenciais do usuário raiz da conta, você criará um usuário administrador (consulte [Sobre o uso de um usuário administrador para criar recursos e conceder permissões](example-walkthroughs-managing-access.md#about-using-root-credentials)). Fazemos referência à Conta da AWS e ao usuário administrador conforme indicado na tabela a seguir.


| ID da conta | Conta referida como | Usuário administrador na conta | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Conta A  |  AccountAadmin  | 

**nota**  
O usuário administrador neste exemplo é **AccountaAdmin**, que se refere à conta A, e não à **AccountAdmin**.

Todas as tarefas de criar usuários e conceder permissões são feitas no Console de gerenciamento da AWS. Para verificar permissões, a demonstração usa as ferramentas de linha de comando, a AWS Command Line Interface (AWS CLI), e o AWS Tools for Windows PowerShell. Portanto, você não precisa escrever nenhum código.

## Preparar para a demonstração
<a name="grant-permissions-to-user-in-your-account-step0"></a>

1. Verifique se você tem uma Conta da AWS que tenha um usuário com privilégios de administrador.

   1. Cadastre-se para obter uma Conta da AWS, se necessário. Nós nos referimos a essa conta como conta A.

      1.  Acesse [https://aws.amazon.com/s3](https://aws.amazon.com/s3) e selecione **Criar uma conta da AWS**. 

      1. Siga as instruções da tela.

         AWSA notificará você por e-mail quando sua conta estiver ativa e disponível para uso.

   1. Na Conta A, crie um usuário administrador **AccountAadmin**. Usando as credenciais da conta A, faça login no [console do IAM](https://console.aws.amazon.com/iam/home?#home) e faça o seguinte: 

      1. Crie um usuário **AccountAadmin** e anote as credenciais de segurança do usuário. 

         Consulte instruções em [Criar um usuário do IAM na sua Conta da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) no *Guia do usuário do IAM*. 

      1. Conceda privilégios de administrador a **AccountAadmin** anexando uma política de usuário com pleno acesso. 

         Consulte instruções em [Gerenciar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) no *Guia do usuário do IAM*. 

      1. Anote o **URL de login de usuário do IAM** de **AccountAadmin**. Você precisará usar esse URL para fazer login no Console de gerenciamento da AWS. Consulte mais informações sobre onde encontrar o URL de login em [Sign in to the Console de gerenciamento da AWS as an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) no *Guia do usuário do IAM*. Anote o URL de cada uma das contas.

1. Configure a AWS CLI ou o AWS Tools for Windows PowerShell. Salve as credenciais de usuário do administrador da seguinte maneira:
   + Se estiver usando a AWS CLI, crie um perfil, `AccountAadmin`, no arquivo de configuração.
   + Se estiver usando o AWS Tools for Windows PowerShell, armazene as credenciais da sessão como `AccountAadmin`.

   Para instruções, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md). 

## Etapa 1: criar recursos na Conta A e conceder permissões
<a name="grant-permissions-to-user-in-your-account-step1"></a>

Com as credenciais do usuário `AccountAadmin` na Conta A e o URL especial de login do usuário do IAM, faça login no Console de gerenciamento da AWS e execute o seguinte:

1. Crie recursos de um bucket e um usuário do IAM

   1. No console do Amazon S3, crie um bucket. Anote a Região da AWS na qual você criou o bucket. Para instruções, consulte [Criar um bucket de uso geral](create-bucket-overview.md). 

   1. No [console do IAM](https://console.aws.amazon.com/iam/), faça o seguinte: 

      1. Crie um usuário chamado Dave.

         Para obter instruções passo a passo, consulte [Criação de usuários do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) no *Guia do usuário do IAM*. 

      1. Anote as credenciais de `UserDave`.

      1. Anote o nome do recurso da Amazon (ARN) do usuário Dave. No [console do IAM](https://console.aws.amazon.com/iam/), selecione o usuário para que a guia **Resumo** fornece o ARN do usuário.

1. Conceder permissões 

   Como o proprietário do bucket e a conta pai a que o usuário pertence são iguais, a Conta da AWS pode conceder permissões de usuário usando uma política do bucket, uma política de usuário ou ambas. Neste exemplo, você faz ambos. Se o objeto também for de propriedade da mesma conta, o proprietário do bucket pode conceder permissões de objeto na política do bucket (ou em uma política do IAM).

   1. No console do Amazon S3, anexe a seguinte política do bucket a *awsexamplebucket1*. 

      A política tem duas instruções. 
      + A primeira instrução concede a Dave as permissões de operação dos buckets `s3:GetBucketLocation` e `s3:ListBucket`.
      + A segunda instrução concede a permissão `s3:GetObject`. Como a Conta A também possui o objeto, o administrador da conta pode conceder a permissão `s3:GetObject`. 

      Na instrução `Principal`, Dave é identificado por seu ARN de usuário. Para obter mais informações sobre elementos de política, consulte [Políticas e permissões no Amazon S3](access-policy-language-overview.md).

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "statement1",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/Dave"
                  },
                  "Action": [
                      "s3:GetBucketLocation",
                      "s3:ListBucket"
                  ],
                  "Resource": [
                      "arn:aws:s3:::awsexamplebucket1"
                  ]
              },
              {
                  "Sid": "statement2",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:user/Dave"
                  },
                  "Action": [
                      "s3:GetObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::awsexamplebucket1/*"
                  ]
              }
          ]
      }
      ```

------

   1. Crie uma política inline para o usuário Dave usando as seguintes políticas. A política concede a Dave a permissão `s3:PutObject`. Você precisa atualizar a política, fornecendo o nome de seu bucket.

------
#### [ JSON ]

****  

      ```
      {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
            {
               "Sid": "PermissionForObjectOperations",
               "Effect": "Allow",
               "Action": [
                  "s3:PutObject"
               ],
               "Resource": [
                  "arn:aws:s3:::awsexamplebucket1/*"
               ]
            }
         ]
      }
      ```

------

      Consulte instruções em [Gerenciamento de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) no *Guia do usuário do IAM*. Observe que você precisa fazer login no console usando as credenciais da Conta A.

## Etapa 2: Testar permissões
<a name="grant-permissions-to-user-in-your-account-test"></a>

Com as credenciais de Dave, verifique se as permissões funcionam. Você pode usar um dos dois procedimentos a seguir.

**Testar as permissões usando a AWS CLI**

1. Atualize o arquivo de configuração da AWS CLI adicionando o perfil `UserDaveAccountA` a seguir. Para obter mais informações, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDaveAccountA]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Verifique se Dave pode executar as operações conforme concedido na política de usuário. Carregue um objeto de exemplo usando o comando `put-object` da AWS CLI a seguir. 

   O parâmetro `--body` no comando identifica o arquivo de origem para fazer upload. Por exemplo, se o arquivo estiver na raiz da unidade C: de um computador Windows, você deve especificar `c:\HappyFace.jpg`. O parâmetro `--key` fornece o nome de chave para o objeto.

   ```
   aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA
   ```

   Execute o comando da AWS CLI a seguir para obter o objeto. 

   ```
   aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA
   ```

**Testar as permissões usando o AWS Tools for Windows PowerShell**

1. Armazene as credenciais de Dave como `AccountADave`. Depois, use essas credenciais para `PUT` e `GET` um objeto.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
   ```

1. Carregue um objeto de exemplo usando o comando `Write-S3Object` do AWS Tools for Windows PowerShell com as credenciais armazenadas do usuário Dave. 

   ```
   Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave
   ```

   Faça download do objeto anteriormente carregado.

   ```
   Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave
   ```

# Exemplo 2: Proprietário do bucket concedendo permissões de bucket entre contas
<a name="example-walkthroughs-managing-access-example2"></a>

**Importante**  
Conceder permissões a perfis do IAM é uma prática melhor do que conceder permissões a usuários individuais. Para aprender a fazer isso, consulte [Noções básicas de permissões entre contas e do uso de perfis do IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Preparar para a demonstração](#cross-acct-access-step0)
+ [Etapa 1: Fazer as tarefas da Conta A](#access-policies-walkthrough-cross-account-permissions-acctA-tasks)
+ [Etapa 2: Fazer as tarefas da Conta B](#access-policies-walkthrough-cross-account-permissions-acctB-tasks)
+ [Etapa 3: (opcional) tentar negação explícita](#access-policies-walkthrough-example2-explicit-deny)
+ [Etapa 4: limpar](#access-policies-walkthrough-example2-cleanup-step)

Uma Conta da AWS, por exemplo, a conta A, pode conceder a outra Conta da AWS, a conta B, permissão para acessar os respectivos recursos, como buckets e objetos. A Conta B pode então delegar essas permissões para usuários em sua conta. Neste cenário de exemplo, o proprietário do bucket concede a permissão entre contas a outra conta para executar operações específicas no bucket.

**nota**  
A Conta A também pode conceder diretamente a um usuário na Conta B permissões usando uma política de bucket. No entanto, o usuário ainda precisará ter permissão da conta principal, a Conta B, à qual o usuário pertence, mesmo que a Conta B não tenha permissões da Conta A. Desde que o usuário tenha permissão do proprietário do recurso e da conta principal, o usuário poderá acessar o recurso.

A seguir é apresentado um resumo das etapas de demonstração:

![\[Uma Conta da AWS que concede permissão a outra Conta da AWS para acessar seus recursos.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/access-policy-ex2.png)


1. O usuário administrador da Conta A anexa uma política de bucket concedendo permissões entre contas à Conta B para executar operações específicas no bucket.

   Observe que o usuário administrador da Conta B herdará automaticamente as permissões.

1. O usuário administrador da Conta B anexa uma política de usuário ao usuário delegando as permissões que recebeu da Conta A.

1. Em seguida, o usuário na Conta B verifica as permissões acessando um objeto no bucket de propriedade da Conta A.

Para este exemplo, você precisará de duas contas. A tabela a seguir mostra como nos referimos a essas contas e aos usuários administradores nessas contas. Conforme as diretrizes do IAM (consulte [Sobre o uso de um usuário administrador para criar recursos e conceder permissões](example-walkthroughs-managing-access.md#about-using-root-credentials)), não usamos as credenciais do usuário-raiz nessa demonstração. Em vez disso, você cria um usuário administrador em cada conta e usa essas credenciais para criar recursos e conceder permissões a eles. 


| Conta da AWSID da  | Conta referida como | Usuário administrador na conta  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Conta A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Conta B  |  AccountBadmin  | 

Todas as tarefas de criar usuários e conceder permissões são feitas no Console de gerenciamento da AWS. Para verificar permissões, a demonstração usa as ferramentas de linha de comando, a AWS Command Line Interface (CLI), e o AWS Tools for Windows PowerShell. Portanto, você não precisa escrever nenhum código.

## Preparar para a demonstração
<a name="cross-acct-access-step0"></a>

1. Você precisa ter duas Contas da AWS, e cada conta deverá ter um usuário administrador, conforme mostrado na tabela na seção anterior.

   1. Cadastre-se para obter uma Conta da AWS, se necessário. 

   1. Usando as credenciais da Conta A, faça login no [console do IAM](https://console.aws.amazon.com/iam/home?#home) para criar o usuário administrador:

      1. Crie um usuário **AccountAadmin** e anote as credenciais de segurança. Para obter instruções, consulte [Criar um usuário do IAM na sua Conta da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) no *Guia do usuário do IAM*. 

      1. Conceda privilégios de administrador a **AccountAadmin** anexando uma política de usuário com pleno acesso. Para instruções, consulte [Como trabalhar com políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) no *Guia do usuário do IAM*. 

   1. Enquanto estiver no console do IAM, anote o **URL de login de usuário do IAM** indicado no **Painel**. Todos os usuários nessa conta devem usar essa URL para fazer login no Console de gerenciamento da AWS.

      Para obter mais informações, consulte [Como os usuários fazem login em sua conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) no *Guia do usuário do IAM*. 

   1. Repita a etapa anterior usando as credenciais da Conta B e crie um usuário administrador **AccountBadmin**.

1. Configure a AWS Command Line Interface (AWS CLI) ou o AWS Tools for Windows PowerShell. Salve as credenciais de usuário do administrador da seguinte maneira:
   + Se estiver usando a AWS CLI, crie dois perfis, `AccountAadmin` e `AccountBadmin`, no arquivo de configuração.
   + Se estiver usando o AWS Tools for Windows PowerShell, armazene as credenciais da sessão como `AccountAadmin` e `AccountBadmin`.

   Para instruções, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md). 

1. Salve as credenciais do usuário administrador, também conhecidas como perfis. Você pode usar o nome do perfil em vez de especificar as credenciais para cada comando digitado. Para obter mais informações, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md). 

   1. Adicione perfis no arquivo de credenciais da AWS CLI para cada um dos usuários administradores, `AccountAadmin` e `AccountBadmin`, nas duas contas. 

      ```
      [AccountAadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      
      [AccountBadmin]
      aws_access_key_id = access-key-ID
      aws_secret_access_key = secret-access-key
      region = us-east-1
      ```

   1. Se estiver usando o AWS Tools for Windows PowerShell, execute o comando a seguir.

      ```
      set-awscredentials –AccessKey AcctA-access-key-ID –SecretKey AcctA-secret-access-key –storeas AccountAadmin
      set-awscredentials –AccessKey AcctB-access-key-ID –SecretKey AcctB-secret-access-key –storeas AccountBadmin
      ```

## Etapa 1: Fazer as tarefas da Conta A
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks"></a>

### Etapa 1.1: Fazer login no Console de gerenciamento da AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in"></a>

Usando o URL de login do usuário do IAM da Conta A, primeiro faça login no Console de gerenciamento da AWS como o usuário **AccountAadmin**. Esse usuário criará um bucket e anexará uma política a ele. 

### Etapa 1.2: Criar um bucket
<a name="access-policies-walkthrough-example2a-create-bucket"></a>

1. No console do Amazon S3, crie um bucket. Esse exercício supõe que o bucket é criado na Região da AWS Leste dos EUA (Norte da Virgínia) e que o nome dele é `amzn-s3-demo-bucket`.

   Para instruções, consulte [Criar um bucket de uso geral](create-bucket-overview.md). 

1. Faça upload de um objeto de exemplo no bucket.

   Para obter instruções, vá para [Etapa 2: fazer upload de um objeto para o seu bucket](GetStartedWithS3.md#uploading-an-object-bucket). 

### Etapa 1.3: anexar uma política de bucket para conceder permissões entre contas para a conta B
<a name="access-policies-walkthrough-example2a"></a>

A política de bucket concede as permissões `s3:GetLifecycleConfiguration` e `s3:ListBucket` à Conta B, presumindo que você ainda está usando as credenciais do usuário **AccountAadmin** no console.

1. Anexe a política de bucket a seguir ao `amzn-s3-demo-bucket`. A política concede à Conta B permissão para as ações `s3:GetLifecycleConfiguration` e `s3:ListBucket`.

   Para instruções, consulte [Adicionar uma política de bucket usando o console do Amazon S3](add-bucket-policy.md). 

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
            "Sid": "Example permissions",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
               "s3:GetLifecycleConfiguration",
               "s3:ListBucket"
            ],
            "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
         }
      ]
   }
   ```

------

1. Verifique se a Conta B (ou seja, do usuário administrador) pode executar as operações.
   + Fazer a verificação usando a AWS CLI

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Fazer a verificação usando o AWS Tools for Windows PowerShell

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin 
     get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBadmin
     ```

## Etapa 2: Fazer as tarefas da Conta B
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks"></a>

Agora o administrador da Conta B cria um usuário, Dave, e delega as permissões recebidas da Conta A. 

### Etapa 2.1: Fazer login no Console de gerenciamento da AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctB-tasks-sign-in"></a>

Usando o URL de login do usuário do IAM da Conta B, primeiro faça login no Console de gerenciamento da AWS como o usuário **AccountBadmin**. 

### Etapa 2.2: criar o usuário Dave na conta B
<a name="access-policies-walkthrough-example2b-create-user"></a>

No [console do IAM](https://console.aws.amazon.com/iam/), crie um usuário chamado **Dave**. 

Para obter instruções, consulte [Criação de usuários do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) no *Guia do usuário do IAM*. 

### Etapa 2.3: delegar permissões para o usuário Dave
<a name="access-policies-walkthrough-example2-delegate-perm-userdave"></a>

Crie uma política inline para o usuário Dave usando as seguintes políticas. Você precisará atualizar a política fornecendo o nome do bucket.

Presume-se que você fez login no console usando as credenciais do usuário **AccountBadmin**.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
      }
   ]
}
```

------

Consulte instruções em [Gerenciar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html) no *Guia do usuário do IAM*.

### Etapa 2.4: Testar permissões
<a name="access-policies-walkthrough-example2b-user-dave-access"></a>

Agora Dave, na conta B, pode listar o conteúdo do `amzn-s3-demo-bucket` de propriedade da Conta A. Você pode verificar as permissões usando um dos seguintes procedimentos. 

**Testar as permissões usando a AWS CLI**

1. Adicione o perfil `UserDave` ao arquivo de configuração da AWS CLI. Para obter mais informações sobre o arquivo de configuração, consult [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDave]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. No prompt de comando, insira o comando da AWS CLI a seguir para verificar se agora Dave consegue obter uma lista de objetos do `UserDave` pertencente à Conta A. Observe que o comando especifica o perfil `amzn-s3-demo-bucket`.

   ```
   aws s3 ls s3://amzn-s3-demo-bucket --profile UserDave
   ```

   Dave não tem nenhuma outra permissão. Portanto, se ele tentar realizar qualquer outra operação (por exemplo, a configuração de `get-bucket-lifecycle` a seguir), o Amazon S3 retornará uma negação da permissão. 

   ```
   aws s3api get-bucket-lifecycle-configuration --bucket amzn-s3-demo-bucket --profile UserDave
   ```

**Testar as permissões usando o AWS Tools for Windows PowerShell**

1. Armazene as credenciais de Dave como `AccountBDave`.

   ```
   set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountBDave
   ```

1. Teste o comando List Bucket.

   ```
   get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

   Dave não tem nenhuma outra permissão. Portanto, se ele tentar realizar qualquer outra operação (por exemplo, a `get-s3bucketlifecycleconfiguration` a seguir), o Amazon S3 retornará uma negação da permissão. 

   ```
   get-s3bucketlifecycleconfiguration -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
   ```

## Etapa 3: (opcional) tentar negação explícita
<a name="access-policies-walkthrough-example2-explicit-deny"></a>

Você pode ter permissões concedidas usando uma lista de controle de acesso (ACL), uma política de bucket ou uma política de usuário. Entretanto, se houver uma negação explícita definida por uma política de bucket ou por uma política de usuário, ela terá precedência sobre qualquer outra permissão. Para testar, atualize a política de bucket e negue explicitamente a permissão `s3:ListBucket` para a Conta B. A política também concede a permissão `s3:ListBucket`. No entanto, a negação explícita tem precedência, e a Conta B ou os usuários da Conta B não poderão listar objetos no `amzn-s3-demo-bucket`.

1. Usando as credenciais do usuário `AccountAadmin` na Conta A, substitua a política de bucket pela seguinte: 

1. Agora, se você tentar obter uma lista de bucket usando as credenciais de `AccountBadmin`, o acesso será negado.
   + Usando a AWS CLI, execute o seguinte comando:

     ```
     aws s3 ls s3://amzn-s3-demo-bucket --profile AccountBadmin
     ```
   + Usando o AWS Tools for Windows PowerShell, execute o seguinte comando:

     ```
     get-s3object -BucketName amzn-s3-demo-bucket -StoredCredentials AccountBDave
     ```

## Etapa 4: limpar
<a name="access-policies-walkthrough-example2-cleanup-step"></a>

1. Depois de terminar os testes, você pode fazer o seguinte para concluir a limpeza:

   1. Faça login no Console de gerenciamento da AWS ([Console de gerenciamento da AWS](https://console.aws.amazon.com/)) usando as credenciais da Conta A e faça o seguinte:
     + No console do Amazon S3, remova a política de bucket anexada a `amzn-s3-demo-bucket`. Nas **Propriedades** do bucket, exclua a política na seção **Permissions (Permissões)**. 
     + Se o bucket foi criado para este exercício, no console do Amazon S3, exclua os objetos e, em seguida, exclua o bucket. 
     + No [console do IAM](https://console.aws.amazon.com/iam/), remova o usuário `AccountAadmin`.

1. Faça login no [console do IAM](https://console.aws.amazon.com/iam/) usando as credenciais da Conta B. Exclua o usuário `AccountBadmin`. Consulte instruções detalhadas em [Exclusão de um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) no *Guia do usuário do IAM*.

# Exemplo 3: O proprietário do bucket concede permissões para objetos que não possui
<a name="example-walkthroughs-managing-access-example3"></a>

**Importante**  
Conceder permissões a perfis do IAM é uma prática melhor do que conceder permissões a usuários individuais. Para aprender a fazer isso, consulte [Noções básicas de permissões entre contas e do uso de perfis do IAM](example-walkthroughs-managing-access-example4.md#access-policies-walkthrough-example4-overview).

**Topics**
+ [Etapa 0: Preparar-se para a demonstração](#access-policies-walkthrough-cross-account-acl-step0)
+ [Etapa 1: Realizar as tarefas da Conta A](#access-policies-walkthrough-cross-account-acl-acctA-tasks)
+ [Etapa 2: Realizar as tarefas da Conta B](#access-policies-walkthrough-cross-account-acl-acctB-tasks)
+ [Etapa 3: Testar permissões](#access-policies-walkthrough-cross-account-acl-verify)
+ [Etapa 4: limpar](#access-policies-walkthrough-cross-account-acl-cleanup)

O cenário desse exemplo é que o proprietário do bucket deseja conceder permissão para acesso a objetos, mas o proprietário do bucket não possui todos os objetos do bucket. Para este exemplo, o proprietário do bucket está tentando conceder permissão aos usuários em sua própria conta.

Um proprietário de bucket pode habilitar outras Contas da AWS a carregar objetos. Por padrão, o proprietário do bucket não possui objetos gravados em um bucket por outra Conta da AWS. Os objetos são de propriedade das contas que os gravam em um bucket do S3. Se o proprietário do bucket não for proprietário dos objetos no bucket, primeiro o proprietário dos objetos deverá conceder permissão ao proprietário do bucket usando uma lista de controle de acesso (ACL) de objetos. Depois, o proprietário do bucket poderá conceder permissões a um objeto que ele não possui. Para obter mais informações, consulte [Propriedade de bucket e objeto do Amazon S3](access-policy-language-overview.md#about-resource-owner).

Se o proprietário do bucket adotar a configuração aplicada pelo proprietário do bucket em S3 Object Ownership para o bucket, o proprietário do bucket terá propriedade de todos os objetos do bucket, inclusive de objetos gravados por outra Conta da AWS. Essa abordagem resolve o problema de objetos que não pertencem ao proprietário do bucket. Em seguida, é possível delegar permissão aos usuários em sua própria conta ou para outras Contas da AWS.

**nota**  
A Propriedade de objetos do S3 é uma configuração no nível do bucket do Amazon S3 que você pode usar para controlar a propriedade de objetos carregados no bucket e para desabilitar ou habilitar as ACLs. Por padrão, a Propriedade de Objetos está definida com a configuração Imposto pelo proprietário do bucket e todas as ACLs estão desabilitadas. Quando as ACLs são desabilitadas, o proprietário do bucket possui todos os objetos do bucket e gerencia o acesso a eles exclusivamente usando políticas de gerenciamento de acesso.  
 A maioria dos casos de uso modernos no Amazon S3 não exige mais o uso de ACLs. Recomendamos manter as ACLs desabilitadas, exceto em circunstâncias em que seja necessário controlar o acesso para cada objeto individualmente. Com as ACLs desabilitadas, é possível usar políticas para controlar o acesso a todos os objetos no bucket, independentemente de quem carregou os objetos para o bucket. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

Neste exemplo, assumimos que o proprietário do bucket não aplicou a configuração aplicada pelo proprietário do bucket em Object Ownership. O proprietário do bucket delega permissão aos usuários em sua própria conta. Veja a seguir um resumo das etapas de demonstração:

![\[O proprietário de um bucket concede permissões a objetos que não possui.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/access-policy-ex3.png)


1. O usuário administrador da Conta A anexa uma política de bucket com duas declarações.
   + Habilitar permissão entre contas para a Conta B fazer upload de objetos.
   + Permitir que um usuário em sua própria conta acesse objetos no bucket.

1. O usuário administrador da Conta B faz upload de objetos no bucket de propriedade da Conta A.

1. O administrador da Conta B atualiza a ACL do objeto adicionando uma concessão que dá ao proprietário do bucket permissão de controle total sobre o objeto.

1. O usuário na Conta A verifica acessando objetos no bucket, independentemente de quem os possui.

Para este exemplo, você precisará de duas contas. A tabela a seguir mostra como nos referimos a essas contas e aos usuários administradores nessas contas. Nesta demonstração, você não usa as credenciais do usuário raiz da conta, conforme as diretrizes recomendadas do IAM. Para obter mais informações, consulte [Sobre o uso de um usuário administrador para criar recursos e conceder permissões](example-walkthroughs-managing-access.md#about-using-root-credentials). Em vez disso, você cria um administrador em cada conta e usa essas credenciais para criar recursos e conceder permissões a eles.


| Conta da AWSID da  | Conta referida como | Administrador na conta  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Conta A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Conta B  |  AccountBadmin  | 

Todas as tarefas de criar usuários e conceder permissões são feitas no Console de gerenciamento da AWS. Para verificar permissões, a demonstração usa as ferramentas de linha de comando, a AWS Command Line Interface (AWS CLI), e o AWS Tools for Windows PowerShell. Portanto, você não precisa escrever nenhum código. 

## Etapa 0: Preparar-se para a demonstração
<a name="access-policies-walkthrough-cross-account-acl-step0"></a>

1. Você precisa ter duas Contas da AWS, e cada conta deverá ter um administrador, conforme mostrado na tabela na seção anterior.

   1. Cadastre-se para obter uma Conta da AWS, se necessário. 

   1. Usando as credenciais da Conta A, faça login no [console do IAM](https://console.aws.amazon.com/iam/) e faça o seguinte para criar um usuário administrador:
      + Crie um usuário **AccountAadmin** e anote as credenciais de segurança do usuário. Para obter mais informações sobre como adicionar usuários, consulte [Criar um usuário do IAM na sua Conta da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) no *Guia do usuário do IAM*. 
      + Conceda permissões de administrador a **AccountAadmin** anexando uma política de usuário com pleno acesso. Consulte instruções em [Gerenciar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) no *Guia do usuário do IAM*. 
      + No [console do IAM](https://console.aws.amazon.com/iam/), anote o **URL de login de usuário do IAM** indicado no **Painel**. Os usuários nessa conta devem usar esse URL para fazer login no Console de gerenciamento da AWS. Para obter mais informações, consulte [Como os usuários fazem login em sua conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) no *Guia do usuário do IAM*. 

   1. Repita a etapa anterior usando as credenciais da Conta B e crie um usuário administrador **AccountBadmin**.

1. Configure a AWS CLI ou as Tools for Windows PowerShell. Salve as credenciais de administrador da seguinte forma:
   + Se estiver usando a AWS CLI, crie dois perfis, `AccountAadmin` e `AccountBadmin`, no arquivo de configuração.
   + Se estiver usando o Tools for Windows PowerShell, armazene as credenciais da sessão como `AccountAadmin` e `AccountBadmin`.

   Para obter instruções, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md). 

## Etapa 1: Realizar as tarefas da Conta A
<a name="access-policies-walkthrough-cross-account-acl-acctA-tasks"></a>

Execute as seguintes etapas para a Conta A:

### Etapa 1.1: Fazer login no console
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in-example3"></a>

Usando o URL de login do usuário do IAM da Conta A, faça login no Console de gerenciamento da AWS como o usuário **AccountAadmin**. Esse usuário criará um bucket e anexará uma política a ele. 

### Etapa 1.2: Criar um bucket e um usuário e adicionar uma política de bucket para conceder permissões ao usuário
<a name="access-policies-walkthrough-cross-account-acl-create-bucket"></a>

1. No console do Amazon S3, crie um bucket. Esse exercício supõe que o bucket foi criado na Região da AWS Leste dos EUA (Norte da Virgínia) e que o nome dele é `amzn-s3-demo-bucket1`.

   Para instruções, consulte [Criar um bucket de uso geral](create-bucket-overview.md). 

1. No [console do IAM](https://console.aws.amazon.com/iam/), crie um usuário chamado **Dave**. 

   Para obter instruções passo a passo, consulte [Criação de usuários do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) no *Guia do usuário do IAM*. 

1. Anote as credenciais do usuário Dave. 

1. No console do Amazon S3, anexe a seguinte política do bucket ao bucket `amzn-s3-demo-bucket1`. Para obter instruções, consulte [Adicionar uma política de bucket usando o console do Amazon S3](add-bucket-policy.md). Siga as etapas para adicionar uma política de bucket. Para obter informações sobre como encontrar IDs de conta, consulte [Como encontrar o ID da Conta da AWS](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingYourAccountIdentifiers). 

   A política concede à Conta B as permissões `s3:PutObject` e `s3:ListBucket`. A política também concede ao usuário `Dave` a permissão `s3:GetObject`. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "s3:PutObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                   "arn:aws:s3:::amzn-s3-demo-bucket1"
               ]
           },
           {
               "Sid": "Statement3",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/Dave"
               },
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"
               ]
           }
       ]
   }
   ```

------

## Etapa 2: Realizar as tarefas da Conta B
<a name="access-policies-walkthrough-cross-account-acl-acctB-tasks"></a>

Agora que a Conta B tem permissões para executar operações no bucket da Conta A, o administrador da Conta B pode fazer o seguinte:
+ Carregar um objeto no bucket da Conta A. 
+ Adicionar uma concessão à ACL do objeto para permitir que a Conta A, a proprietária do bucket, tenha controle total.

**Como usar o AWS CLI**

1. Usando o comando `put-object` da AWS CLI, carregue um objeto. O parâmetro `--body` no comando identifica o arquivo de origem para fazer upload. Por exemplo, se o arquivo estiver na unidade `C:` de um computador Windows, especifique `c:\HappyFace.jpg`. O parâmetro `--key` fornece o nome de chave para o objeto. 

   ```
   aws s3api put-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --body HappyFace.jpg --profile AccountBadmin
   ```

1. Adicionar uma concessão à ACL do objeto para permitir controle total do objeto ao proprietário do bucket. Para obter informações sobre como encontrar um ID de usuário canônico, consulte [Find the canonical user ID for your Conta da AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId) no *Guia de referência de gerenciamento de contas da AWS*.

   ```
   aws s3api put-object-acl --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --grant-full-control id="AccountA-CanonicalUserID" --profile AccountBadmin
   ```

**Usar o Tools for Windows PowerShell**

1. Carregue um objeto usando o comando `Write-S3Object`. 

   ```
   Write-S3Object -BucketName amzn-s3-demo-bucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountBadmin
   ```

1. Adicionar uma concessão à ACL do objeto para permitir controle total do objeto ao proprietário do bucket.

   ```
   Set-S3ACL -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -CannedACLName "bucket-owner-full-control" -StoredCreden
   ```

## Etapa 3: Testar permissões
<a name="access-policies-walkthrough-cross-account-acl-verify"></a>

Agora verifique se o usuário Dave na conta A pode acessar o objeto de propriedade da conta B.

**Usar a AWS CLI**

1. Adicione as credenciais do usuário Dave ao arquivo de configuração da AWS CLI e crie um novo perfil, `UserDaveAccountA`. Para obter mais informações, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md).

   ```
   [profile UserDaveAccountA]
   aws_access_key_id = access-key
   aws_secret_access_key = secret-access-key
   region = us-east-1
   ```

1. Execute o comando `get-object` da CLI para fazer download do arquivo `HappyFace.jpg` e salve-o localmente. Você fornece credenciais ao usuário Dave adicionando o parâmetro `--profile`.

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg Outputfile.jpg --profile UserDaveAccountA
   ```

**Usar o Tools for Windows PowerShell**

1. Armazene as credenciais da AWS do usuário Dave, como `UserDaveAccountA`, no armazenamento persistente. 

   ```
   Set-AWSCredentials -AccessKey UserDave-AccessKey -SecretKey UserDave-SecretAccessKey -storeas UserDaveAccountA
   ```

1. Execute o comando `Read-S3Object` para fazer download do objeto `HappyFace.jpg` e salve-o localmente. Você fornece credenciais ao usuário Dave adicionando o parâmetro `-StoredCredentials`. 

   ```
   Read-S3Object -BucketName amzn-s3-demo-bucket1 -Key HappyFace.jpg -file HappyFace.jpg  -StoredCredentials UserDaveAccountA
   ```

## Etapa 4: limpar
<a name="access-policies-walkthrough-cross-account-acl-cleanup"></a>

1. Depois de terminar os testes, você pode fazer o seguinte para concluir a limpeza:

   1. Faça login no [Console de gerenciamento da AWS](https://console.aws.amazon.com/) usando as credenciais da Conta A e faça o seguinte:
     + No console do Amazon S3, remova a política de bucket anexada a *amzn-s3-demo-bucket1*. Nas **Propriedades** do bucket, exclua a política na seção **Permissions (Permissões)**. 
     + Se o bucket foi criado para este exercício, no console do Amazon S3, exclua os objetos e, em seguida, exclua o bucket. 
     + No [console do IAM](https://console.aws.amazon.com/iam/), remova o usuário **AccountAadmin**. Consulte instruções detalhadas em [Exclusão de um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) no *Guia do usuário do IAM*.

1. Faça login no [Console de gerenciamento da AWS](https://console.aws.amazon.com/) usando as credenciais da Conta B. No [console do IAM](https://console.aws.amazon.com/iam/), exclua o usuário **AccountBadmin**.

# Exemplo 4: proprietário do bucket concede permissão entre contas a objetos que não possui
<a name="example-walkthroughs-managing-access-example4"></a>

**Topics**
+ [Noções básicas de permissões entre contas e do uso de perfis do IAM](#access-policies-walkthrough-example4-overview)
+ [Etapa 0: Preparar-se para a demonstração](#access-policies-walkthrough-example4-step0)
+ [Etapa 1: Realizar as tarefas da Conta A](#access-policies-walkthrough-example4-step1)
+ [Etapa 2: Realizar as tarefas da Conta B](#access-policies-walkthrough-example4-step2)
+ [Etapa 3: realizar as tarefas da Conta C](#access-policies-walkthrough-example4-step3)
+ [Etapa 4: limpar](#access-policies-walkthrough-example4-step6)
+ [Recursos relacionados](#RelatedResources-managing-access-example4)

 Neste cenário de exemplo, você é proprietário de um bucket e habilitou outras Contas da AWS para carregar objetos. Se você aplicou a configuração aplicada pelo proprietário do bucket em S3 Object Ownership para o bucket, terá propriedade de todos os objetos do bucket, inclusive de objetos gravados por outra Conta da AWS. Essa abordagem resolve o problema de objetos que não pertencem a você, o proprietário do bucket. Em seguida, é possível delegar permissão aos usuários em sua própria conta ou para outras Contas da AWS. Suponha que a configuração imposta pelo proprietário do bucket em S3 Object Ownership não esteja habilitada. Ou seja, seu bucket pode ter objetos pertencentes a outras Contas da AWS. 

Agora, suponha que, como proprietário do bucket, você precise conceder permissão entre contas aos objetos, independentemente de quem seja o proprietário, a um usuário em outra conta. Por exemplo, esse usuário pode ser um aplicativo de faturamento que precise acessar metadados de objeto. Há dois problemas principais:
+ O proprietário do bucket não tem permissões sobre os objetos criados por outras Contas da AWS. Para que o proprietário do bucket possa conceder permissões em objetos que não possui, o proprietário do objeto deve primeiro conceder permissão ao proprietário do bucket. O proprietário do objeto é a Conta da AWS que criou os objetos. Depois, o proprietário do bucket pode delegar essas permissões.
+ O proprietário do bucket pode delegar permissões aos usuários em sua própria conta (consulte [Exemplo 3: O proprietário do bucket concede permissões para objetos que não possui](example-walkthroughs-managing-access-example3.md)). No entanto, a conta do proprietário do bucket não pode delegar permissões a outras Contas da AWS porque a delegação entre contas não é permitida. 

Nesse cenário, o proprietário do bucket pode criar um perfil do AWS Identity and Access Management (IAM) com permissão para acessar objetos e, depois, conceder permissão a outra Conta da AWS para assumir o perfil temporariamente, permitindo que ela acesse objetos no bucket. 

**nota**  
A Propriedade de objetos do S3 é uma configuração no nível do bucket do Amazon S3 que você pode usar para controlar a propriedade de objetos carregados no bucket e para desabilitar ou habilitar as ACLs. Por padrão, a Propriedade de Objetos está definida com a configuração Imposto pelo proprietário do bucket e todas as ACLs estão desabilitadas. Quando as ACLs são desabilitadas, o proprietário do bucket possui todos os objetos do bucket e gerencia o acesso a eles exclusivamente usando políticas de gerenciamento de acesso.  
 A maioria dos casos de uso modernos no Amazon S3 não exige mais o uso de ACLs. Recomendamos manter as ACLs desabilitadas, exceto em circunstâncias em que seja necessário controlar o acesso para cada objeto individualmente. Com as ACLs desabilitadas, é possível usar políticas para controlar o acesso a todos os objetos no bucket, independentemente de quem carregou os objetos para o bucket. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).

## Noções básicas de permissões entre contas e do uso de perfis do IAM
<a name="access-policies-walkthrough-example4-overview"></a>

 As funções do IAM permitem vários cenários para delegar acesso a seus recursos, e o acesso entre contas é um dos cenários principais. Neste exemplo, o proprietário do bucket, a Conta A, usa um perfil do IAM para delegar temporariamente o acesso entre contas a objetos aos usuários em uma outra Conta da AWS, a Conta C. Cada perfil do IAM que você cria tem estas duas políticas anexadas a ela:
+ Uma política de confiança que identifica outra Conta da AWS que pode assumir a função.
+ Uma política de acesso que define quais permissões - por exemplo, `s3:GetObject` - são permitidas quando alguém assume a função. Para obter uma lista de permissões que você pode especificar em uma política, consulte [Ações de políticas para o Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions).

A Conta da AWS identificada na política de confiança concede ao respectivo usuário permissão para assumir a função. O usuário pode então fazer o seguinte para acessar os objetos:
+ Assumir a função e, em resposta, obter credenciais de segurança temporárias. 
+ Usando as credenciais de segurança temporárias, acessar os objetos no bucket.

Para obter mais informações sobre funções do IAM, consulte [Perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) no *Guia do usuário do IAM*. 

Veja a seguir um resumo das etapas de demonstração:

![\[Permissões entre contas usando perfis do IAM.\]](http://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/images/access-policy-ex4.png)


1. O usuário administrador da Conta A anexa a política do bucket que concede à Conta B uma permissão condicional para fazer upload de objetos.

1. O administrador da Conta A cria uma função do IAM, estabelecendo a confiança com a Conta C, e assim os usuários dessa conta podem acessar a Conta. A. A política de acesso anexada à função limita o que o usuário na Conta C pode fazer quando acessa a Conta A.

1. O administrador da Conta B faz upload de um objeto no bucket de propriedade da Conta A, concedendo permissão de controle total ao proprietário do bucket.

1. O administrador da Conta C cria um usuário e anexa uma política de usuário que permite que o usuário assuma a função.

1. O usuário na Conta C primeiro assume a função, que retorna as credenciais de segurança temporárias ao usuário. Usando essas credenciais de segurança temporárias, o usuário então acessa os objetos no bucket.

Para este exemplo, você precisará de três contas. A tabela a seguir mostra como nos referimos a essas contas e aos usuários administradores nessas contas. Conforme as diretrizes do IAM (consulte [Sobre o uso de um usuário administrador para criar recursos e conceder permissões](example-walkthroughs-managing-access.md#about-using-root-credentials)), não usamos as credenciais do Usuário raiz da conta da AWS nesta demonstração. Em vez disso, você cria um usuário administrador em cada conta e usa essas credenciais para criar recursos e conceder permissões a eles.


| Conta da AWSID da  | Conta referida como | Usuário administrador na conta  | 
| --- | --- | --- | 
|  *1111-1111-1111*  |  Conta A  |  AccountAadmin  | 
|  *2222-2222-2222*  |  Conta B  |  AccountBadmin  | 
|  *3333-3333-3333*  |  Conta C  |  AccountCadmin  | 



## Etapa 0: Preparar-se para a demonstração
<a name="access-policies-walkthrough-example4-step0"></a>

**nota**  
É recomendado abrir um editor de texto e anotar algumas informações enquanto você passa pelas etapas. Especificamente, você vai precisar dos IDs de conta, IDs de usuários canônicos, URLs de login de usuário do IAM de cada conta para se conectar ao console e nomes de recurso da Amazon (ARNs) dos perfis e usuários do IAM. 

1. Você precisa ter três Contas da AWS, e cada uma delas deve ter um usuário administrador, conforme exibido na tabela da seção anterior.

   1. Cadastre-se para Contas da AWS, se necessário. Nós nos referimos a essas contas como Conta A, Conta B e Conta C.

   1. Usando as credenciais da Conta A, faça login no [console do IAM](https://console.aws.amazon.com/iam/home?#home) e faça o seguinte para criar um usuário administrador:
      + Crie o usuário **AccountAadmin** e anote as credenciais de segurança. Para obter mais informações sobre como adicionar usuários, consulte [Criar um usuário do IAM na sua Conta da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) no *Guia do usuário do IAM*. 
      + Conceda privilégios de administrador a **AccountAadmin** anexando uma política de usuário com pleno acesso. Consulte instruções em [Gerenciar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) no *Guia do usuário do IAM*. 
      + No console do IAM, anote o **URL de login de usuário do IAM** indicado no **Painel**. Os usuários nessa conta devem usar esse URL para fazer login no Console de gerenciamento da AWS. Consulte mais informações em [Sign in to the Console de gerenciamento da AWS as an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html) no *Guia do usuário do IAM*. 

   1. Repita a etapa anterior para criar usuários administradores na Conta B e na Conta C.

1. Para a Conta C, anote o ID de usuário canônico. 

   Quando criar uma função do IAM na Conta A, a política de confiança concederá à Conta C a permissão para assumir a função especificando o ID da conta. Você pode localizar as informações da conta da seguinte forma:

   1. Use o ID ou o alias da Conta da AWS, o nome de usuário do IAM e a senha para fazer login no [console do Amazon S3](https://console.aws.amazon.com/s3/).

   1. Selecione o nome de um bucket do Amazon S3 para visualizar os detalhes sobre esse bucket.

   1. Selecione a guia **Permissions (Permissões)** e selecione **Access Control List (Lista de controle de acesso)**. 

   1. Na seção **Acesso à sua Conta da AWS**, a coluna **Conta** inclui um identificador longo, como `c1daexampleaaf850ea79cf0430f33d72579fd1611c97f7ded193374c0b163b6`. Esse é seu ID de usuário canônico.

1. Ao criar uma política do bucket, você precisará das seguintes informações. Anote estes valores:
   + **ID de usuário canônico da Conta A**: quando o administrador da Conta A conceder permissão condicional para fazer upload de objeto ao administrador da Conta B, a condição especifica o ID de usuário canônico do usuário da Conta A que deverá ter pleno controle dos objetos. 
**nota**  
O ID de usuário canônico é o único conceito do Amazon S3. Ele é a versão oculta de 64 caracteres do ID da conta. 
   + **ARN do usuário para o administrador da Conta B**: é possível encontrar o ARN do usuário no [console do IAM](https://console.aws.amazon.com/iam/). Selecione o usuário e veja o respectivo ARN na guia **Resumo**.

     Na política do bucket, você concede permissão a `AccountBadmin` para carregar objetos e especifica o usuário com o ARN. Aqui está um exemplo de valor do Nome de recurso da Amazon (ARN):

     ```
     arn:aws:iam::AccountB-ID:user/AccountBadmin
     ```

1. Configure a AWS Command Line Interface (CLI) ou o AWS Tools for Windows PowerShell. Salve as credenciais de usuário do administrador da seguinte maneira:
   + Se estiver usando a AWS CLI, crie os perfis `AccountAadmin` e `AccountBadmin` no arquivo de configuração.
   + Se estiver usando o AWS Tools for Windows PowerShell, armazene as credenciais da sessão como `AccountAadmin` e `AccountBadmin`.

   Para instruções, consulte [Configurar as ferramentas para as demonstrações](policy-eval-walkthrough-download-awscli.md).

## Etapa 1: Realizar as tarefas da Conta A
<a name="access-policies-walkthrough-example4-step1"></a>

Neste exemplo, a Conta A é o proprietário do bucket. Assim, o usuário AccountAadmin na Conta A realizará estas ações: 
+ Crie um bucket.
+ Anexará uma política de bucket que conceda ao administrador da Conta B uma permissão para carregar objetos.
+ Criará um perfil do IAM que conceda permissão à Conta C para assumir o perfil para que seja possível acessar os objetos no bucket.

### Etapa 1.1: fazer login no Console de gerenciamento da AWS
<a name="access-policies-walkthrough-cross-account-permissions-acctA-tasks-sign-in-example4"></a>

Usando o URL de login do usuário do IAM da Conta A, primeiro faça login no Console de gerenciamento da AWS como o usuário **AccountAadmin**. Esse usuário criará um bucket e anexará uma política a ele. 

### Etapa 1.2: Criar um bucket e anexar uma política do bucket
<a name="access-policies-walkthrough-example2d-step1-1"></a>

No console do Amazon S3, faça o seguinte:

1. Crie um bucket. Este exercício supõe que o nome do bucket é `amzn-s3-demo-bucket1`.

   Para instruções, consulte [Criar um bucket de uso geral](create-bucket-overview.md). 

1. Anexe a política de bucket a seguir. A política concede ao administrador da Conta B uma permissão condicional para carregar objetos.

   Atualize a política fornecendo seus próprios valores para `amzn-s3-demo-bucket1`, `AccountB-ID` e `CanonicalUserId-of-AWSaccountA-BucketOwner`. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "111",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/AccountBadmin"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*"
           },
           {
               "Sid": "112",
               "Effect": "Deny",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:user/AccountBadmin"
               },
               "Action": "s3:PutObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
               "Condition": {
                   "StringNotEquals": {
                       "s3:x-amz-grant-full-control": "id=CanonicalUserId-of-AWSaccountA-BucketOwner"
                   }
               }
           }
       ]
   }
   ```

------

### Etapa 1.3: criar um perfil do IAM para conceder acesso entre contas na à Conta C na Conta A
<a name="access-policies-walkthrough-example2d-step1-2"></a>

No [console do IAM](https://console.aws.amazon.com/iam/), crie um perfil do IAM (**examplerole**) que conceda à Conta C permissão para assumir o perfil do IAM. Você deve manter a conexão como administrador da Conta A porque o perfil deve ser criado na Conta A.

1. Antes de criar a função, prepare as políticas gerenciadas que definem as permissões necessárias à função. Em uma etapa posterior, você anexará essa política à função.

   1. No painel de navegação à esquerda, escolha **Políticas** e **Criar política**.

   1. Próximo a **Create Your Own Policy**, escolha **Select**.

   1. Insira **access-accountA-bucket** no campo **Policy Name (Nome da política)**.

   1. Copie a política de acesso a seguir e cole-a no campo **Policy Document (Documento de políticas)**. A política de acesso concede permissão ao perfil `s3:GetObject`; assim, quando o usuário da Conta C assume o perfil, ele só pode executar a operação `s3:GetObject`.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*"
          }
        ]
      }
      ```

------

   1. Escolha **Create Policy**.

      As novas políticas aparecem na lista de políticas gerenciadas.

1. No painel de navegação à esquerda, escolha **Perfis** e **Criar novo perfil**.

1. Em **Selecionar tipo de função**, selecione **Função para acesso entre contas** e o botão **Selecionar** ao lado de **Fornecer acesso entre as Contas da AWS que você possui**.

1. Insira o ID de conta da Conta C.

   Para esta demonstração, não é necessário exigir que os usuários tenham a autenticação multifator (MFA) para assumir o perfil; portanto, deixe essa opção desmarcada.

1. Escolha **Próxima etapa** para definir as permissões que serão associadas à função.

1. 

   Marque a caixa de seleção ao lado da política **access-accountA-bucket** que você criou e escolha **Próxima etapa**.

   A página Revisar será exibida para que você possa confirmar as configurações para a função antes de criá-la. Um item muito importante a observar nesta página é o link que você pode enviar aos usuários que precisem usar essa função. Os usuários que usam o link vão diretamente para a página **Trocar perfil** com os campos “ID da conta” e “Nome do perfil” já preenchidos. Você também pode ver esse link mais tarde na página **Resumo da função** de qualquer função entre contas.

1. Insira `examplerole` para o nome do perfil e selecione **Próxima etapa**.

1. Depois de revisar o perfil, escolha **Criar perfil**.

   A função `examplerole` é exibida na lista de funções.

1. Selecione o nome de perfil `examplerole`.

1. Selecione a guia **Trust Relationships (Relacionamentos de confiança)**.

1. Clique em **Mostrar documento de política** e verifique se a política de confiança mostrada corresponde à indicada a seguir.

   A política de confiança a seguir estabelece a confiança com a Conta C, permitindo-lhe a ação `sts:AssumeRole`. Para obter mais informações, consulte [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) na *Referência de APIs do AWS Security Token Service*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Anote o nome do recurso da Amazon (ARN) do perfil `examplerole` que você criou. 

   Depois, nas etapas a seguir, você anexará um política de usuário para permitir que um usuário do IAM assuma essa função e identificará a função com o valor de Nome de recurso da Amazon (ARN). 

## Etapa 2: Realizar as tarefas da Conta B
<a name="access-policies-walkthrough-example4-step2"></a>

O exemplo de bucket de propriedade da Conta A precisa de objetos de propriedade de outras contas. Nessa etapa, o administrador da Conta B faz upload de um objeto usando as ferramentas da linha de comando.
+ Usando o comando `put-object` da AWS CLI, faça upload de um objeto em `amzn-s3-demo-bucket1`. 

  ```
  aws s3api put-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --body HappyFace.jpg --grant-full-control id="canonicalUserId-ofTheBucketOwner" --profile AccountBadmin
  ```

  Observe o seguinte:
  + O parâmetro `--Profile` especifica o perfil `AccountBadmin`; portanto, o objeto é de propriedade da Conta B.
  + O parâmetro `grant-full-control` concede ao proprietário do bucket permissão de pleno controle sobre o objeto conforme exigido pela política do bucket.
  + O parâmetro `--body` identifica o arquivo de origem para fazer upload. Por exemplo, se o arquivo estiver na unidade C: de um computador Windows, você especifica `c:\HappyFace.jpg`. 

## Etapa 3: realizar as tarefas da Conta C
<a name="access-policies-walkthrough-example4-step3"></a>

Nas etapas anteriores, a Conta A já criou um perfil, `examplerole`, estabelecendo a confiança com a Conta C. Esse perfil permite que os usuários na Conta C acessem a Conta A. Nessa etapa, o administrador da Conta C cria um usuário (Dave) e delega para ele a permissão `sts:AssumeRole`, recebida da Conta A. Essa abordagem permite que Dave assuma o `examplerole` e tenha acesso temporário à Conta A. A política de acesso que a Conta A anexou ao perfil limita o que Dave pode fazer ao acessar a Conta A (especificamente, obter objetos no `amzn-s3-demo-bucket1`).

### Etapa 3.1: criar um usuário na Conta C e delegar permissão para assumir examplerole
<a name="cross-acct-access-using-role-step3-1"></a>

1. Usando o URL de login de usuário do IAM para a Conta C, primeiro faça login no Console de gerenciamento da AWS como o usuário **AccountCadmin**. 

   

1. No [console do IAM](https://console.aws.amazon.com/iam/), crie um usuário chamado Dave. 

   Para obter instruções passo a passo, consulte [Criação de usuários do IAM (Console de gerenciamento da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) no *Guia do usuário do IAM*. 

1. Anote as credenciais de Dave. Dave precisará dessas credenciais para assumir a função `examplerole`.

1. Crie uma política em linha para o usuário do IAM Dave para delegar a ele a permissão `sts:AssumeRole` no perfil `examplerole` da conta A. 

   1. No painel de navegação à esquerda, escolha **Uses (Usuários)**.

   1. Selecione o nome de usuário **Dave**.

   1. Na página detalhes do usuário, selecione a guia **Permissions (Permissões)** e, em seguida, expanda a seção **Inline Policies (Políticas em linha)**.

   1. Escolha **clique aqui** (ou **Create User Policy [Criar política de usuário]**).

   1. Escolha **Custom Policy** e depois **Select**.

   1. Insira um nome para a política no campo **Policy Name (Nome da política)**.

   1. Cole a seguinte política no campo **Policy Document (Documento da política)**.

      Você deve atualizar a política fornecendo o `AccountA-ID`.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "sts:AssumeRole"
                  ],
                  "Resource": "arn:aws:iam::111122223333:role/examplerole"
              }
          ]
      }
      ```

------

   1. Selecione **Aplicar política**.

1. Salve as credenciais de Dave no arquivo de configuração da AWS CLI adicionando outro perfil, `AccountCDave`.

   ```
   [profile AccountCDave]
   aws_access_key_id = UserDaveAccessKeyID
   aws_secret_access_key = UserDaveSecretAccessKey
   region = us-west-2
   ```

### Etapa 3.2: assumir o perfil (examplerole) e acessar objetos
<a name="cross-acct-access-using-role-step3-2"></a>

Agora Dave pode acessar objetos no bucket de propriedade da Conta A, desta forma:
+ Dave primeiro assume a `examplerole` usando suas próprias credenciais. Isso retornará credenciais temporárias.
+ Usando as credenciais temporárias, Dave então acessará os objetos no bucket da Conta A.

1. No prompt de comando, execute o comando `assume-role` da AWS CLI usando o perfil `AccountCDave`. 

   É necessário atualizar o valor do ARN no comando fornecendo o `AccountA-ID` em que `examplerole` foi definido.

   ```
   aws sts assume-role --role-arn arn:aws:iam::AccountA-ID:role/examplerole --profile AccountCDave --role-session-name test
   ```

   Em resposta, o AWS Security Token Service (AWS STS) retorna credenciais de segurança temporárias (ID da chave de acesso, chave de acesso secreta e um token de sessão).

1. Salve as credenciais de segurança temporárias no arquivo de configuração da AWS CLI no perfil `TempCred`.

   ```
   [profile TempCred]
   aws_access_key_id = temp-access-key-ID
   aws_secret_access_key = temp-secret-access-key
   aws_session_token = session-token
   region = us-west-2
   ```

1. No prompt de comando, execute o comando da AWS CLI a seguir para acessar objetos usando as credenciais temporárias. Por exemplo, o comando especifica a API do objeto head para recuperar os metadados do objeto para o objeto `HappyFace.jpg`.

   ```
   aws s3api get-object --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg SaveFileAs.jpg --profile TempCred
   ```

   Como a política de acesso anexada a `examplerole` permite as ações, o Amazon S3 processa a solicitação. Você pode tentar qualquer outra ação em qualquer outro objeto no bucket.

   Se tentar qualquer outra ação, como `get-object-acl`, você terá a permissão negada porque o perfil não tem permissão para realizar essa ação.

   ```
   aws s3api get-object-acl --bucket amzn-s3-demo-bucket1 --key HappyFace.jpg --profile TempCred
   ```

   Usamos o usuário Dave para assumir a função e acessar o objeto usando credenciais temporárias. Também poderia ser um aplicativo na Conta C que acessa objetos em `amzn-s3-demo-bucket1`. O aplicativo pode obter credenciais de segurança temporárias, e a Conta C pode delegar permissão de aplicativo para assumir `examplerole`.

## Etapa 4: limpar
<a name="access-policies-walkthrough-example4-step6"></a>

1. Depois de terminar os testes, você pode fazer o seguinte para concluir a limpeza:

   1. Faça login no [Console de gerenciamento da AWS](https://console.aws.amazon.com/) usando as credenciais da Conta A e faça o seguinte:
     + No console do Amazon S3, remova a política de bucket anexada a `amzn-s3-demo-bucket1`. Nas **Propriedades** do bucket, exclua a política na seção **Permissions (Permissões)**. 
     + Se o bucket foi criado para este exercício, no console do Amazon S3, exclua os objetos e, em seguida, exclua o bucket. 
     + No [console do IAM](https://console.aws.amazon.com/iam/), remova o `examplerole` que você criou na Conta A. Consulte instruções detalhadas em [Exclusão de um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting) no *Guia do usuário do IAM*. 
     + No [console do IAM](https://console.aws.amazon.com/iam/), remova o usuário **AccountAadmin**.

1. Faça login no [console do IAM](https://console.aws.amazon.com/iam/) usando as credenciais da Conta B. Exclua o usuário **AccountBadmin**. 

1. Faça login no [console do IAM](https://console.aws.amazon.com/iam/) usando as credenciais da Conta C. Exclua **AccountCadmin** e o usuário Dave.

## Recursos relacionados
<a name="RelatedResources-managing-access-example4"></a>

Consulte mais informações relacionadas a essa demonstração nos seguintes recursos do *Guia do usuário do IAM*:
+ [Criação de uma função para delegar permissões a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)
+ [Tutorial: delegar acesso entre Contas da AWS usando perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial-cross-account-with-roles.html)
+ [Gerenciamento de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)

# Usar funções vinculadas a serviços para o Amazon S3 Storage Lens
<a name="using-service-linked-roles"></a>

Para usar o Amazon S3 Storage Lens para coletar e agregar métricas em todas as suas contas no AWS Organizations, primeiro você deve garantir que o S3 Storage Lens tenha acesso confiável habilitado pela conta de gerenciamento em sua organização. A Lente de Armazenamento do S3 cria um perfil vinculado ao serviço (SLR) para permitir que ele obtenha a lista de Contas da AWS pertencentes à sua organização. Essa lista de contas é usada pelo S3 Storage Lens para coletar métricas de recursos do S3 em todas as contas membro quando o painel ou as configurações do S3 Storage Lens são criadas ou atualizadas.

O Amazon S3 Storage Lens usa [funções vinculadas a serviços](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) do AWS Identity and Access Management (IAM). Uma função vinculada a serviço é um tipo exclusivo de função do IAM vinculada diretamente ao S3 Storage Lens. Os perfis vinculados ao serviço são predefinidos pela Lente de Armazenamento do S3 e incluem todas as permissões que o serviço exige para chamar outros Serviços da AWS em seu nome.

Uma função vinculada a serviços facilita a configuração do S3 Storage Lens porque você não precisa adicionar as permissões necessárias manualmente. O S3 Storage Lens define as permissões da função vinculada a serviços e, salvo outra definição, somente o S3 Storage Lens pode assumir suas funções. As permissões definidas incluem a política de confiança e a política de permissões, e essa política de permissões não pode ser anexada a nenhuma outra entidade do IAM.

Você pode excluir essa função vinculada a serviços somente após a exclusão dos recursos relacionados. Isso protege seus recursos do S3 Storage Lens, porque você não consegue remover por engano a permissão para acessar os recursos.

Para ter informações sobre outros serviços compatíveis com perfis vinculados a serviços, consulte [Serviços da AWS que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) e procure serviços que tenham **Sim** na coluna **Perfis vinculados a serviço**. Escolha um **Sim** com um link para visualizar a documentação sobre funções vinculadas ao serviço para esse serviço.

## Permissões de funções vinculadas a serviços para o Amazon S3 Storage Lens
<a name="slr-permissions"></a>

O S3 Storage Lens usa a função vinculada a serviços chamada **AWSServiceRoleForS3StorageLens**. Ela permite o acesso a serviços e recursos da AWS usados ou gerenciados pelo S3 Storage Lens. Isso permite que o S3 Storage Lens acesse recursos da AWS Organizations em seu nome.

A função vinculada a serviços do S3 Storage Lens confia no seguinte serviço no armazenamento da sua organização:
+ `storage-lens.s3.amazonaws.com`

A política de permissões da função permite que o S3 Storage Lens execute as seguintes ações:
+ `organizations:DescribeOrganization`

  `organizations:ListAccounts`

  `organizations:ListAWSServiceAccessForOrganization`

  `organizations:ListDelegatedAdministrators`

Você deve configurar permissões para que uma entidade do IAM (por exemplo, um usuário, grupo ou função) crie, edite ou exclua uma função vinculada ao serviço. Para obter mais informações, consulte [Service-linked role permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) (Permissões de função vinculada a serviços) no *Guia do usuário do IAM*.

## Criar uma função vinculada a serviços para o S3 Storage Lens
<a name="create-slr"></a>

Você não precisa criar manualmente uma função vinculada a serviço. Quando você conclui uma das seguintes tarefas enquanto faz login no gerenciamento do AWS Organizations ou nas contas de administrador delegado, o S3 Storage Lens cria a função vinculada a serviços para você:
+ Crie uma configuração de painel do S3 Storage Lens para sua organização no console do Amazon S3.
+ Executar o comando `PUT` de uma configuração do S3 Storage Lens para sua organização usando a API REST, a AWS CLI e os SDKs.

**nota**  
A Lente de Armazenamento do S3 permite no máximo cinco administradores delegados por organização.

Se você excluir essa função vinculada a serviços, as ações anteriores a recriarão conforme necessário.

### Exemplo de política para função vinculada a serviços do S3 Storage Lens
<a name="slr-sample-policy"></a>

**Example Política de permissões para a função vinculada a serviços do S3 Storage Lens**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AwsOrgsAccess",
            "Effect": "Allow",
            "Action": [
                "organizations:DescribeOrganization",
                "organizations:ListAccounts",
                "organizations:ListAWSServiceAccessForOrganization",
                "organizations:ListDelegatedAdministrators"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

## Editar uma função vinculada a serviços para o Amazon S3 Storage Lens
<a name="edit-slr"></a>

A Lente de Armazenamento do S3 não permite que você edite o perfil vinculado ao serviço AWSServiceRoleForS3StorageLens. Depois que você criar um perfil vinculado ao serviço, não poderá alterar o nome do perfil, pois várias entidades podem fazer referência ao perfil. No entanto, você poderá editar a descrição do perfil usando o IAM. Para obter mais informações, consulte [Editar uma função vinculada a serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) no *Guia do usuário do IAM*.

## Excluir uma função vinculada a serviços para o Amazon S3 Storage Lens
<a name="delete-slr"></a>

Se você não precisa mais usar a função vinculada a serviços, recomendamos que a exclua. Dessa forma, você não tem uma entidade não utilizada que não seja monitorada ativamente ou mantida. No entanto, você deve limpar os recursos de sua função vinculada ao serviço antes de exclui-la manualmente.

**nota**  
Se o serviço Amazon S3 Storage Lens estiver usando a função quando você tentar excluir os recursos, a exclusão poderá falhar. Se isso acontecer, espere alguns minutos e tente a operação novamente.

Para excluir o AWSServiceRoleForS3StorageLens, você deve excluir todas as configurações da Lente de Armazenamento do S3 no nível da organização presentes em todas as Regiões da AWS usando o gerenciamento do AWS Organizations ou as contas de administrador delegadas.

Os recursos são configurações do S3 Storage Lens no nível da organização. Use a Lente de Armazenamento do S3 para limpar os recursos e, depois, use o [console do IAM](https://console.aws.amazon.com/iam/), a CLI, a API REST ou o SDK da AWS para excluir o perfil. 

Na API REST, na AWS CLI e nos SDKs, as configurações da Lente de Armazenamento do S3 podem ser descobertas usando `ListStorageLensConfigurations` em todas as regiões onde sua organização tiver criado configurações da Lente de Armazenamento do S3. Use a ação `DeleteStorageLensConfiguration` a fim de excluir essas configurações para que você possa excluir a função.

**nota**  
Para excluir a função vinculada a serviços, você deve excluir todas as configurações do S3 Storage Lens no nível da organização em todas as regiões em que elas existem.

**Como excluir recursos da Lente de Armazenamento do Amazon S3 usados pelo SLR AWSServiceRoleForS3StorageLens**

1. Para obter uma lista de configurações de nível de organização, é necessário usar `ListStorageLensConfigurations` em todas as regiões em que você tem configurações da Lente de Armazenamento do S3. Essa lista também pode ser encontrada no console do Amazon S3.

1. Exclua essas configurações dos endpoints regionais apropriados invocando a chamada de API `DeleteStorageLensConfiguration` ou usando o console do Amazon S3. 

**Como excluir manualmente o perfil vinculado ao serviço usando o IAM**

Depois de excluir as configurações, exclua o SLR AWSServiceRoleForS3StorageLens no [console do IAM](https://console.aws.amazon.com/iam/), invocando a API `DeleteServiceLinkedRole` do IAM ou usando a AWS CLI ou o SDK da AWS. Para obter mais informações, consulte [Excluir uma função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) no *Guia do usuário do IAM*.

## Regiões com suporte para funções vinculadas a serviços do S3 Storage Lens
<a name="slr-regions"></a>

O S3 Storage Lens é compatível com as funções vinculadas a serviços em todas as Regiões da AWS em que o serviço está disponível. Para obter mais informações, consulte [Regiões e endpoints do Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html).

# Solução de problemas de identidade e acesso do Amazon S3
<a name="security_iam_troubleshoot"></a>

Use as informações a seguir para ajudar a diagnosticar e corrigir problemas comuns que você possa encontrar ao trabalhar com o Amazon S3 e o IAM.

**Topics**
+ [Recebi um erro de acesso negado](#access_denied_403)
+ [Não tenho autorização para executar uma ação no Amazon S3](#security_iam_troubleshoot-no-permissions)
+ [Não estou autorizado a executar iam:PassRole](#security_iam_troubleshoot-passrole)
+ [Quero permitir que as pessoas fora da minha Conta da AWS acessem meus recursos do Amazon S3](#security_iam_troubleshoot-cross-account-access)
+ [Solucionar erros de acesso negado (403 Forbidden) no Amazon S3](troubleshoot-403-errors.md)

## Recebi um erro de acesso negado
<a name="access_denied_403"></a>

Verifique se não há uma instrução `Deny` explícita contra o solicitante ao qual você está tentando conceder permissões, seja na política de bucket ou na política baseada em identidade. 

Consulte informações detalhadas sobre a solução de problemas de erros de acesso negado em [Solucionar erros de acesso negado (403 Forbidden) no Amazon S3](troubleshoot-403-errors.md).

## Não tenho autorização para executar uma ação no Amazon S3
<a name="security_iam_troubleshoot-no-permissions"></a>

Se você receber uma mensagem de erro informando que não tem autorização para executar uma ação, suas políticas deverão ser atualizadas para permitir que você realize a ação.

O erro do exemplo a seguir ocorre quando o usuário do IAM `mateojackson` tenta usar o console para visualizar detalhes sobre um atributo `my-example-widget` fictício, mas não tem as permissões `s3:GetWidget` fictícias.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: s3:GetWidget on resource: my-example-widget
```

Nesse caso, a política do usuário `mateojackson` deve ser atualizada para permitir o acesso ao recurso `my-example-widget` usando a ação `s3:GetWidget`.

Se você precisar de ajuda, entre em contato com seu administrador AWS. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Não estou autorizado a executar iam:PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se receber uma mensagem de erro informando que você não tem autorização para executar a ação `iam:PassRole`, atualize suas políticas para permitir a transmissão de um perfil ao Amazon S3.

Alguns Serviços da AWS permitem que você passe um perfil existente para o serviço, em vez de criar um perfil de serviço ou perfil vinculado ao serviço. Para fazer isso, é preciso ter permissões para passar o perfil para o serviço.

O exemplo de erro a seguir ocorre quando uma usuária do IAM chamada `marymajor` tenta usar o console para executar uma ação no Amazon S3. No entanto, a ação exige que o serviço tenha permissões concedidas por um perfil de serviço. Mary não tem permissões para passar o perfil para o serviço.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Nesse caso, as políticas de Mary devem ser atualizadas para permitir que ela realize a ação `iam:PassRole`.

Se você precisar de ajuda, entre em contato com seu administrador AWS. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Quero permitir que as pessoas fora da minha Conta da AWS acessem meus recursos do Amazon S3
<a name="security_iam_troubleshoot-cross-account-access"></a>

É possível criar um perfil que os usuários de outras contas ou pessoas fora da organização podem usar para acessar seus recursos. É possível especificar quem é confiável para assumir o perfil. Para serviços que oferecem compatibilidade com políticas baseadas em recursos ou listas de controle de acesso (ACLs), é possível usar essas políticas para conceder às pessoas acesso aos seus recursos.

Para saber mais, consulte:
+ Para saber se o Amazon S3 é compatível com esses recursos, consulte [Como o Amazon S3 funciona com o IAM](security_iam_service-with-iam.md).
+ Para saber como conceder acesso a seus recursos em todas as Contas da AWS pertencentes a você, consulte [Fornecimento de acesso a um usuário do IAM em outra Conta da AWS pertencente a você](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) no *Guia de usuário do IAM*.
+ Para saber como conceder acesso a seus recursos para Contas da AWS de terceiros, consulte [Fornecimento de acesso a Contas da AWS pertencentes a terceiros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) no *Guia do usuário do IAM*.
+ Para saber como conceder acesso por meio da federação de identidades, consulte [Conceder acesso a usuários autenticados externamente (federação de identidades)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) no *Guia do usuário do IAM*.
+ Para saber a diferença entre perfis e políticas baseadas em recurso para acesso entre contas, consulte [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

# Solucionar erros de acesso negado (403 Forbidden) no Amazon S3
<a name="troubleshoot-403-errors"></a>

Erros de acesso negado (HTTP `403 Forbidden`) são exibidos quando a AWS nega explícita ou implicitamente uma solicitação de autorização. 
+ Uma *negação explícita* ocorre quando uma política contém uma instrução `Deny` para a ação específica da AWS. 
+ Uma *negação implícita* ocorre quando não há nenhuma instrução `Deny` aplicável e também nenhuma instrução `Allow` aplicável. 

Como uma política do AWS Identity and Access Management (IAM) nega implicitamente uma entidade principal do IAM por padrão, a política deve permitir explicitamente que a entidade principal realize uma ação. Caso contrário, a política nega acesso implicitamente. Para ter mais informações, consulte [A diferença entre negações explícitas e implícitas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#AccessPolicyLanguage_Interplay) no *Guia do usuário do IAM*. Para ter informações sobre a lógica de avaliação de políticas que determina se uma solicitação de acesso é permitida ou negada, consulte [Lógica da avaliação de política](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) 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](using-with-s3-policy-actions.md).

Os tópicos a seguir abordam as causas mais comuns dos erros de acesso negado no Amazon S3.

**nota**  
Em relação a erros de acesso negado (HTTP `403 Forbidden`), o Amazon S3 não cobra do proprietário do bucket quando a solicitação é iniciada fora da conta da AWS individual dele ou da organização da AWS à qual ele pertence.

**Topics**
+ [Exemplos de mensagens de acesso negado e como solucioná-las](#access-denied-message-examples)
+ [Acesso negado devido a configurações do pagamento pelo solicitante](#access-denied-requester-pays)
+ [Políticas de bucket e políticas do IAM](#bucket-iam-policies)
+ [Configurações de ACL do Amazon S3](#troubleshoot-403-acl-settings)
+ [Configurações do bloqueio de acesso público do S3](#troubleshoot-403-bpa)
+ [Configurações de criptografia do Amazon S3](#troubleshoot-403-encryption)
+ [Configurações do bloqueio de objetos do S3](#troubleshoot-403-object-lock)
+ [Políticas de VPC endpoint](#troubleshoot-403-vpc)
+ [AWS OrganizationsPolíticas do](#troubleshoot-403-orgs)
+ [Acesso à distribuição do CloudFront](#troubleshoot-403-cloudfront)
+ [Configurações do ponto de acesso](#troubleshoot-403-access-points)
+ [Recursos adicionais](#troubleshoot-403-additional-resources)

**nota**  
Se você estiver tentando solucionar um problema de permissões, comece com a seção [Exemplos de mensagens de acesso negado e como solucioná-las](#access-denied-message-examples) e acesse a seção [Políticas de bucket e políticas do IAM](#bucket-iam-policies). Lembre-se também de seguir as orientações em [Dicas para verificar permissões](#troubleshoot-403-tips).

## Exemplos de mensagens de acesso negado e como solucioná-las
<a name="access-denied-message-examples"></a>

O Amazon S3 agora inclui contexto adicional em erros de acesso negado (HTTP `403 Forbidden`) para solicitações feitas a recursos dentro da mesma conta da Conta da AWS ou da mesma organização no AWS Organizations. Esse novo contexto inclui o tipo de política que negou o acesso, o motivo da negação e informações sobre o usuário ou o perfil do IAM que solicitou acesso ao recurso. 

Esse contexto adicional ajuda você a solucionar problemas de acesso, identificar a causa-raiz dos erros de acesso negado e corrigir controles de acesso incorretos por meio da atualização das políticas pertinentes. Esse contexto adicional também está disponível nos logs do AWS CloudTrail. As mensagens de erro aprimoradas de acesso negado para solicitações da mesma conta ou da mesma organização agora estão disponíveis em todas as Regiões da AWS, incluindo as AWS GovCloud (US) Regions e as da China. 

A maioria das mensagens de erro de acesso negado está no formato `User user-arn is not authorized to perform action on "resource-arn" because context`. Neste exemplo, *`user-arn`* é o [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) do usuário que não recebe acesso, *`action`* é a ação de serviço que a política nega e *`resource-arn`* é o ARN do recurso no qual a política atua. O campo *`context`* representa contexto adicional sobre o tipo de política que explica por que o acesso é negado.

Quando uma política nega explicitamente o acesso porque ela contém uma declaração `Deny`, a mensagem de erro de acesso negado inclui a frase `with an explicit deny in a type policy`. Quando a política nega acesso implicitamente, a mensagem de erro de acesso negado inclui a frase `because no type policy allows the action action`.

**Importante**  
As mensagens aprimoradas de acesso negado são exibidas somente para solicitações da mesma conta ou para solicitações dentro da mesma organização no AWS Organizations. As solicitações entre contas fora da mesma organização exibem uma mensagem `Access Denied` genérica.   
Para ter informações sobre a lógica de avaliação de políticas que determina se uma solicitação de acesso entre contas é permitida ou negada, consulte [Lógica de avaliação de política entre contas](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) no *Guia do usuário do IAM*. Para ter uma explicação detalhada que mostra como conceder acesso entre contas, consulte [Exemplo 2: Proprietário do bucket concedendo permissões de bucket entre contas](example-walkthroughs-managing-access-example2.md). 
Para solicitações dentro da mesma organização no AWS Organizations:  
Não serão exibidas mensagens aprimoradas de acesso negado se uma negação ocorrer devido a uma política de endpoint de nuvem privada virtual (VPC).
Mensagens aprimoradas de acesso negado são apresentadas sempre que o proprietário do bucket e a conta do chamador pertencem à mesma organização no AWS Organizations. Embora os buckets configurado com as definições **Proprietário do bucket preferido** ou **Autor do objeto** da funcionalidade Propriedade de Objetos do S3 possam conter objetos pertencentes a contas diferentes, a propriedade do objeto não afeta as mensagens aprimoradas de acesso negado. As mensagens aprimoradas de acesso negado são exibidas para todas as solicitações de objeto desde que o proprietário do bucket e o chamador estejam na mesma organização, independentemente de quem seja o proprietário do objeto específico. Para ter informações sobre as configurações e definições de propriedade de objeto, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](about-object-ownership.md).
Mensagens de erro aprimoradas de acesso negado não são exibidas para solicitações feitas aos buckets de diretório. Solicitações de bucket de diretório exibem uma mensagem `Access Denied` genérica.
Se várias políticas do mesmo tipo negarem uma solicitação de autorização, a mensagem de erro de acesso negado não especificará o número de políticas.
Se vários tipos de política negarem uma solicitação de autorização, a mensagem de erro incluirá somente um dos tipos de política.
Se uma solicitação de acesso for negada por vários motivos, a mensagem de erro incluirá apenas um dos motivos da negação. 

Os exemplos a seguir mostram o formato de diferentes tipos de mensagem de acesso negado e como solucionar problemas de cada tipo de mensagem.

### Acesso negado devido ao tipo de criptografia bloqueado
<a name="access-denied-due-to-blocked-encryption-type"></a>

Para limitar os tipos de criptografia do lado do servidor que é possível usar em buckets de uso geral, você pode optar por bloquear as solicitações de gravação SSE-C atualizando a configuração de criptografia padrão para os buckets. Essa configuração em nível de bucket bloqueia solicitações de upload de objetos que especificam SSE-C. Quando o SSE-C é bloqueado para um bucket, qualquer solicitação `PutObject`, `CopyObject`, `PostObject` ou de multipart upload ou replicação que especifique a criptografia SSE-C será rejeitada com um erro HTTP 403 `AccessDenied`.

Essa configuração é um parâmetro na API `PutBucketEncryption` e também poderá ser atualizada usando o console do S3, a AWS CLI e SDKs da AWS se você tiver a permissão `s3:PutEncryptionConfiguration`. Os valores válidos são `SSE-C`, que bloqueia a criptografia SSE-C para o bucket de uso geral, e `NONE`, que permite o uso do SSE-C para gravações no bucket.

Por exemplo, quando o acesso é negado à solicitação `PutObject` por que a configuração `BlockedEncryptionTypes` bloqueia solicitações de gravação que especicam SSE-C, a seguinte mensagem é exibida:

```
An error occurred (AccessDenied) when calling the PutObject operation:   
User: arn:aws:iam::123456789012:user/MaryMajor  is not   
authorized to perform: s3:PutObject on resource:   
"arn:aws:s3:::amzn-s3-demo-bucket1/object-name" because this   
bucket has blocked upload requests that specify   
Server Side Encryption with Customer provided keys (SSE-C).   
Please specify a different server-side encryption type
```

Para saber mais sobre essa configuração, consulte [Bloquear ou desbloquear o SSE-C para um bucket de uso geral](blocking-unblocking-s3-c-encryption-gpb.md).

### Acesso negado devido a uma política de controle de recurso: negação explícita
<a name="access-denied-rcp-examples-explicit"></a>

1. Verifique se há uma instrução `Deny` para a ação em suas políticas de controle de recursos (RCPs). No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize sua RCP removendo a instrução `Deny`. Para obter mais informações, consulte [Atualizar uma política de controle de recursos (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy-rcp) no *Guia do usuário do AWS Organizations*. 

```
An error occurred (AccessDenied) when calling the GetObject operation: 
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
with an explicit deny in a resource control policy
```

### Acesso negado devido a uma política de controle de serviço: negação implícita
<a name="access-denied-scp-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em suas políticas de controle de serviços (SCPs). No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize a SCP adicionando a instrução `Allow`. Para obter mais informações, consulte [Atualizar uma SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html#update_policy) no *Guia do usuário do AWS Organizations*.

```
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform:
s3:GetObject because no service control policy allows the s3:GetObject action
```

### Acesso negado devido a uma política de controle de serviço: negação explícita
<a name="access-denied-scp-examples-explicit"></a>

1. Verifique se há uma instrução `Deny` para a ação em suas políticas de controle de serviços (SCPs). No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize a SCP alterando a declaração `Deny` para permitir que o usuário tenha o acesso necessário. Para ver um exemplo de como fazer isso, consulte [Prevent IAM users and roles from making specified changes, with an exception for a specified admin role](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples_general.html#example-scp-restricts-with-exception) no *Guia do usuário do AWS Organizations*. Para ter mais informações sobre a atualização da SCP, consulte [Updating an SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html#update_policy) no *Guia do usuário do AWS Organizations*.

```
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: 
s3:GetObject with an explicit deny in a service control policy
```

### Acesso negado devido a uma política de endpoint da VPC: negação implícita
<a name="access-denied-vpc-endpoint-examples-implicit"></a>

1. Confira se falta uma declaração `Allow` para a ação nas políticas de endpoint da nuvem privada virtual (VPC). No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize sua política de endpoint da VPC adicionando a instrução `Allow`. Para obter mais informações, consulte [Atualizar uma política de endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) no *Guia do AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no VPC endpoint policy allows the s3:GetObject action
```

### Acesso negado devido a uma política de endpoint da VPC: negação explícita
<a name="access-denied-vpc-endpoint-examples-explicit"></a>

1. Confira se há uma declaração `Deny` explícita para a ação nas políticas de endpoint da nuvem privada virtual (VPC). No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize a política de endpoint da VPC alterando a declaração `Deny` para permitir que o usuário tenha o acesso necessário. Por exemplo, é possível atualizar a declaração `Deny` para usar a chave de condição `aws:PrincipalAccount` com o operador de condição `StringNotEquals` e permitir o acesso da entidade principal específica, conforme mostrado em [Exemplo 7: excluir determinadas entidades principais de uma declaração `Deny`](amazon-s3-policy-keys.md#example-exclude-principal-from-deny-statement). Para ter mais informações sobre como atualizar a política de endpoint da VPC, consulte [Update a VPC endpoint policy](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) no *Guia do AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in a VPC endpoint policy
```

### Acesso negado devido a um limite de permissões: negação implícita
<a name="access-denied-permissions-boundary-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em seu limite de permissões. No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize seu limite de permissões adicionando a instrução `Allow` à política do IAM. Para ter mais informações, consulte [Limites de permissões para entidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) e [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
because no permissions boundary allows the s3:GetObject action
```

### Acesso negado devido a um limite de permissões: negação explícita
<a name="access-denied-permissions-boundary-examples-explicit"></a>

1. Verifique se há uma instrução `Deny` explícita para a ação em seu limite de permissões. No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize o limite de permissões alterando a declaração `Deny` em sua política do IAM para permitir que o usuário tenha o acesso necessário. Por exemplo, é possível atualizar a declaração `Deny` para usar a chave de condição `aws:PrincipalAccount` com o operador de condição `StringNotEquals` e permitir o acesso da entidade principal específica, conforme mostrado em [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) no *Guia do usuário do IAM*. Para ter mais informações, consulte [Limites de permissões para entidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) e [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*.

```
User: arn:aws:iam::777788889999:user/MaryMajor is not authorized to perform: 
s3:GetObject with an explicit deny in a permissions boundary
```

### Acesso negado devido às políticas de sessão: negação implícita
<a name="access-denied-session-policy-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em suas políticas de sessão. No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize a política de sessão adicionando a instrução `Allow`. Para ter mais informações, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) e [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no session policy allows the s3:GetObject action
```

### Acesso negado devido às políticas de sessão: negação explícita
<a name="access-denied-session-policy-examples-explicit"></a>

1. Verifique se há uma instrução `Deny` explícita para a ação em suas políticas de sessão. No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize a política de sessão alterando a declaração `Deny` para permitir que o usuário tenha o acesso necessário. Por exemplo, é possível atualizar a declaração `Deny` para usar a chave de condição `aws:PrincipalAccount` com o operador de condição `StringNotEquals` e permitir o acesso da entidade principal específica, conforme mostrado em [Exemplo 7: excluir determinadas entidades principais de uma declaração `Deny`](amazon-s3-policy-keys.md#example-exclude-principal-from-deny-statement). Para ter mais informações sobre como atualizar a política de sessão, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) e [Editar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) *no Guia do usuário do IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in a session policy
```

### Acesso negado devido às políticas baseadas em recursos: negação implícita
<a name="access-denied-resource-based-policy-examples-implicit"></a>

**nota**  
*Políticas baseadas em recursos* são, por exemplo, políticas de bucket e de ponto de acesso.

1. Verifique se falta uma instrução `Allow` para a ação em sua política baseada em recursos. Confira também se a configuração `IgnorePublicAcls` do Bloqueio de Acesso Público do S3 é aplicada em nível de bucket, de ponto de acesso ou de conta. No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize a política adicionando a instrução `Allow`. Para ter mais informações, consulte [Políticas baseadas em recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) e [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*.

   Talvez você também precise ajustar a configuração `IgnorePublicAcls` do Bloqueio de Acesso Público para o bucket, o ponto de acesso ou a conta. Para obter mais informações, consulte [Acesso negado devido a configurações do Bloqueio de Acesso Público](#access-denied-bpa-examples) e [Configurar o bloqueio de acesso público para seus buckets do S3](configuring-block-public-access-bucket.md).

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no resource-based policy allows the s3:GetObject action
```

### Acesso negado devido às políticas baseadas em recursos: negação explícita
<a name="access-denied-resource-based-policy-examples-explicit"></a>

**nota**  
*Políticas baseadas em recursos* são, por exemplo, políticas de bucket e de ponto de acesso.

1. Verifique se há uma instrução `Deny` explícita para a ação em sua política baseada em recursos. Confira também se a configuração `RestrictPublicBuckets` do Bloqueio de Acesso Público do S3 é aplicada em nível de bucket, de ponto de acesso ou de conta. No exemplo a seguir, a ação é `s3:GetObject`.

1. Atualize a política alterando a declaração `Deny` para permitir que o usuário tenha o acesso necessário. Por exemplo, é possível atualizar a declaração `Deny` para usar a chave de condição `aws:PrincipalAccount` com o operador de condição `StringNotEquals` e permitir o acesso da entidade principal específica, conforme mostrado em [Exemplo 7: excluir determinadas entidades principais de uma declaração `Deny`](amazon-s3-policy-keys.md#example-exclude-principal-from-deny-statement). Para ter mais informações sobre como atualizar a política baseada em recursos, consulte [Políticas baseadas no recurso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) e [Editar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) *no Guia do usuário do IAM*.

   Talvez você também precise ajustar a configuração `RestrictPublicBuckets` do Bloqueio de Acesso Público para o bucket, o ponto de acesso ou a conta. Para obter mais informações, consulte [Acesso negado devido a configurações do Bloqueio de Acesso Público](#access-denied-bpa-examples) e [Configurar o bloqueio de acesso público para seus buckets do S3](configuring-block-public-access-bucket.md).

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in a resource-based policy
```

### Acesso negado devido a políticas baseadas em identidade: negação implícita
<a name="access-denied-identity-based-policy-examples-implicit"></a>

1. Verifique se falta uma instrução `Allow` para a ação em políticas baseadas em identidade anexadas à identidade. Para o exemplo a seguir, a ação é `s3:GetObject` anexada ao usuário `MaryMajor`.

1. Atualize a política adicionando a instrução `Allow`. Para ter mais informações, consulte [Políticas baseadas em identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) e [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject because no identity-based policy allows the s3:GetObject action
```

### Acesso negado devido às políticas baseadas em identidade: negação explícita
<a name="access-denied-identity-based-policy-examples-explicit"></a>

1. Verifique se há uma instrução `Deny` explícita para a ação em políticas baseadas em identidade anexadas à identidade. Para o exemplo a seguir, a ação é `s3:GetObject` anexada ao usuário `MaryMajor`.

1. Atualize a política alterando a declaração `Deny` para permitir que o usuário tenha o acesso necessário. Por exemplo, é possível atualizar a declaração `Deny` para usar a chave de condição `aws:PrincipalAccount` com o operador de condição `StringNotEquals` e permitir o acesso da entidade principal específica, conforme mostrado em [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) no *Guia do usuário do IAM*. Para ter mais informações, consulte [Políticas baseadas em identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) e [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*.

```
User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
an explicit deny in an identity-based policy
```

### Acesso negado devido a configurações do Bloqueio de Acesso Público
<a name="access-denied-bpa-examples"></a>

O recurso Bloqueio de acesso público do Amazon S3 fornece configurações para pontos de acesso, buckets e contas para ajudar você a gerenciar o acesso público aos recursos do Amazon S3. Para obter mais informações sobre como o Amazon S3 define “público”, consulte [O significado de "público"](access-control-block-public-access.md#access-control-block-public-access-policy-status). 

Por padrão, novos buckets, pontos de acesso e objetos não permitem acesso público. No entanto, os usuários podem modificar políticas de bucket, políticas de ponto de acesso, políticas do usuário do IAM, permissões de objeto ou listas de controle de acesso (ACLs) para permitir acesso público. As configurações do Bloqueio de Acesso Público do S3 substituem essas políticas, permissões e ACLs. Desde abril de 2023, todas as configurações do Bloqueio de Acesso Público estão habilitadas por padrão para novos buckets. 

Ao receber uma solicitação para acessar um bucket ou um objeto, o Amazon S3 determina se o bucket ou a conta do proprietário do bucket tem uma configuração do Bloqueio de acesso público aplicada. Se a solicitação foi feita por meio de um ponto de acesso, o Amazon S3 também verificará se há configurações do Bloqueio de acesso público para o ponto de acesso. Caso haja uma configuração do Bloqueio de acesso público que proíba o acesso solicitado, o Amazon S3 rejeitará a solicitação.

O Bloqueio de acesso público do Amazon S3 fornece quatro configurações. Essas configurações são independentes e podem ser usadas em qualquer combinação. Cada configuração pode ser aplicada a um ponto de acesso, a um bucket ou a uma conta inteira da AWS. Se as configurações do Bloqueio de acesso público para o ponto de acesso, o bucket ou a conta forem diferentes, o Amazon S3 aplicará a combinação mais restritiva das configurações de ponto de acesso, bucket e conta.

Quando o Amazon S3 avalia se uma operação é proibida por uma configuração do Bloqueio de acesso público, ela rejeita qualquer solicitação que viole uma configuração de ponto de acesso, bucket ou conta.

As quatro configurações fornecidas pelo Bloqueio de acesso público do Amazon S3 são as seguintes: 
+ `BlockPublicAcls`: essa configuração se aplica às solicitações `PutBucketAcl`, `PutObjectAcl`, `PutObject`, `CreateBucket`, `CopyObject` e `POST Object`. A configuração `BlockPublicAcls` causa o seguinte comportamento: 
  + As chamadas `PutBucketAcl` e `PutObjectAcl` falharão se a lista de controle de acesso (ACL) especificada for pública.
  + As chamadas `PutObject` falharão se a solicitação incluir uma ACL pública.
  + Se essa configuração for aplicada a uma conta, as chamadas `CreateBucket` falharão com uma resposta HTTP `400` (`Bad Request`) se a solicitação incluir uma ACL pública.

  Por exemplo, quando o acesso é negado para uma solicitação `CopyObject` devido à configuração `BlockPublicAcls`, você recebe a seguinte mensagem: 

  ```
  An error occurred (AccessDenied) when calling the CopyObject operation: 
  User: arn:aws:sts::123456789012:user/MaryMajor is not authorized to 
  perform: s3:CopyObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
  because public ACLs are prevented by the BlockPublicAcls setting in S3 Block Public Access.
  ```
+ `IgnorePublicAcls`: a configuração `IgnorePublicAcls` faz o Amazon S3 ignorar todas as ACLs públicas em um bucket e todos os objetos contidos. Se a permissão da solicitação for concedida somente por uma ACL pública, a configuração `IgnorePublicAcls` rejeitará a solicitação.

  Qualquer negação resultante da configuração `IgnorePublicAcls` é implícita. Por exemplo, se `IgnorePublicAcls` negar uma solicitação `GetObject` devido a uma ACL pública, você receberá a seguinte mensagem: 

  ```
  User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
  s3:GetObject because no resource-based policy allows the s3:GetObject action
  ```
+ `BlockPublicPolicy`: essa configuração se aplica às solicitações `PutBucketPolicy` e `PutAccessPointPolicy`. 

  A configuração `BlockPublicPolicy` para um bucket faz com que o Amazon S3 rejeite chamadas para `PutBucketPolicy` caso a política de bucket especificada permita acesso público. A configuração também faz com que o Amazon S3 rejeite chamadas a `PutAccessPointPolicy` para todos os pontos de acesso na mesma conta do bucket caso a política especificada permita acesso público.

  A configuração `BlockPublicPolicy` para um ponto de acesso faz com que o Amazon S3 rejeite chamadas para `PutAccessPointPolicy` e `PutBucketPolicy` feitas por meio do ponto de acesso caso a política especificada (para o ponto de acesso ou o bucket subjacente) permita acesso público.

  Por exemplo, quando o acesso é negado em uma solicitação `PutBucketPolicy` devido à configuração `BlockPublicPolicy`, você recebe a seguinte mensagem: 

  ```
  An error occurred (AccessDenied) when calling the PutBucketPolicy operation: 
  User: arn:aws:sts::123456789012:user/MaryMajor is not authorized to 
  perform: s3:PutBucketPolicy on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" 
  because public policies are prevented by the BlockPublicPolicy setting in S3 Block Public Access.
  ```
+ `RestrictPublicBuckets`: a configuração `RestrictPublicBuckets` restringe o acesso a um ponto de acesso ou a um bucket com uma política pública apenas a entidades principais do AWS service (Serviço da AWS) e a usuários autorizados dentro da conta do proprietário do bucket e da conta do proprietário do ponto de acesso. Essa configuração bloqueia todo acesso entre contas ao ponto de acesso ou ao bucket (exceto entidades principais do AWS service (Serviço da AWS)), mas continua permitindo que usuários na conta gerenciem o ponto de acesso ou o bucket. Essa configuração também rejeita todas as chamadas anônimas (ou não assinadas).

  Qualquer negação resultante da configuração `RestrictPublicBuckets` é explícita. Por exemplo, se `RestrictPublicBuckets` negar uma solicitação `GetObject` devido a uma política de acesso público ou bucket público, você receberá a seguinte mensagem: 

  ```
  User: arn:aws:iam::123456789012:user/MaryMajor is not authorized to perform: 
  s3:GetObject on resource: "arn:aws:s3:::amzn-s3-demo-bucket1/object-name" with 
  an explicit deny in a resource-based policy
  ```

Para ter mais informações sobre essas configurações, consulte [Configurações do bloqueio de acesso público](access-control-block-public-access.md#access-control-block-public-access-options). Para revisar e atualizar essas configurações, consulte [Configurar o bloqueio de acesso público](access-control-block-public-access.md#configuring-block-public-access).

## Acesso negado devido a configurações do pagamento pelo solicitante
<a name="access-denied-requester-pays"></a>

Se o bucket do Amazon S3 que você está tentando acessar tiver o recurso de pagamento pelo solicitante habilitado, você precisará ter certeza de que está transmitindo os parâmetros de solicitação corretos ao fazer solicitações para esse bucket. O recurso de pagamento pelo solicitante no Amazon S3 permite que o solicitante, em vez do proprietário do bucket, pague os custos de transferência de dados e de solicitação para acessar objetos no bucket. Quando o pagamento pelo solicitante está habilitado para um bucket, o proprietário do bucket não recebe cobrança pelas solicitações feitas por outras contas da AWS.

Se fizer uma solicitação a um bucket com o pagamento pelo solicitante habilitado sem passar os parâmetros necessários, você receberá um erro Access Denied (403 Forbidden). Para acessar objetos em um bucket com o pagamento pelo solicitante habilitado, você deve fazer o seguinte: 

1. Ao fazer solicitações usando a AWS CLI, você deve incluir o parâmetro `--request-payer requester`. Por exemplo, para copiar um objeto com a chave `object.txt` localizada no bucket `s3://amzn-s3-demo-bucket/` do S3 para um local na sua máquina local, você também deve passar o parâmetro `--request-payer requester` se esse bucket tiver o recurso de pagamento pelo solicitante habilitado. 

   ```
   aws s3 cp s3://amzn-s3-demo-bucket/object.txt /local/path \
   --request-payer requester
   ```

1. Ao fazer solicitações programáticas usando um SDK da AWS, defina o cabeçalho `x-amz-request-payer` com o valor `requester`. Para ver um exemplo, consulte [Fazer download de objetos de buckets de Pagamento pelo solicitante](ObjectsinRequesterPaysBuckets.md).

1. O usuário ou o perfil do IAM que está fazendo a solicitação deve ter as permissões necessárias para acessar o bucket de pagamento pelo solicitante, como as permissões `s3:ListBucket` e `s3:GetObject`.

Ao incluir o parâmetro `--request-payer requester` ou definir o cabeçalho `x-amz-request-payer`, você está informando ao Amazon S3 que você, solicitante, pagará os custos associados ao acesso aos objetos no bucket com o pagamento pelo solicitante habilitado. Isso evitará o erro Access Denied (403 Forbidden).

## Políticas de bucket e políticas do IAM
<a name="bucket-iam-policies"></a>

### Operações no nível do bucket
<a name="troubleshoot-403-bucket-level-ops"></a>

Se não houver uma política de bucket em vigor, o bucket permitirá implicitamente solicitações de qualquer identidade do AWS Identity and Access Management (IAM) na conta do proprietário do bucket. O bucket também nega implicitamente solicitações de qualquer outra identidade do IAM de qualquer outra conta e solicitações anônimas (não assinadas). No entanto, se não houver uma política do usuário do IAM em vigor, o solicitante (a menos que seja o usuário-raiz da Conta da AWS) será implicitamente impedido de fazer qualquer solicitação. Para obter mais informações sobre essa lógica de avaliação, consulte [Determinar se uma solicitação é negada ou permitida em uma conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) no *Guia do usuário do IAM*.

### Operações no nível do objeto
<a name="troubleshoot-403-object-level-ops"></a>

Se o objeto pertencer à conta proprietária do bucket, a política de bucket e a política de usuário do IAM funcionarão da mesma forma para operações no nível do objeto e para operações no nível do bucket. Por exemplo, se não houver uma política de bucket em vigor, o bucket permitirá implicitamente solicitações de objeto de qualquer identidade do IAM na conta do proprietário do bucket. O bucket também nega implicitamente solicitações de objeto de qualquer outra identidade do IAM de qualquer outra conta e solicitações anônimas (não assinadas). No entanto, se não houver uma política de usuário do IAM em vigor, o solicitante (a menos que seja o usuário-raiz da Conta da AWS) será implicitamente impedido de fazer qualquer solicitação de objeto.

Se o objeto pertencer a uma conta externa, o acesso ao objeto só poderá ser concedido por meio de listas de controle de acesso (ACLs) do objeto. A política de bucket e a política de usuário do IAM ainda podem ser usadas para negar solicitações de objeto. 

Portanto, para garantir que a política de bucket ou a política de usuário do IAM não esteja causando um erro de Acesso negado (403 Proibido), verifique se os seguintes requisitos são atendidos:
+ Para acesso à mesma conta, não deve haver uma declaração `Deny` explícita contra o solicitante ao qual você está tentando conceder permissões, seja na política de bucket ou na política de usuário do IAM. Se você quiser conceder permissões usando somente a política de bucket e a política de usuário do IAM, deve haver pelo menos uma declaração `Allow` explícita em uma dessas políticas.
+ Para acesso entre contas, não deve haver uma declaração `Deny` explícita ao solicitante ao qual você está tentando conceder permissões, seja na política de bucket ou na política do usuário do IAM. Para conceder permissões entre contas usando somente a política de bucket e a política do usuário do IAM, a política do bucket e a política do usuário do IAM do solicitante devem incluir uma declaração `Allow` explícita.

**nota**  
As declarações `Allow` em uma política de bucket se aplicam somente a objetos que [pertencem à mesma conta proprietária do bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html). No entanto, as declarações `Deny` em uma política de bucket se aplicam a todos os objetos, independentemente da propriedade dele. 

**Para revisar ou editar a política de bucket**
**nota**  
Para visualizar ou editar uma política de bucket, é necessário ter a permissão `s3:GetBucketPolicy`.

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o nome do bucket para o qual você deseja visualizar ou editar uma política de bucket.

1. Escolha a aba **Permissões**.

1. Em **Bucket policy** (Política de bucket), escolha **Edit** (Editar). A página **Edit bucket policy** (Editar política de bucket) é exibida.

Para revisar ou editar a política de bucket usando a AWS Command Line Interface (AWS CLI), use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html).

**nota**  
Se seu acesso a um bucket for bloqueado devido a uma política de bucket incorreta, [faça login no Console de gerenciamento da AWS usando as credenciais de usuário-raiz da Conta da AWS.](https://docs.aws.amazon.com/signin/latest/userguide/introduction-to-root-user-sign-in-tutorial.html) Para recuperar o acesso ao bucket, exclua a política de bucket incorreta usando as credenciais de usuário-raiz da Conta da AWS.

### Dicas para verificar permissões
<a name="troubleshoot-403-tips"></a>

Para verificar se o solicitante tem as permissões adequadas para realizar uma operação do Amazon S3, tente o seguinte:
+ Identifique o solicitante. Se for uma solicitação não assinada, será uma solicitação anônima sem uma política de usuário do IAM. Se for uma solicitação que use um URL pré-assinado, a política do usuário será a mesma do perfil ou do usuário do IAM que assinou a solicitação.
+ Verifique se você está usando o perfil ou usuário do IAM correto. É possível verificar o perfil ou usuário do IAM no canto superior direito doConsole de gerenciamento da AWS ou usando o comando [https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html).
+ Verifique as políticas do IAM relacionadas ao perfil ou usuário do IAM. É possível usar um dos seguintes métodos:
  + [Testar as políticas do IAM com o simulador de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).
  + Analise os diferentes [tipos de política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).
+ Se necessário, [edite a política de usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html).
+ Veja os seguintes exemplos de políticas que negam ou permitem explicitamente o acesso:
  + Política de usuário do IAM de permissão explícita: [IAM: permite e nega acesso a vários serviços de forma programática e no console](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam_multiple-services-console.html)
  + Política de bucket de permissão explícita: [Conceder permissões a várias contas para fazer upload de objetos ou definir ACLs de objetos para acesso público](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-acl-1)
  + Política de usuário do IAM de negação explícita: [AWS: negar acesso àAWS com base na Região da AWS solicitada](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-requested-region.html)
  + Política de bucket de negação explícita: [Exigir SSE-KMS para todos os objetos gravados em um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-encryption-1)

## Configurações de ACL do Amazon S3
<a name="troubleshoot-403-acl-settings"></a>

Ao verificar as configurações de ACL, primeiro [revise a configuração de propriedade de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-retrieving.html) para verificar se as ACLs estão ativadas no bucket. Esteja ciente de que as permissões de ACL podem ser usadas somente para conceder permissões e não podem ser usadas para rejeitar solicitações. Também não é possível usar ACLs para conceder acesso a solicitantes que são rejeitados por negações explícitas nas políticas de bucket ou nas políticas do usuário do IAM.

### A configuração de propriedade de objeto está definida como “Imposto pelo proprietário do bucket”
<a name="troubleshoot-403-object-ownership-1"></a>

Se a configuração **Imposto pelo proprietário do bucket** estiver habilitada, é improvável que as configurações de ACL causem um erro de acesso negado (403 proibido), pois essa configuração desabilita todas as ACLs que se aplicam ao bucket e aos objetos. **Imposto pelo proprietário do bucket** é a configuração padrão (e recomendada) para os buckets do Amazon S3.

### A configuração de propriedade de objeto está definida como “Proprietário do bucket preferido” ou “Autor do objeto”
<a name="troubleshoot-403-object-ownership-2"></a>

As permissões de ACL ainda são válidas com a configuração **Proprietário do objeto preferido** ou a configuração **Autor do objeto**. Há dois tipos de ACLs: ACLs de bucket e ACLs de objeto. Para ver as diferenças entre esses dois tipos de ACLs, consulte [Mapeamento das permissões da ACL e das permissões da política de acesso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping).

Dependendo da ação da solicitação rejeitada, [verifique as permissões de ACL para o bucket ou objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html):
+ Se o Amazon S3 rejeitou uma `LIST`, um objeto `PUT`, `GetBucketAcl` ou uma solicitação `PutBucketAcl`, [revise as permissões de ACL para o bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html).
**nota**  
Não é possível conceder permissões de objeto `GET` com as configurações de ACL do bucket.
+ Se o Amazon S3 rejeitou uma solicitação `GET` em um objeto do S3 ou uma solicitação [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html), [revise as permissões de ACL para o objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html).
**Importante**  
Se a conta da que possui o objeto for diferente da conta da que possui o bucket, o acesso ao objeto não será controlado pela política de bucket.

### Solução de problemas de um erro de acesso negado (403 proibido) de uma solicitação de objeto `GET` durante a propriedade de objetos entre contas
<a name="troubleshoot-403-object-ownership-tips"></a>

Examine as [configurações de propriedade de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html#object-ownership-overview) do bucket para determinar o proprietário do objeto. Se você tiver acesso às [ACLs do objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html), também poderá verificar a conta do proprietário do objeto. (Para visualizar a conta do proprietário do objeto, revise a configuração da ACL do objeto no console do Amazon S3.) Como alternativa, você também pode fazer uma solicitação `GetObjectAcl` a fim de encontrar a [ID canônica](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) do proprietário do objeto para verificar a conta do proprietário do objeto. Por padrão, as ACLs concedem permissões explícitas para solicitações `GET` à conta do proprietário do objeto.

Depois de confirmar que o proprietário do objeto é diferente do proprietário do bucket, dependendo do caso de uso e nível de acesso, escolha um dos seguintes métodos para ajudar a resolver o erro Acesso negado (403 proibido):
+ **Desative as ACLs (recomendado)**: esse método se aplicará a todos os objetos e poderá ser executado pelo proprietário do bucket. Esse método concede automaticamente ao proprietário do bucket propriedade e controle total de todos os objetos do bucket. Antes de implementar esse método, verifique os [pré-requisitos para desativar as ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-migrating-acls-prerequisites.html). Para ter informações sobre como configurar o bucket no modo **Imposto pelo proprietário do bucket** (recomendado), consulte [Configurar propriedade de objeto em um bucket existente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html).
**Importante**  
Para evitar um erro de acesso negado (403 proibido), migre as permissões da ACL para uma política de bucket antes de desativar as ACLs. Para obter mais informações, consulte [Exemplos de políticas de bucket para migrar de permissões de ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-migrating-acls-prerequisites.html#migrate-acl-permissions-bucket-policies).
+ **Altere o proprietário do objeto para o proprietário do bucket**: esse método pode ser aplicado a objetos individuais, mas somente o proprietário do objeto (ou um usuário com as permissões apropriadas) pode alterar a propriedade de um objeto. Custos adicionais de `PUT` podem ser aplicados. (Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).) Esse método concede ao proprietário do bucket a propriedade total do objeto, permitindo que ele controle o acesso ao objeto por meio de uma política de bucket. 

  Para alterar a propriedade do objeto, siga um destes procedimentos:
  + Você (o proprietário do bucket) pode [copiar o objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html#CopyingObjectsExamples) de volta para o bucket. 
  + É possível alterar a configuração de propriedade de objeto do bucket para a configuração **Proprietário do bucket preferido**. Se o versionamento estiver desativado, os objetos no bucket serão substituídos. Se o versionamento estiver ativado, versões duplicadas do mesmo objeto aparecerão no bucket, e o proprietário do bucket poderá [definir uma regra de ciclo de vida para expirar](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-expire-general-considerations.html). Para obter instruções sobre como alterar a configuração de propriedade de objetos, consulte [Configurar propriedade de objeto em um bucket existente](object-ownership-existing-bucket.md).
**nota**  
Quando você atualiza a configuração de propriedade de objeto para **Proprietário do bucket preferido**, a configuração só é aplicada a novos objetos que são enviados ao bucket.
  + É possível fazer com que o proprietário do objeto carregue o objeto novamente com a ACL `bucket-owner-full-control` do objeto predefinido. 
**nota**  
Para uploads entre contas, você também pode exigir a ACL `bucket-owner-full-control` do objeto predefinido na política de bucket. Para obter um exemplo de política de bucket, consulte [Conceder permissões entre contas para fazer upload de objetos garantindo que o proprietário do bucket tenha controle total](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-acl-2).
+ **Mantenha o gravador do objeto como proprietário do objeto**: esse método não altera o proprietário do objeto, mas permite que você conceda acesso aos objetos individualmente. Para conceder acesso a um objeto, você deve ter a permissão `PutObjectAcl` para o objeto. Depois, para corrigir o erro Acesso negado (403 proibido), adicione o solicitante como [beneficiário](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee) para acessar o objeto nas ACLs do objeto. Para obter mais informações, consulte [Configurar ACLs](managing-acls.md).

## Configurações do bloqueio de acesso público do S3
<a name="troubleshoot-403-bpa"></a>

Se a solicitação com falha envolver acesso público ou políticas públicas, confira as configurações do Bloqueio de Acesso Público do S3 na conta, no bucket ou no ponto de acesso. Para ter mais informações sobre como solucionar erros de acesso negado relacionados a configurações do Bloqueio de Acesso Público do S3, consulte [Acesso negado devido a configurações do Bloqueio de Acesso Público](#access-denied-bpa-examples).

## Configurações de criptografia do Amazon S3
<a name="troubleshoot-403-encryption"></a>

O Amazon S3 é compatível com a criptografia do lado do servidor no bucket. A criptografia do lado do servidor é a criptografia de dados em seu destino pela aplicação ou serviço que os recebe. O Amazon S3 criptografa os dados no nível do objeto no momento em que os grava em discos nos datacenters da AWS e descriptografa-os quando você os acessa. 

Por padrão, o Amazon S3 agora aplica a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) como nível básico de criptografia para cada bucket no Amazon S3. O Amazon S3 também permite que você especifique o método de criptografia do lado do servidor ao fazer upload de objetos.

**Para revisar as configurações de criptografia e o status da criptografia do lado do servidor do bucket**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o bucket para o qual você deseja verificar as configurações de criptografia.

1. Escolha a guia **Properties (Propriedades)**.

1. Role para baixo até a seção **Criptografia padrão** e veja as configurações de **Tipo de criptografia**.

Para verificar as configurações de criptografia usando a AWS CLI, use o comando [https://docs.aws.amazon.com/cli/latest/reference/s3api/get-bucket-encryption.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-bucket-encryption.html).

**Para verificar o status de criptografia de um objeto**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o nome do bucket que contém o objeto.

1. Na lista **Objetos**, escolha o nome do objeto ao qual você deseja adicionar ou no qual deseja alterar a criptografia. 

   A página de detalhes do objeto é exibida.

1. Role para baixo até a seção **Configurações de criptografia do lado do servidor** para ver as configurações de criptografia do lado do servidor do objeto.

Para verificar o status de criptografia do objeto usando a AWS CLI, use o comando [https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html#examples](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html#examples).

### Requisitos de permissões e criptografia
<a name="troubleshoot-403-encryption-requirements"></a>

O Amazon S3 agora é compatível com três tipos de criptografia do lado do servidor.
+ Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3)
+ Criptografia no lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS)
+ Criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C)

Com base nas configurações de criptografia, verifique se os seguintes requisitos de permissões são atendidos:
+ **SSE-S3**: nenhuma permissão extra é necessária.
+ **SSE-KMS (com uma chave gerenciada pelo cliente)**: para fazer upload de objetos, é necessária a permissão `kms:GenerateDataKey` no AWS KMS key. Para baixar objetos e fazer uploads de objetos em várias partes, é necessária a permissão `kms:Decrypt` na chave do KMS.
+ **SSE-KMS (com um Chave gerenciada pela AWS)**: o solicitante deve ser da mesma conta que possui a chave do KMS `aws/s3`. O solicitante também deve ter as permissões corretas do Amazon S3 para acessar o objeto.
+ **SSE-C (com uma chave fornecida pelo cliente)**: nenhuma permissão adicional é necessária. É possível configurar a política de bucket para [exigir e restringir a criptografia do lado do servidor com chaves de criptografia fornecidas pelo cliente](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key) para objetos no bucket.

Se o objeto estiver criptografado com uma chave gerenciada pelo cliente, certifique-se de que a política de chaves do KMS permita que você realize as ações `kms:GenerateDataKey` ou `kms:Decrypt`. Para obter instruções sobre como verificar a política de chaves do KMS, consulte [Visualizar uma política de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-viewing.html) no *Guia do desenvolvedor do AWS Key Management Service*.

## Configurações do bloqueio de objetos do S3
<a name="troubleshoot-403-object-lock"></a>

Se o bucket tiver o [Bloqueio de Objetos do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) habilitado, o objeto estiver protegido por um [período de retenção](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-overview.html#object-lock-retention-periods) ou uma [restrição legal](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-overview.html#object-lock-legal-holds) e você tentar excluir o objeto, o Amazon S3 exibirá uma das seguintes respostas, dependendo de como você tentou excluir o objeto:
+ **Solicitação de `DELETE` permanente**: se você emitiu uma solicitação `DELETE` permanente (uma solicitação que especifica um ID de versão), o Amazon S3 exibirá um erro Access Denied (`403 Forbidden`) quando você tentar excluir o objeto.
+ **Solicitação `DELETE` simples**: se você emitiu uma solicitação `DELETE` simples (que não especifica um versão de ID), o Amazon S3 exibirá uma resposta `200 OK` inserirá um [marcador de exclusão](DeleteMarker.md) no bucket, e esse marcador se tornará a versão atual do objeto com um novo ID.

**Para verificar se o bucket tem o bloqueio de objetos ativado**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets**.

1. Na lista **Buckets**, escolha o nome do bucket que deseja revisar.

1. Escolha a guia **Properties (Propriedades)**.

1. Role para baixo até a seção **Bloqueio de objetos**. Verifique se a configuração de **Bloqueio de objetos** está **Ativada** ou **Desativada**.

Para determinar se o objeto está protegido por um período de retenção ou uma retenção legal, [veja as informações de bloqueio](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-view) do objeto. 

Se o objeto estiver protegido por um período de retenção ou uma retenção legal, verifique o seguinte:
+ Se a versão do objeto estiver protegida pelo modo de retenção de conformidade, não há como excluí-lo permanentemente. Uma solicitação `DELETE` permanente de qualquer solicitante, incluindo o usuário-raiz da Conta da AWS, vai gerar um erro de Acesso negado (403 Proibido). Além disso, lembre-se de que quando você envia uma solicitação `DELETE` para um objeto protegido pelo modo de retenção de conformidade, o Amazon S3 cria um [marcador de exclusão](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html) para o objeto.
+ Se a versão do objeto estiver protegida com o modo de retenção de governança e você tiver a permissão `s3:BypassGovernanceRetention`, poderá ignorar a proteção e excluir permanentemente a versão. Para obter mais informações, consulte [Ignorar modo de governança](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-bypass).
+ Se a versão do objeto estiver protegida por uma retenção legal, uma solicitação `DELETE` permanente poderá resultar em um erro de Acesso negado (403 proibido). Para excluir permanentemente a versão do objeto, é necessário remover a retenção legal da versão do objeto. Para remover uma retenção legal, você deve ter a permissão `s3:PutObjectLegalHold`. Para obter mais informações como remover uma retenção legal, consulte [Configurar a funcionalidade Bloqueio de Objetos do S3](object-lock-configure.md).

## Políticas de VPC endpoint
<a name="troubleshoot-403-vpc"></a>

Se você estiver acessando o Amazon S3 por meio de um endpoint da nuvem privada virtual (VPC), verifique se a política de endpoint da VPC não está impedindo o acesso aos recursos do Amazon S3. Por padrão, a política de endpoint da VPC permite todas as solicitações ao Amazon S3. Também é possível configurar a política de endpoint da VPC para restringir determinadas solicitações. Para ter informações sobre como conferir a política de endpoint da VPC, consulte os seguintes recursos: 
+ [Acesso negado devido a uma política de endpoint da VPC: negação implícita](#access-denied-vpc-endpoint-examples-implicit)
+ [Acesso negado devido a uma política de endpoint da VPC: negação explícita](#access-denied-vpc-endpoint-examples-explicit)
+ [Control access to VPC endpoints by using endpoint policies](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) no *Guia do AWS PrivateLink*

## AWS OrganizationsPolíticas do
<a name="troubleshoot-403-orgs"></a>

Se a sua Conta da AWS pertence a uma organização, as políticas do AWS Organizations podem impedir que você acesse os recursos do Amazon S3. Por padrão, as políticas do AWS Organizations não bloqueiam nenhuma solicitação ao Amazon S3. No entanto, verifique se as suas políticas do AWS Organizations não foram configuradas para bloquear o acesso aos buckets do S3. Para ter instruções sobre como conferir as políticas do AWS Organizations, consulte os seguintes recursos: 
+ [Acesso negado devido a uma política de controle de serviço: negação implícita](#access-denied-scp-examples-implicit)
+ [Acesso negado devido a uma política de controle de serviço: negação explícita](#access-denied-scp-examples-explicit)
+ [Acesso negado devido a uma política de controle de recurso: negação explícita](#access-denied-rcp-examples-explicit)
+ [Listing all policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_info-operations.html#list-all-pols-in-org) no *Guia do usuário do AWS Organizations*

Além disso, se você configurou incorretamente a política de bucket para uma conta-membro a fim de negar a todos os usuários o acesso ao bucket do S3, é possível desbloquear o bucket iniciando uma sessão privilegiada para a conta-membro no IAM. Depois de iniciar uma sessão privilegiada, você pode excluir a política de bucket configurada incorretamente para recuperar o acesso ao bucket. Consulte mais informações em [Perform a privileged task on an AWS Organizations member account](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user-privileged-task.html) no *Guia do usuário do AWS Identity and Access Management*. 

## Acesso à distribuição do CloudFront
<a name="troubleshoot-403-cloudfront"></a>

Se você receber um erro Access Denied (403 Forbidden) ao tentar acessar seu site estático do S3 por meio do CloudFront, verifique estes problemas comuns:
+ **Você tem o formato correto de nome de domínio de origem?**
  + Você deve usar o formato de endpoint do site do S3 (bucket-name.s3-website-region.amazonaws.com) em vez do endpoint da API REST.
  + Verifique se a hospedagem do site estático está habilitada em seu bucket.
+ **Sua política de bucket permite acesso ao CloudFront?**
  + Garanta que sua política de bucket inclua permissões para a identidade de acesso de origem (OAI) ou controle de acesso de origem (OAC) da sua distribuição do CloudFront.
  + Verifique se a política inclui as permissões s3:GetObject necessárias.

Para etapas e configurações adicionais de solução de problemas, incluindo configurações de página de erro e configurações de protocolo, consulte [Estou usando um endpoint do site do S3 como origem de minha distribuição do CloudFront. Por que estou recebendo erros 403 Access Denied (Acesso negado)](https://repost.aws/knowledge-center/s3-website-cloudfront-error-403)? no Centro de Conhecimento do AWS re:Post.

**nota**  
Esse erro é diferente dos erros 403 que você pode receber ao acessar o S3 diretamente. Para problemas específicos do CloudFront, verifique as configurações de distribuição do CloudFront e as configurações do S3.

## Configurações do ponto de acesso
<a name="troubleshoot-403-access-points"></a>

Se você receber um erro de acesso negado (403 proibido) ao fazer solicitações por meio de Pontos de Acesso Amazon S3, talvez seja necessário verificar o seguinte: 
+ As configurações dos pontos de acesso
+ A política de usuário do IAM usada para os pontos de acesso
+ A política de bucket usada para gerenciar ou configurar os pontos de acesso entre contas

**Políticas e configurações de pontos de acesso**
+ Ao criar um ponto de acesso, é possível designar **Internet** ou **VPC** como a origem da rede. Se a origem da rede for definida somente como VPC, o Amazon S3 rejeitará todas as solicitações feitas ao ponto de acesso que não sejam originadas da VPC especificada. Para verificar a origem da rede do ponto de acesso, consulte [Criar pontos de acesso restritos a uma nuvem privada virtual](access-points-vpc.md).
+ Com os pontos de acesso, você também pode definir configurações personalizadas do bloqueio de acesso público, que funcionam de forma semelhante às configurações desse recurso no nível do bucket ou da conta. Para verificar as configurações personalizadas do bloqueio de acesso público, consulte [Gerenciar o acesso público a pontos de acesso para buckets de uso geral](access-points-bpa-settings.md).
+ Para fazer solicitações bem-sucedidas ao Amazon S3 usando pontos de acesso, o solicitante deve ter as permissões necessárias do IAM. Para obter mais informações, consulte [Configurar políticas do IAM para uso de pontos de acesso](access-points-policies.md).
+ Se a solicitação envolver pontos de acesso entre contas, o proprietário do bucket deve ter atualizado a política do bucket para autorizar solicitações do ponto de acesso. Para obter mais informações, consulte [Conceder permissões para pontos de acesso entre contas](access-points-policies.md#access-points-cross-account).

Se o erro Acesso negado (403 proibido) persistir depois de verificar todos os itens neste tópico, [recupere seu ID de solicitação do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/get-request-ids.html) e entre em contato com o Suporte para obter mais orientações.

## Recursos adicionais
<a name="troubleshoot-403-additional-resources"></a>

Para obter orientação adicional sobre os erros Access Denied (403 Forbidden), você pode conferir os seguintes recursos:
+ [Como solucionar erros 403 Acesso Negado do Amazon S3?](https://repost.aws/knowledge-center/s3-troubleshoot-403) no Centro de Conhecimento do AWS re:Post.
+ [Por que estou recebendo um erro “403 Forbidden” (Proibido) quando tento acessar um bucket ou objeto do Amazon S3?](https://repost.aws/knowledge-center/s3-403-forbidden-error) no Centro de Conhecimento do AWS re:Post.
+ [Como soluciono os erros 403 Acesso negado do meu bucket do Amazon S3 em que todos os recursos são da mesma Conta da AWS?](https://repost.aws/knowledge-center/s3-troubleshoot-403-resource-same-account) no Centro de Conhecimento do AWS re:Post.
+ [Como solucionar problemas de erros 403 Acesso negado em um bucket do Amazon S3 com acesso de leitura pública](https://repost.aws/knowledge-center/s3-troubleshoot-403-public-read)? no Centro de Conhecimento do AWS re:Post.
+ [Como soluciono os erros “SignatureDoesNotMatch” ou “403 Forbidden” nas solicitações de URL pré-assinadas do Amazon S3?](https://repost.aws/knowledge-center/s3-presigned-url-signature-mismatch) no Centro de Conhecimento do AWS re:Post.
+ [Por que recebo um erro de acesso negado para ListObjectsV2 quando executo o comando de sincronização no meu bucket do Amazon S3?](https://repost.aws/knowledge-center/s3-access-denied-listobjects-sync) no Centro de Conhecimento do AWS re:Post.
+ [Estou usando um endpoint do site do S3 como origem de minha distribuição do CloudFront. Por que estou recebendo erros 403 Access Denied (Acesso negado)?](https://repost.aws/knowledge-center/s3-website-cloudfront-error-403) no Centro de Conhecimento do AWS re:Post.

# AWSPolíticas gerenciadas da para o Amazon S3
<a name="security-iam-awsmanpol"></a>

Uma política gerenciada pela AWS é uma política independente criada e administrada pela AWS. As políticas gerenciadas pela AWS são criadas para fornecer permissões a vários casos de uso comuns a fim de que você possa começar a atribuir permissões a usuários, grupos e perfis.

Lembre-se de que as políticas gerenciadas pela AWS podem não conceder permissões de privilégio mínimo para casos de uso específicos, por estarem disponíveis para uso por todos os clientes da AWS. Recomendamos que você reduza ainda mais as permissões definindo as [ políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) que são específicas para seus casos de uso.

Não é possível alterar as permissões definidas em políticas gerenciadas pela AWS. Se a AWS atualiza as permissões definidas em um política gerenciada por AWS, a atualização afeta todas as identidades de entidades principais (usuários, grupos e perfis) às quais a política estiver vinculada. É provável que a AWS atualize uma política gerenciada por AWS quando um novo AWS service (Serviço da AWS) for lançado, ou novas operações de API forem disponibilizadas para os serviços existentes.

Para obter mais informações, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do IAM*.

## AWS Política gerenciada da: AmazonS3FullAccess
<a name="security-iam-awsmanpol-amazons3fullaccess"></a>

É possível anexar a política `AmazonS3FullAccess` às identidades do IAM. Essa política concede permissões que possibilitam acesso total ao Amazon S3.

Para visualizar as permissões para esta política, consulte [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor) no Console de gerenciamento da AWS.

## AWS Política gerenciada da: AmazonS3ReadOnlyAccess
<a name="security-iam-awsmanpol-amazons3readonlyaccess"></a>

É possível anexar a política `AmazonS3ReadOnlyAccess` às identidades do IAM. Esta política concede permissões que oferecem acesso somente leitura ao Amazon S3.

Para visualizar as permissões para esta política, consulte [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess$jsonEditor](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess$jsonEditor) no Console de gerenciamento da AWS.

## AWS Política gerenciada pela: AmazonS3ObjectLambdaExecutionRolePolicy
<a name="security-iam-awsmanpol-amazons3objectlambdaexecutionrolepolicy"></a>

Fornece às funções do AWS Lambda as permissões necessárias para enviar dados para o S3 Object Lambda quando solicitações são feitas para um ponto de acesso do S3 Object Lambda. Também concede permissões do Lambda para gravar nos logs do Amazon CloudWatch.

Para visualizar as permissões para esta política, consulte [https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$jsonEditor](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$jsonEditor) no Console de gerenciamento da AWS.

## AWS Política gerenciada pela: S3UnlockBucketPolicy
<a name="security-iam-awsmanpol-S3UnlockBucketPolicy"></a>

Se você configurou incorretamente a política de bucket para uma conta-membro a fim de negar a todos os usuários o acesso ao bucket do S3, você pode usar essa política gerenciada pela AWS (`S3UnlockBucketPolicy`) para desbloquear o bucket. Consulte mais informações sobre como remover uma política de bucket configurada incorretamente que impede que todas as entidades principais acessem um bucket do Amazon S3 em [Perform a privileged task on an AWS Organizations member account](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user-privileged-task.html) no *Guia do usuário do AWS Identity and Access Management*. 

## Atualizações do Amazon S3 para políticas gerenciadas pela AWS
<a name="security-iam-awsmanpol-updates"></a>

Visualize detalhes sobre atualizações em políticas gerenciadas pela AWS para o Amazon S3 desde que esse serviço começou a rastrear essas alterações.


| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  O Amazon S3 adicionou `S3UnlockBucketPolicy`  |  O Amazon S3 adicionou uma nova política gerenciada pela AWS chamada `S3UnlockBucketPolicy` para desbloquear um bucket e remover uma política de bucket configurada incorretamente que nega a todas as entidades principais acesso a um bucket do Amazon S3.  | 1.º de novembro de 2024 | 
|  O Amazon S3 adicionou permissões de descrição a `AmazonS3ReadOnlyAccess`.  |  O Amazon S3 adicionou permissões `s3:Describe*` a `AmazonS3ReadOnlyAccess`.  | 11 de agosto de 2023 | 
|  O Amazon S3 adicionou permissões do Lambda para objetos do S3 a `AmazonS3FullAccess` e `AmazonS3ReadOnlyAccess`  |  O Amazon S3 atualizou as políticas `AmazonS3FullAccess` e `AmazonS3ReadOnlyAccess` para incluir do Lambda para objetos do S3.  | 27 de setembro de 2021 | 
|  O Amazon S3 adicionou `AmazonS3ObjectLambdaExecutionRolePolicy`  |  O Amazon S3 adicionou uma nova política gerenciada pela AWSchamada `AmazonS3ObjectLambdaExecutionRolePolicy` que fornece permissões de funções Lambda para interagir com o S3 Object Lambda e gravar em logs do CloudWatch.  | 18 de agosto de 2021 | 
|  O Amazon S3 começou a monitorar as alterações  |  O Amazon S3 passou a controlar as alterações para as políticas gerenciadas pela AWS.  | 18 de agosto de 2021 | 