

# Autorizar operações de API de endpoint regional com o IAM
<a name="s3-express-security-iam"></a>

O AWS Identity and Access Management (IAM) é um AWS service (Serviço da AWS) que ajuda os administradores a controlar o acesso aos recursos da AWS de forma segura. Os administradores do IAM controlam quem pode se autenticar (se conectar) e ter autorização (permissões) para utilizar os recursos em buckets de diretório e operações do S3 Express One Zone. Você pode usar o IAM sem custo adicional. 

Por padrão, os usuários não têm permissões para os buckets de diretório. Para conceder permissões de acesso a buckets de diretório, você pode usar o IAM para criar usuários ou perfis e anexar permissões a essas identidades. Para obter mais informações sobre o 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*. 

Para fornecer acesso, você pode adicionar permissões aos usuários, grupos ou perfis das seguintes formas:
+ **Usuários e grupos no Centro de Identidade do AWS IAM**: crie um conjunto de permissões. Siga as instruções em [Criação de um conjunto de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-create-a-permission-set.html) no *Guia do usuário do Centro de Identidade do AWS IAM*.
+ **Usuários gerenciados no IAM por meio de um provedor de identidades**: crie um perfil para federação de identidades. Siga as instruções em [Criando um perfil para um provedor de identidades de terceiros (federação)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) no *Guia do Usuário do IAM*.
+ **Perfis e usuários do IAM**: crie um perfil que o usuário possa assumir. Siga as instruções em [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) no *Guia do usuário do IAM*.

Para obter mais informações sobre o IAM para a classe S3 Express One Zone, consulte os tópicos a seguir.

