

# Definir permissões para configurar tabelas de metadados
<a name="metadata-tables-permissions"></a>

Para criar uma configuração de tabela de metadados, é necessário ter as permissões do AWS Identity and Access Management (IAM) necessárias para criar e gerenciar essa configuração de tabela de metadados e para criar e gerenciar suas tabelas de metadados e o bucket de tabela em que as tabelas de metadados estão armazenadas. 

Para criar e gerenciar a configuração de tabelas de metadados, você deve ter as seguintes permissões: 
+ `s3:CreateBucketMetadataTableConfiguration`: essa permissão possibilita criar uma configuração de tabelas de metadados para o bucket de uso geral. Para criar uma configuração de tabela de metadados, são necessárias permissões adicionais, inclusive permissões da funcionalidade Tabelas do S3, conforme explicado nas seções a seguir. Para obter um resumo das permissões necessárias, consulte [Permissões e operações de bucket](using-with-s3-policy-actions.md#using-with-s3-policy-actions-related-to-buckets). 
+ `s3:GetBucketMetadataTableConfiguration`: essa permissão possibilita recuperar informações sobre a configuração de tabelas de metadados.
+ `s3:DeleteBucketMetadataTableConfiguration`: essa permissão possibilita excluir a configuração de tabelas de metadados.
+ `s3:UpdateBucketMetadataJournalTableConfiguration`: essa permissão possibilita que você atualize a configuração da tabela de diário para expirar os respectivos registros.
+ `s3:UpdateBucketMetadataInventoryTableConfiguration`: essa permissão possibilita que você atualize a configuração da tabela de inventário para habilitar ou desabilitar a tabela de inventário. Para atualizar uma configuração de tabela de inventário, são necessárias permissões adicionais, inclusive permissões da funcionalidade Tabelas do S3. Para obter uma lista das permissões necessárias, consulte [Permissões e operações de bucket](using-with-s3-policy-actions.md#using-with-s3-policy-actions-related-to-buckets).
**nota**  
As permissões `s3:CreateBucketMetadataTableConfiguration`, `s3:GetBucketMetadataTableConfiguration` e `s3:DeleteBucketMetadataTableConfiguration` são usadas para configurações do S3 Metadata V1 e V2. Para a V2, os nomes das operações de API correspondentes são `CreateBucketMetadataConfiguration`, `GetBucketMetadataConfiguration` e `DeleteBucketMetadataConfiguration`.

Para criar e trabalhar com tabelas e buckets de tabela, é necessário ter determinadas permissões `s3tables`. No mínimo, para criar uma configuração de tabelas de metadados, você deve ter as seguintes permissões `s3tables`: 
+ `s3tables:CreateTableBucket`: essa permissão possibilita que você crie um bucket de tabela gerenciado pela AWS. Todas as configurações de tabela de metadados na sua conta e na mesma região são armazenadas em um único bucket de tabela gerenciado pela AWS denominado `aws-s3`. Para ter mais informações, consulte [Como funcionam as tabelas de metadados](metadata-tables-overview.md#metadata-tables-how-they-work) e [Trabalhar com buckets de tabela gerenciados pela AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-aws-managed-buckets.html).
+ `s3tables:CreateNamespace`: essa permissão possibilita criar um namespace em um bucket de tabela. As tabelas de metadados normalmente usam o namespace `b_general_purpose_bucket_name`. Para ter mais informações sobre namespaces de tabela de metadados, consulte [Como funcionam as tabelas de metadados](metadata-tables-overview.md#metadata-tables-how-they-work).
+ `s3tables:CreateTable`: essa permissão possibilita que você crie tabelas de metadados.
+ `s3tables:GetTable`: essa permissão possibilita que você recupere informações sobre suas tabelas de metadados.
+ `s3tables:PutTablePolicy`: essa permissão possibilita que você adicione ou atualize as políticas da tabela de metadados.
+ `s3tables:PutTableEncryption`: essa permissão possibilita que você defina a criptografia do lado do servidor para suas tabelas de metadados. Permissões adicionais serão necessárias se você quiser criptografar suas tabelas de metadados com a criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Para ter mais informações, consulte [Permissões para SSE-KMS](#metadata-kms-permissions). 
+ `kms:DescribeKey`: essa permissão possibilita que você recupere informações sobre a chave do KMS. 
+ `s3tables:PutTableBucketPolicy`: esta permissão possibilita criar ou atualizar uma nova política de bucket de tabela.

Para ter informações detalhadas sobre todas as permissões de tabelas e de buckets de tabela, consulte [Access management for S3 Tables](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-setting-up.html).

**Importante**  
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).

**Permissões para SSE-KMS**  
Para criptografar tabelas de metadados com a criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), você deve ter outras permissões. 

1. O usuário ou o perfil do AWS Identity and Access Management (IAM) precisa das permissões a seguir. Você pode conceder essas permissões no console do IAM: [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. `s3tables:PutTableEncryption` para configurar a criptografia de tabelas.

   1. `kms:DescribeKey` na chave usada do AWS KMS.

1. Na política de recursos para a chave do KMS, você precisa das permissões a seguir. Você pode conceder essas permissões no console do AWS KMS: [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

   1. Conceder a permissão `kms:GenerateDataKey` a `metadata.s3.amazonaws.com` e a `maintenance.s3tables.amazonaws.com`.

   1. Conceder a permissão `kms:Decrypt` a `metadata.s3.amazonaws.com` e a `maintenance.s3tables.amazonaws.com`.

   1. Conceder a permissão `kms:DescribeKey` à entidade principal invocadora da AWS.

Além dessas permissões, a chave do KMS gerenciada pelo cliente usada para criptografar as tabelas ainda deve existir, estar ativa e estar na mesma região do bucket de uso geral.

**Exemplo de política**  
Para criar e trabalhar com tabelas de metadados e buckets de tabela, você pode usar o exemplo de política a seguir. Nesta política, o bucket de uso geral ao qual você está aplicando a configuração de tabelas de metadados é chamado de `amzn-s3-demo-bucket`. Para usar essa política, substitua os `user input placeholders` por suas próprias informações. 

Quando você cria uma configuração de tabela de metadados, as tabelas de metadados são armazenadas em um bucket de tabela gerenciado pela AWS. Todas as configurações de tabela de metadados na sua conta e na mesma região são armazenadas em um único bucket de tabela gerenciado pela AWS denominado `aws-s3`. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PermissionsToWorkWithMetadataTables",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucketMetadataTableConfiguration",
                "s3:GetBucketMetadataTableConfiguration",
                "s3:DeleteBucketMetadataTableConfiguration",
                "s3:UpdateBucketMetadataJournalTableConfiguration",
                "s3:UpdateBucketMetadataInventoryTableConfiguration",
                "s3tables:*",
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*"
            ]
        }
    ]
}
```

------

Para consultar tabelas de metadados, você pode usar a política de exemplo a seguir. Se as tabelas de metadados tiverem sido criptografadas com SSE-KMS, você precisará da permissão `kms:Decrypt`, conforme mostrado. Para usar essa política, substitua os `user input placeholders` por suas próprias informações.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PermissionsToQueryMetadataTables",
            "Effect": "Allow",
            "Action": [
                "s3tables:GetTable",
                "s3tables:GetTableData",
                "s3tables:GetTableMetadataLocation",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/aws-s3/table/*"
            ]
        }
    ]
}
```

------