

# Gerenciamento de acesso para a funcionalidade Tabelas do S3
<a name="s3-tables-setting-up"></a>

Na funcionalidade Tabelas do S3, os recursos incluem buckets de tabela e as tabelas contidas neles. O usuário-raiz da Conta da AWS que criou o recurso (proprietário do recurso) e os usuários do AWS Identity and Access Management (IAM) dentro dessa conta que têm as permissões necessárias podem acessar um recurso que eles criaram. O proprietário do recurso especifica quem mais pode acessar o recurso e as ações que podem realizar no recurso. O Amazon S3 tem várias ferramentas de gerenciamento de acesso que você pode usar para conceder a outros usuários acesso aos recursos do S3. Se você integrou suas tabelas ao AWS Lake Formation, também será possível gerenciar o acesso refinado aos seus namespaces e tabelas. Os tópicos a seguir fornecem uma visão geral dos recursos, das ações do IAM e das chaves de condição para a funcionalidade Tabelas do S3. Também apresentam exemplos de políticas baseadas em recurso e em identidade para a funcionalidade Tabelas do S3.

**Topics**
+ [Recursos](#s3-tables-resources)
+ [Ações para a funcionalidade Tabelas do S3](#s3-tables-actions)
+ [Chaves de condição para a funcionalidade Tabelas do S3](#s3-tables-conditionkeys)
+ [Políticas baseadas em identidade do IAM para a funcionalidade Tabelas do S3](s3-tables-identity-based-policies.md)
+ [Políticas baseadas em recurso para a funcionalidade Tabelas do S3](s3-tables-resource-based-policies.md)
+ [Políticas gerenciadas pela AWS para o serviço Tabelas do S3](s3-tables-security-iam-awsmanpol.md)
+ [Conceder acesso com semântica SQL](s3-tables-sql.md)
+ [Gerenciar o acesso a uma tabela ou a um banco de dados com o Lake Formation](grant-permissions-tables.md)

## Recursos
<a name="s3-tables-resources"></a>

Os recursos da funcionalidade Tabelas do S3 incluem buckets de tabela e as tabelas contidas neles.
+ Buckets de tabela: os buckets de tabela são projetados especificamente para tabelas e fornecem quantidades mais altas de transações por segundo (TPS) e melhor throughput de consultas em comparação com as tabelas autogerenciadas em buckets de uso geral do S3. Os buckets de tabela oferecem as mesmas características de durabilidade, disponibilidade, escalabilidade e performance dos buckets de uso geral do Amazon S3. 
+ Tabelas: as tabelas nos buckets de tabela são armazenadas no formato Apache Iceberg. Você pode consultar essas tabelas usando SQL padrão em mecanismos de consulta compatíveis com Iceberg.

Os nomes de recursos da Amazon (ARNs) para tabelas e buckets de tabela contêm o namespace `s3tables`, a Região da AWS, o ID da Conta da AWS e o nome do bucket. Para acessar e executar ações nas tabelas e nos buckets de tabela, você deve usar os seguintes formatos de ARN:
+ Formato do ARN de tabela:

  `arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-bucket/table/demo-tableID`

## Ações para a funcionalidade Tabelas do S3
<a name="s3-tables-actions"></a>

Em uma política baseada em identidade ou em recurso, defina quais ações da funcionalidade Tabelas do S3 são permitidas ou negadas para entidades principais do IAM específicas. As ações de tabelas correspondem às operações de API ao nível do bucket e da tabela. Todas as ações fazem parte de um namespace do IAM exclusivo: `s3tables`.

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. Por exemplo, as ações `s3tables:GetTableData` incluem permissões para as operações de API `GetObject`, `ListParts` e `ListMultiparts`. 

Veja a seguir as ações compatíveis com buckets de tabela. Você pode especificar as ações a seguir no elemento `Action` de uma política do IAM ou de recurso.


| Ação | Descrição | Nível de acesso | Acesso entre contas | 
| --- | --- | --- | --- | 
| s3tables:CreateTableBucket | Concede permissões para criar um bucket de tabela. | Write | Não | 
| s3tables:GetTableBucket | Concede permissão para recuperar o ARN do bucket de tabela, o nome do bucket de tabela e a data de criação. | Write | Sim | 
| s3tables:ListTableBuckets | Concede permissão para listar todos os buckets de tabela da conta. | Read | Não | 
| s3tables:CreateNamespace | Concede permissão para criar um namespace em um bucket de tabela. | Write | Sim | 
| s3tables:GetNamespace | Concede permissão para recuperar os detalhes de um namespace. | Read | Sim | 
| s3tables:ListNamespaces | Concede permissão para listar todos os namespaces no bucket de tabela. | Read | Sim | 
| s3tables:DeleteNamespace | Concede permissão para excluir um namespace em um bucket de tabela. | Write | Sim | 
| s3tables:DeleteTableBucket | Concede permissão para excluir o bucket.  | Write | Sim  | 
| s3tables:PutTableBucketPolicy | Concede permissão para adicionar ou substituir uma política de bucket. | Permissions Management | Não | 
| s3tables:GetTableBucketPolicy | Concede permissão para recuperar a política de bucket. | Read | Não | 
| s3tables:DeleteTableBucketPolicy | Concede permissão para excluir a política do bucket. | Permissions Management | Não | 
| s3tables:GetTableBucketMaintenanceConfiguration | Concede permissão para recuperar a configuração de manutenção de um bucket de tabela. | Read | Sim  | 
| s3tables:PutTableBucketMaintenanceConfiguration | Concede permissão para adicionar ou substituir a configuração de manutenção de um bucket de tabela. | Write | Sim | 
| s3tables:PutTableBucketEncryption | Concede permissão para adicionar ou substituir a configuração de criptografia de um bucket de tabela. | Write | Não | 
| s3tables:GetTableBucketEncryption | Concede permissão para recuperar a configuração de criptografia de um bucket de tabela. | Read | Não | 
| s3tables:DeleteTableBucketEncryption | Concede permissão para excluir a configuração de criptografia de um bucket de tabela. | Write | Não | 

As ações a seguir são compatíveis com tabelas:


| Ação | Descrição | Nível de acesso | Acesso entre contas | 
| --- | --- | --- | --- | 
| s3tables:GetTableMaintenanceConfiguration | Concede permissão para recuperar a configuração de manutenção de uma tabela. | Read | Sim | 
| s3tables:PutTableMaintenanceConfiguration |  Concede permissão para adicionar ou substituir a configuração de manutenção de uma tabela. | Write | Sim | 
| s3tables:PutTablePolicy | Concede permissão para adicionar ou substituir uma política de tabela. | Permissions Management | Não | 
| s3tables:GetTablePolicy | Concede permissão para recuperar a política da tabela. | Read | Não | 
| s3tables:DeleteTablePolicy | Concede permissão para excluir a política da tabela. | Permissions management | Não | 
| s3tables:CreateTable | Concede permissão para criar uma tabela em um bucket de tabela. | Write | Sim | 
| s3tables:GetTable | Concede permissão para recuperar as informações de uma tabela. | Read | Sim | 
| s3tables:GetTableMetadataLocation | Concede permissão para recuperar o ponteiro-raiz da tabela (arquivo de metadados). | Read | Sim  | 
| s3tables:ListTables | Concede permissão para listar todas as tabelas em um bucket de tabela. | Read | Sim  | 
| s3tables:RenameTable | Concede permissões para alterar o nome de uma tabela. | Write | Sim  | 
| s3tables:UpdateTableMetadataLocation | Concede permissão para atualizar o ponteiro-raiz da tabela (arquivo de metadados). | Write | Sim  | 
| s3tables:GetTableData | Concede permissão para ler os metadados da tabela e os objetos de dados armazenados no bucket de tabela. | Read | Sim | 
| s3tables:PutTableData | Concede permissão para gravar os metadados da tabela e os objetos de dados armazenados no bucket de tabela. | Write | Sim | 
| s3tables:GetTableEncryption  | Concede permissão para recuperar as configurações de criptografia de um bucket de tabela. | Write | Não | 
| s3tables:PutTableEncryption  | Concede permissão para adicionar criptografia a uma tabela. | Write | Não | 
| s3tables:DeleteTable | Concede permissão para excluir uma tabela de um bucket de tabela. | Write | Sim | 

Para realizar ações de leitura e gravação ao nível da tabela, a funcionalidade Tabelas do S3 oferece suporte a operações de API do Amazon S3, como `GetObject` e `PutObject`. A tabela a seguir fornece uma lista de ações ao nível do objeto. Ao conceder permissões de leitura e gravação nas tabelas, use as ações a seguir.


| Ação | APIs de objetos do S3 | 
| --- | --- | 
| s3tables:GetTableData | GetObject, ListParts, HeadObject | 
| s3tables:PutTableData | PutObject, CreateMultipartUpload, CompleteMultipartUpload,  UploadPart, AbortMultipartUpload | 

Por exemplo, se um usuário tiver permissões `GetTableData`, ele poderá ler todos os arquivos associados à tabela, como o arquivo de metadados, o manifesto, os arquivos da lista de manifestos e os arquivos de dados parquet.

## Chaves de condição para a funcionalidade Tabelas do S3
<a name="s3-tables-conditionkeys"></a>

A funcionalidade Tabelas do S3 oferece suporte a [chaves de contexto de condição globais da AWS](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html).

Além disso, a funcionalidade Tabelas do S3 define as seguintes chaves de condição que você pode usar em uma política de acesso.


| Chave de condição | Descrição | Tipo | 
| --- | --- | --- | 
|  s3tables:tableName |  Filtra o acesso pelos nomes das tabelas no bucket de tabela. Você pode usar a chave de condição `s3tables:tableName` para escrever políticas do IAM ou de bucket de tabela que restrinjam o acesso de usuários ou aplicações somente a tabelas que atendam a essa condição de nome.   É importante observar que, se você usar a chave de condição `s3tables:tableName` para controlar o acesso, as alterações nos nomes das tabelas poderão afetar essas políticas. Exemplo de valor: "s3tables:tableName":"department\$1"  | String | 
|  s3tables:namespace |  Filtra o acesso pelos namespaces criados no bucket de tabela.  Você pode usar a chave de condição `s3tables:namespace` para criar políticas do IAM, de tabela ou de bucket de tabela que restringem o acesso de usuários ou aplicações às tabelas que fazem parte de um namespace específico. *Exemplo de valor:* `"s3tables:namespace":"hr" `  É importante observar que, se você usar a chave de condição `s3tables:namespace` para controlar o acesso, as alterações nos namespaces poderão afetar essas políticas.  | String | 
|  s3tables:SSEAlgorithm |  Filtra o acesso pelo algoritmo de criptografia do lado do servidor usado para criptografar uma tabela.  Você pode usar a chave de condição `s3tables:SSEAlgorithm` para escrever políticas do IAM, de tabela ou de bucket de tabela que restrinjam o acesso de usuários ou aplicações a tabelas criptografadas com determinado tipo de criptografia. *Exemplo de valor:* `"s3tables:SSEAlgorithm":"aws:kms" `  É importante observar que, se você usar a chave de condição `s3tables:SSEAlgorithm` para controlar o acesso, as alterações na criptografia poderão afetar essas políticas.  | String | 
|  s3tables:KMSKeyArn |  Filtra o acesso pelo ARN da chave do AWS KMS usada para criptografar uma tabela. Você pode usar a chave de condição `s3tables:KMSKeyArn` para escrever políticas do IAM, de tabela ou de bucket de tabela que restrinjam o acesso de usuários ou aplicações a tabelas criptografadas com uma chave do KMS específica.  É importante observar que, se você usar a chave de condição `s3tables:KMSKeyArn` para controlar o acesso, as alterações na chave do KMS poderão afetar essas políticas.  | ARN | 