**Topics**
+ [Entidades principais](#s3-express-security-iam-principals)
+ [Recursos](#s3-express-security-iam-resources)
+ [Ações para buckets de diretório](#s3-express-security-iam-actions)
+ [Políticas baseadas em identidade do IAM para buckets de diretório](s3-express-security-iam-identity-policies.md)
+ [Exemplos de políticas para buckets de diretório](s3-express-security-iam-example-bucket-policies.md)

## Entidades principais
<a name="s3-express-security-iam-principals"></a>

Ao criar uma política baseada em recurso para conceder acesso aos buckets, você deve usar o elemento `Principal` para especificar a pessoa ou a aplicação que pode fazer uma solicitação de uma ação ou operação no respectivo recurso. Para políticas de bucket de diretório, você pode usar as seguintes entidades principais:
+ Uma conta da AWS
+ Um usuário do IAM
+ Um perfil do IAM
+ Um usuário federado

Para obter mais informações, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) no *Guia do usuário do IAM*.

## Recursos
<a name="s3-express-security-iam-resources"></a>

Os nomes de recurso da Amazon (ARNs) para buckets de diretório contêm o namespace `s3express`, a Região da AWS, o ID da conta da AWS e o nome do bucket de diretório, que inclui o ID da zona da AWS (um ID de zona de disponibilidade ou de zona local).

Para acessar e executar ações no bucket de diretório, você deve usar o seguinte formato de ARN:

```
arn:aws:s3express:region:account-id:bucket/base-bucket-name--zone-id--x-s3
```

Para acessar e executar ações no ponto de acesso para um bucket de diretório, você deve usar o seguinte formato de ARN:

```
arn:aws::s3express:region:account-id:accesspoint/accesspoint-basename--zone-id--xa-s3
```

Para obter mais informações sobre os ARNs, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) no *Guia do usuário do IAM*. Para obter mais informações sobre os recursos, consulte [Elementos de política JSON do IAM: Resource](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html) no *Guia do usuário do IAM*.

## Ações para buckets de diretório
<a name="s3-express-security-iam-actions"></a>

Em uma política baseada em identidade ou recurso do IAM, defina quais ações do S3 serão permitidas ou negadas. As ações correspondem a operações de API específicas. Com buckets de diretório, você deve usar o namespace do S3 Express One Zone, denominado `s3express`, para conceder permissões.

Quando você concede a permissão `s3express:CreateSession`, a operação de API `CreateSession` recupera um token de sessão temporário para todas as operações de API de endpoint zonal (em nível de objeto). O token de sessão retorna credenciais que são usadas para todas as outras operações de API de endpoint zonal. Por isso, você não concede permissões de acesso a operações de API zonais usando políticas do IAM. Em vez disso, `CreateSession` permite o acesso a todas as operações em nível de objeto. Consulte a lista de operações e permissões de API de endpoint zonal em [Autenticar e autorizar solicitações](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-authenticating-authorizing.html). 

Para saber mais sobre a operação de API `CreateSession`, consulte a [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) na *Referência da API do Amazon Simple Storage Service*.

Você pode especificar as seguintes ações no elemento `Action` de uma declaração de política do IAM. Use políticas para conceder permissões para executar uma operação na AWS. Ao usar uma ação em uma política, você geralmente permite ou nega acesso à operação de API com o mesmo nome. No entanto, em alguns casos, uma única ação controla o acesso a mais de uma operação de API. O acesso às ações no nível do bucket só pode ser concedido em políticas baseadas em identidade do IAM (usuário ou perfil), não em políticas de bucket.

Consulte mais informações sobre como configurar políticas de ponto de acesso em [Configurar políticas do IAM para usar pontos de acesso para buckets de diretório](access-points-directory-buckets-policies.md).

Para ter mais informações, consulte [Actions, resources, and condition keys for Amazon S3 Express](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3express.html). 

# Políticas baseadas em identidade do IAM para buckets de diretório
<a name="s3-express-security-iam-identity-policies"></a>

Antes de criar buckets de diretório, você deve conceder as permissões necessárias aos usuários ou perfis do AWS Identity and Access Management (IAM). Esse exemplo de política permite acesso à operação de API `CreateSession` (para uso com as operações de API do endpoint zonal [nível de objeto]) e a todas as operações de API do endpoint regional (nível de bucket). Essa política permite que a operação de API `CreateSession` seja usada com todos os buckets de diretório, mas as operações de API de endpoint regional só são permitidas para uso com o bucket de diretório especificado. Para usar esse exemplo de política, substitua os `user input placeholders` por suas próprias informações.

# Exemplos de políticas para buckets de diretório
<a name="s3-express-security-iam-example-bucket-policies"></a>

Esta seção fornece exemplos de políticas de bucket de diretório. Para usar essas políticas, substitua os `user input placeholders` por suas próprias informações.

O exemplo de política de bucket a seguir permite que o ID de Conta da AWS `111122223333` use a operação de API `CreateSession` para o bucket de diretório especificado. Quando nenhum modo de sessão for especificado a sessão será criada com o privilégio máximo permitido (tentando primeiro `ReadWrite` e, depois, `ReadOnly`, se a primeira não for permitida). Essa política concede acesso às operações de API de endpoint zonal (nível de objeto). 

**Example : política de bucket para permitir chamadas `CreateSession`**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteAccess",
            "Effect": "Allow",
            "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root"
                ]
            },
            "Action": [
                "s3express:CreateSession"
            ]
        }
    ]
}
```

**Example : política de bucket para permitir chamadas de `CreateSession` com uma sessão `ReadOnly`**  
O exemplo de política de bucket a seguir permite que o ID de Conta da AWS `111122223333` use a operação de API `CreateSession`. Essa política usa a chave de condição `s3express:SessionMode` com o valor `ReadOnly` para definir uma sessão somente leitura.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadOnlyAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "111122223333"
            },
            "Action": "s3express:CreateSession",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3express:SessionMode": "ReadOnly"
                }
            }
        }
    ]
}
```

**Example : política de bucket para permitir o acesso entre contas para chamadas de `CreateSession`**  
O exemplo de política de bucket a seguir permite que o ID de Conta da AWS `111122223333` use a operação de API `CreateSession` para o bucket de diretório especificado que pertence ao ID de Conta da AWS *`444455556666`*.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccount",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3express:CreateSession"
            ],
            "Resource": "arn:aws:s3express:us-west-2:444455556666:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3"
        }
    ]
}
```