

# Gerenciar políticas de bucket de diretório
<a name="directory-bucket-bucket-policy"></a>

É possível adicionar, excluir, atualizar e visualizar políticas de bucket para buckets de diretório do Amazon S3 usando o console do Amazon S3, os SDKs da AWS e a AWS CLI. Para obter mais informações, consulte os tópicos a seguir. Consulte mais informações sobre ações do AWS Identity and Access Management (IAM) compatíveis em [Autorizar operações de API de endpoint regional com o IAM](s3-express-security-iam.md). Para conferir exemplos de política para buckets de diretório, consulte [Exemplos de políticas para buckets de diretório](s3-express-security-iam-example-bucket-policies.md).

**Topics**
+ [Adicionar uma política de bucket](#directory-bucket-bucket-policy-add)
+ [Visualizar uma política de bucket](#directory-bucket-bucket-policy-view)
+ [Excluir uma política de bucket](#directory-bucket-bucket-policy-delete)

## Adicionar uma política de bucket
<a name="directory-bucket-bucket-policy-add"></a>

Para adicionar uma política de bucket a um bucket de diretório, você pode usar o console do Amazon S3, os SDKs da AWS ou a AWS CLI.

### Usar o console do S3
<a name="directory-bucket-bucket-policy-add-console"></a>

**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 diretórios**.

1. Na lista **Buckets de diretórios**, escolha o nome do bucket para o qual você deseja adicionar uma política.

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. Para gerar uma política automaticamente, escolha **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.

   Se você não quiser usar o gerador de políticas da AWS, poderá adicionar ou editar instruções JSON na seção **Política**.

   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 quiser 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. Escolha **Save changes** (Salvar alterações), o que levará você de volta à guia **Permissions** (Permissões). 

### Usar SDKs da AWS
<a name="directory-bucket-bucket-policy-add-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  
`PutBucketPolicy` AWS SDK for Java 2.x   

```
public static void setBucketPolicy(S3Client s3Client, String bucketName, String policyText) {
     
       //sample policy text
       /**
        * policy_statement = {
         *         'Version': '2012-10-17',
         *         'Statement': [
         *             {
         *                 'Sid': 'AdminPolicy',
         *                 'Effect': 'Allow',
         *                 'Principal': {
         *                     "AWS": "{{111122223333}}"
         *                 },
         *                 'Action': 's3express:*',
         *                 'Resource': 'arn:aws:s3express:{{region}}:{{111122223333}}:bucket/{{bucket-base-name}}--{{zone-id}}--x-s3'
         *             }
         *         ]
         *     }
         */
         System.out.println("Setting policy:");
         System.out.println("----");
         System.out.println(policyText);
         System.out.println("----");
         System.out.format("On Amazon S3 bucket: \"%s\"\n", bucketName);
         
         try {
             PutBucketPolicyRequest policyReq = PutBucketPolicyRequest.builder()
                     .bucket(bucketName)
                     .policy(policyText)
                     .build();
             s3Client.putBucketPolicy(policyReq);
             System.out.println("Done!");
         }    
         
         catch (S3Exception e) {
             System.err.println(e.awsErrorDetails().errorMessage());
             System.exit(1);
         }
    }
```

------

### Como usar o AWS CLI
<a name="directory-bucket-delete-cli"></a>

Este exemplo mostra como adicionar uma política de bucket a um bucket de diretório usando a AWS CLI. Para usar o comando, substitua os {{espaços reservados para entrada do usuário}} por suas próprias informações.

```
aws s3api put-bucket-policy --bucket {{bucket-base-name}}--{{zone-id}}--x-s3 --policy file://bucket_policy.json
```

bucket\_policy.json:

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

****  

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

------

Para obter mais informações, consulte [put-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-policy.html) na AWS Command Line Interface.

## Visualizar uma política de bucket
<a name="directory-bucket-bucket-policy-view"></a>

Para visualizar uma política de um bucket de diretório, use os exemplos a seguir.

### Como usar o AWS CLI
<a name="directory-bucket-bucket-policy-view-cli"></a>

Este exemplo mostra como visualizar a política de bucket anexada a um bucket de diretório usando a AWS CLI. Para usar o comando, substitua os {{espaços reservados para entrada do usuário}} por suas próprias informações.

```
aws s3api get-bucket-policy --bucket {{bucket-base-name}}--{{zone-id}}--x-s3
```

Para obter mais informações, consulte [get-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-policy.html) na AWS Command Line Interface.

## Excluir uma política de bucket
<a name="directory-bucket-bucket-policy-delete"></a>

Para excluir uma política de um bucket de diretório, use os exemplos a seguir.

### Usar SDKs da AWS
<a name="directory-bucket-bucket-policy-delete-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  
`DeleteBucketPolicy` AWS SDK for Java 2.x   

```
public static void deleteBucketPolicy(S3Client s3Client, String bucketName) {
      try {
          DeleteBucketPolicyRequest deleteBucketPolicyRequest = DeleteBucketPolicyRequest
                  .builder()
                  .bucket(bucketName)
                  .build()
          s3Client.deleteBucketPolicy(deleteBucketPolicyRequest);
          System.out.println("Successfully deleted bucket policy");
      }
      
      catch (S3Exception e) {
          System.err.println(e.awsErrorDetails().errorMessage());
          System.exit(1);
      }
```

------

### Como usar o AWS CLI
<a name="directory-bucket-delete-cli"></a>

Este exemplo mostra como excluir uma política de bucket de um bucket de diretório usando a AWS CLI. Para usar o comando, substitua os {{espaços reservados para entrada do usuário}} por suas próprias informações.

```
aws s3api delete-bucket-policy --bucket {{bucket-base-name}}--{{zone-id}}--x-s3
```

Para obter mais informações, consulte [delete-bucket-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-bucket-policy.html) na AWS Command Line Interface.