

# 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 Amazon SageMaker Lakehouse, também será possível gerenciar o acesso refinado aos seus namespaces e tabelas com o Lake Formation. 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 | 

# Políticas baseadas em identidade do IAM para a funcionalidade Tabelas do S3
<a name="s3-tables-identity-based-policies"></a>

Por padrão, usuários e perfis não têm permissão para criar nem modificar tabelas e buckets de tabela. Eles também não podem executar tarefas usando o console do S3, a AWS Command Line Interface (AWS CLI) ou as APIs REST do Amazon S3. Para criar e acessar tabelas e buckets de tabela, um administrador do AWS Identity and Access Management (IAM) deve conceder as permissões necessárias aos usuários ou ao perfil do IAM. Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte [Criação de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) no *Guia do Usuário do IAM*. 

O tópico a seguir inclui exemplos de políticas baseadas em identidade do IAM. Para usar os exemplos de política a seguir, substitua os *espaços reservados para entrada do usuário* por suas próprias informações.

**Topics**
+ [Exemplo 1: permitir acesso para criar e usar buckets de tabela](#example-1-s3-tables-identity-based-policies)
+ [Exemplo 2: permitir acesso para criar e usar tabelas em um bucket de tabela](#example-2-s3-tables-identity-based-policies)

## Exemplo 1: permitir acesso para criar e usar buckets de tabela
<a name="example-1-s3-tables-identity-based-policies"></a>

**.**

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBucketActions",
            "Effect": "Allow",
            "Action": [
                "s3tables:CreateTableBucket",
                "s3tables:PutTableBucketPolicy",
                "s3tables:GetTableBucketPolicy",
                "s3tables:ListTableBuckets",
                "s3tables:GetTableBucket"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
        }
    ]
}
```

------

## Exemplo 2: permitir acesso para criar e usar tabelas em um bucket de tabela
<a name="example-2-s3-tables-identity-based-policies"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBucketActions",
            "Effect": "Allow",
            "Action": [
                "s3tables:GetTableBucket",
                "s3tables:ListTables",
                "s3tables:CreateTable",
                "s3tables:PutTableData",
                "s3tables:GetTableData",
                "s3tables:GetTable",
                "s3tables:GetTableMetadataLocation",
                "s3tables:UpdateTableMetadataLocation",
                "s3tables:GetNamespace",
                "s3tables:CreateNamespace",
                "s3tables:ListNamespaces"
            ],
            "Resource": [
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket",
                "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/table/*"
            ]
        }
    ]
}
```

------

# Políticas baseadas em recurso para a funcionalidade Tabelas do S3
<a name="s3-tables-resource-based-policies"></a>

A funcionalidade Tabelas do S3 fornece políticas baseadas em recurso para gerenciar o acesso aos buckets de tabela e às tabelas: políticas de bucket de tabela e políticas de tabela. Você pode usar uma política de bucket de tabela para conceder permissões de acesso à API ao nível do bucket de tabela, do namespace ou da tabela. As permissões anexadas ao bucket de tabela podem ser aplicadas a todas as tabelas no bucket ou a tabelas específicas no bucket, dependendo da definição da política. Você pode usar uma política de tabela para conceder permissões ao nível da tabela. 

Quando a funcionalidade Tabelas do S3 recebe uma solicitação, primeiro ela verifica se o solicitante tem as permissões necessárias. Ela avalia todas as políticas de acesso, políticas de usuário e políticas baseadas em recurso relevantes para decidir se autoriza a solicitação (política de usuário do IAM, política de perfil do IAM, política de bucket de tabela e política de tabela). Por exemplo, se uma política de bucket de tabela concede a um usuário permissões para realizar todas as ações nas tabelas do bucket (inclusive `DeleteTable`), mas uma tabela individual tiver uma política de tabela que nega a ação `DeleteTable` para todos os usuários, um usuário não pode excluir a tabela.

O tópico a seguir inclui exemplos de políticas de tabela e de bucket de tabela. Para usar essas políticas, substitua os *espaços reservados para entrada do usuário* por suas próprias informações.

**nota**  
Toda política que concede permissões para modificar tabelas deve incluir permissões para `GetTableMetadataLocation` a fim de acessar o arquivo-raiz da tabela. Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_GetTableMetadataLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3TableBuckets_GetTableMetadataLocation.html).
Sempre que você realizar uma atividade de gravação ou exclusão em uma tabela, inclua permissões para `UpdateTableMetadataLocation` na política de acesso.
Recomendamos usar uma política de bucket de tabela para controlar o acesso às ações ao nível do bucket e uma política de tabela para controlar o acesso às ações ao nível da tabela. Nos casos em que você deseja definir o mesmo conjunto de permissões em várias tabelas, recomendamos o uso de uma política de bucket de tabela.

**Topics**
+ [Exemplo 1: a política de bucket de tabela permite acesso a `PutBucketMaintenanceConfiguration` para buckets em uma conta](#table-bucket-policy-1)
+ [Exemplo 2: política de bucket de tabela para permitir acesso de leitura (SELECT) às tabelas armazenadas no namespace `hr`](#table-bucket-policy-2)
+ [Exemplo 3: política de tabela para permitir que um usuário exclua uma tabela](#table-bucket-policy-3)

## Exemplo 1: a política de bucket de tabela permite acesso a `PutBucketMaintenanceConfiguration` para buckets em uma conta
<a name="table-bucket-policy-1"></a>

O exemplo de política de bucket de tabela a seguir permite que o `data steward` do IAM exclua objetos não referenciados de todos os buckets em uma conta ao permitir acesso a `PutBucketMaintenanceConfiguration`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasteward"
            },
            "Action": [
                "s3tables:PutTableBucketMaintenanceConfiguration"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/*"
        }
    ]
}
```

------

## Exemplo 2: política de bucket de tabela para permitir acesso de leitura (SELECT) às tabelas armazenadas no namespace `hr`
<a name="table-bucket-policy-2"></a>

Veja a seguir um exemplo de política de bucket de tabela permite que Jane, uma usuária do ID de Conta da AWS `123456789012`, acesse tabelas armazenadas no namespace `hr` em um bucket de tabela.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Jane"
            },
            "Action": [
                "s3tables:GetTableData",
                "s3tables:GetTableMetadataLocation"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/*",
            "Condition": {
                "StringLike": {
                    "s3tables:namespace": "hr"
                }
            }
        }
    ]
}
```

------

## Exemplo 3: política de tabela para permitir que um usuário exclua uma tabela
<a name="table-bucket-policy-3"></a>

O exemplo a seguir é uma política de tabela que permite que o perfil do IAM `data steward` exclua uma tabela.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "DeleteTable",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasteward"
            },
            "Action": [
                "s3tables:DeleteTable",
                "s3tables:UpdateTableMetadataLocation",
                "s3tables:PutTableData",
                "s3tables:GetTableMetadataLocation"
            ],
            "Resource": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket/table/tableUUID"
        }
    ]
}
```

------

# Políticas gerenciadas pela AWS para o serviço Tabelas do S3
<a name="s3-tables-security-iam-awsmanpol"></a>

Uma política gerenciada pela AWS é uma política autônoma 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 e permitir a atribuição de 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: AmazonS3TablesFullAccess
<a name="s3-tables-security-iam-awsmanpol-amazons3tablesfullaccess"></a>

É possível anexar a política `AmazonS3TablesFullAccess` às identidades do IAM. Essa política concede permissões que possibilitam acesso total à funcionalidade Tabelas do Amazon S3. Para obter mais informações sobre essa política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesFullAccess.html).

## AWS Política gerenciada da: AmazonS3TablesReadOnlyAccess
<a name="s3-tables-security-iam-awsmanpol-amazons3readonlyaccess"></a>

É possível anexar a política `AmazonS3TablesReadOnlyAccess` às identidades do IAM. Essa política concede permissões que oferecem acesso somente leitura à funcionalidade Tabelas do Amazon S3. Para obter mais informações sobre essa política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesReadOnlyAccess.html).

## AWS Política gerenciada da: AmazonS3TablesLakeFormationServiceRole
<a name="s3-tables-security-iam-awsmanpol-amazons3tableslakeformationservicerole"></a>

É possível anexar a política `AmazonS3TablesLakeFormationServiceRole` às identidades do IAM. Essa política concede permissões que autorizam o acesso do perfil de serviço do AWS Lake Formation ao serviço Tabelas do S3. As permissões do AWS KMS são usadas para autorizar o acesso do Lake Formation a tabelas criptografadas. Para obter mais informações sobre essa política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesLakeFormationServiceRole.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonS3TablesLakeFormationServiceRole.html).

## Atualizações da funcionalidade Tabelas do Amazon S3 para políticas gerenciadas pela AWS
<a name="s3-tables-security-iam-awsmanpol-updates"></a>

Veja detalhes sobre as atualizações nas políticas gerenciadas pela AWS para a funcionalidade Tabelas do Amazon S3 desde que as alterações começaram a ser controladas para essa funcionalidade.


| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  A funcionalidade Tabelas do Amazon S3 atualizou a política `AmazonS3TablesFullAccess`.  |  A funcionalidade Tabelas do S3 atualizou a política `AmazonS3TablesFullAccess` gerenciada pela AWS. Essa atualização concede permissão para transmitir um perfil ao serviço Replicação de Tabelas do S3.  |  2 de dezembro de 2025  | 
|  Adição de à funcionalidade Tabelas do Amazon S3 `AmazonS3TablesLakeFormationServiceRole`.  |  A funcionalidade Tabelas do S3 adicionou uma nova política gerenciada pela AWS chamada `AmazonS3TablesLakeFormationServiceRole`. Essa política concede permissões que autorizam o acesso do perfil de serviço do Lake Formation ao serviço Tabelas do S3.   | 19 de maio de 2025 | 
|  Adição de à funcionalidade Tabelas do Amazon S3 `AmazonS3TablesFullAccess`.  |  A funcionalidade Tabelas do S3 adicionou uma nova política gerenciada pela AWS chamada `AmazonS3TablesFullAccess`. Essa política concede permissões que possibilitam acesso total à funcionalidade Tabelas do Amazon S3.   | 3 de dezembro de 2024 | 
|  Adição de `AmazonS3TablesReadOnlyAccess` à funcionalidade Tabelas do Amazon S3.  |  A funcionalidade Tabelas do S3 adicionou uma nova política gerenciada pela AWS chamada `AmazonS3TablesReadOnlyAccess`. Essa política concede permissões que oferecem acesso somente leitura à funcionalidade Tabelas do Amazon S3.   | 3 de dezembro de 2024 | 
|  Início do controle de alterações na funcionalidade Tabelas do Amazon S3.  |  A funcionalidade Tabelas do Amazon S3 passou a controlar as alterações relacionadas às políticas gerenciadas pela AWS.  | 3 de dezembro de 2024 | 

# Conceder acesso com semântica SQL
<a name="s3-tables-sql"></a>

Você pode conceder permissões às tabelas usando a semântica SQL nas políticas de tabela e de bucket de tabela. Alguns exemplos de semântica SQL que você pode usar são `CREATE`, `INSERT`, `DELETE`, `UPDATE` e `ALTER`. A tabela a seguir fornece uma lista de ações de API associadas à semântica SQL que você pode usar para conceder permissões aos usuários.

A funcionalidade Tabelas do S3 oferece suporte parcial às permissões usando a semântica SQL. Por exemplo, a API `CreateTable` cria apenas uma tabela vazia no bucket de tabela. São necessárias permissões adicionais, como `UpdateTableMetadata`, `PutTableData` e `GetTableMetadataLocation`, para poder definir o esquema de tabela. Essas permissões adicionais também significam que você concederá ao usuário acesso para inserir linhas na tabela. Se quiser controlar o acesso exclusivamente com base na semântica SQL, recomendamos usar [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) ou alguma outra solução de terceiros integrada à funcionalidade Tabelas do S3.


| Atividade ao nível da tabela | Ações do IAM | 
| --- | --- | 
| SELECT | s3tables:GetTableData, s3tables:GetTableMetadataLocation | 
| CREATE | s3tables:CreateTable, s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation,  | 
| INSERT | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation | 
| UPDATE | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation | 
| ALTER,RENAME | s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation, s3tables:RenameTable  | 
| DELETE,DROP | s3tables:DeleteTable, s3tables:UpdateTableMetadataLocation, s3tables:PutTableData, s3tables:GetTableMetadataLocation  | 

**nota**  
A permissão `s3tables:DeleteTable` é obrigatória para excluir uma tabela de um bucket de tabela. Essa permissão possibilita que você remova permanentemente uma tabela e todos os respectivos dados e metadados. Use essa permissão com cuidado, pois a operação de exclusão não pode ser desfeita.

# Gerenciar o acesso a uma tabela ou a um banco de dados com o Lake Formation
<a name="grant-permissions-tables"></a>

Depois que os buckets de tabela são integrados aos serviços de analytics da AWS, o Lake Formation gerencia o acesso às tabelas e exige que cada entidade principal do IAM (usuário ou perfil) receba autorização para realizar ações nelas. O Lake Formation usa um modelo de permissões próprio (permissões do Lake Formation) que permite um controle de acesso detalhado aos recursos do Catálogo de Dados. 

Para obter mais informações, consulte [“Overview of Lake Formation permissions”](https://docs.aws.amazon.com//lake-formation/latest/dg/lf-permissions-overview.html) (Visão geral das permissões do Lake Formation) no *Guia do desenvolvedor do AWS Lake Formation*.

Há dois tipos principais de permissões no AWS Lake Formation: 

1. As permissões de acesso a metadados controlam a capacidade de criar, ler, atualizar e excluir tabelas e bancos de dados de metadados no Catálogo de Dados.

1. As permissões de acesso aos dados subjacentes controlam a capacidade de ler e gravar dados nos locais do Amazon S3 subjacentes para os quais os recursos do Catálogo de Dados apontam.

O Lake Formation usa conjuntamente um modelo de permissões próprio e o modelo de permissões do IAM para controlar o acesso aos recursos do Catálogo de Dados e aos dados subjacentes:
+ Para que uma solicitação de acesso aos recursos do Catálogo de Dados ou os dados subjacentes seja bem-sucedida, ela deve passar pelas verificações de permissão do IAM e do Lake Formation.
+ As permissões do IAM controlam o acesso a APIs e recursos do Lake Formation e do AWS Glue, enquanto as permissões do Lake Formation controlam o acesso aos recursos do Catálogo de Dados, aos locais do Amazon S3 e aos dados subjacentes.

As permissões do Lake Formation se aplicam somente na região em que foram concedidas, e uma entidade principal deve ser autorizada por um administrador do data lake ou por outra entidade principal com as permissões necessárias para receber as permissões do Lake Formation. 

**nota**  
Se você é o usuário que realizou a integração do bucket de tabela, já tem permissões do Lake Formation para as tabelas. Se você é a única entidade principal que acessará as tabelas, pode ignorar esta etapa. Você só precisa conceder permissões do Lake Formation em suas tabelas a outras entidades principais do IAM. Isso permite que outras entidades principais acessem a tabela ao executar consultas. Para obter mais informações, consulte [Conceder permissão ao Lake Formation em uma tabela ou um banco de dados](#grant-lf-table). 

## Conceder permissão ao Lake Formation em uma tabela ou um banco de dados
<a name="grant-lf-table"></a>

Você pode conceder a uma entidade principal permissões do Lake Formation em uma tabela ou um banco de dados em um bucket de tabela por meio do console do Lake Formation ou da AWS CLI.

**nota**  
Quando você concede permissões do Lake Formation em um recurso do catálogo de dados para uma conta externa ou diretamente para uma entidade principal do IAM em outra conta, o Lake Formation usa o serviço do AWS Resource Access Manager (AWS RAM) para compartilhar o recurso. Se a conta do concedido estiver na mesma organização da conta do concedente, o recurso compartilhado estará disponível imediatamente para o concedido. Se a conta do concedido não estiver na mesma organização, o AWS RAM envia um convite à conta do concedido para aceitar ou rejeitar a concessão do recurso. Em seguida, para disponibilizar o recurso compartilhado, o administrador do data lake deve usar o console AWS RAM ou AWS CLI para aceitar o convite na conta do concedido. Consulte mais informações sobre o compartilhamento de dados entre contas em [Cross-account data sharing in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/cross-account-permissions.html) no *Guia do desenvolvedor do AWS Lake Formation*.

------
#### [ Console ]

1. Abra o console do AWS Lake Formation em [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) e faça login como administrador do data lake. Consulte mais informações sobre como criar um administrador de data lake em [Create a data lake administrator](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) no *Guia do desenvolvedor do AWS Lake Formation*.

1. No painel de navegação, escolha **Permissões de dados** e **Conceder**. 

1. Na página **Conceder permissões**, em **Entidades principais**, execute um dos seguintes procedimentos:
   + Para o Amazon Athena ou o Amazon Redshift, escolha **Usuários e perfis do IAM** e selecione a entidade principal do IAM que você usa para consultas.
   + Para o Amazon Data Firehose, escolha **Usuários e perfis do IAM** e selecione o perfil de serviço que você criou para fazer streaming para as tabelas.
   + Para o Quick, escolha **Usuários e grupos SAML** e insira o nome do recurso da Amazon (ARN) do usuário administrador do Quick.
   + Para acesso ao endpoint Iceberg REST do AWS Glue, escolha **Usuários e perfis do IAM** e selecione um perfil do IAM que você criou para seu cliente. Para obter mais informações, consulte . [Criar um perfil do IAM para o cliente](s3-tables-integrating-glue-endpoint.md#glue-endpoint-create-iam-role)

1. Em **Tags do LF ou recursos de catálogo**, escolha **Recursos do catálogo de dados nomeados**.

1. Em **Catálogos**, escolha o subcatálogo que você criou ao integrar seu bucket de tabela; por exemplo, `account-id:s3tablescatalog/amzn-s3-demo-bucket`.

1. Em **Bancos de dados**, escolha o namespace do bucket de tabela do S3 que você criou.

1. (Opcional) Em **Tabelas**, escolha a tabela do S3 que você criou no bucket de tabela. 
**nota**  
Se você estiver criando uma tabela no editor de consultas do Athena, não selecione uma tabela. 

1. Execute um destes procedimentos:
   + Se você especificou uma tabela na etapa anterior, em **Permissões de tabela**, escolha **Super**.
   + Se você não especificou uma tabela na etapa anterior, acesse **Permissões do banco de dados**. Para o compartilhamento de dados entre contas, não é possível escolher **Super** para conceder à outra entidade principal todas as permissões no banco de dados. Em vez disso, escolha permissões mais detalhadas, como **Descrever**.

1. Selecione **Conceder**.

------
#### [ CLI ]

1. Você deve executar os comandos da AWS CLI a seguir como administrador do data lake. Consulte mais informações em [Create a data lake administrator](https://docs.aws.amazon.com//lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) no *Guia do desenvolvedor do AWS Lake Formation*.

1. Execute o comando a seguir para conceder permissões do Lake Formation em uma tabela no bucket de tabela do S3 a uma entidade principal do IAM para acessar a tabela. Para usar esse exemplo, substitua os *`user input placeholders`* por suas próprias informações. 

   ```
   aws lakeformation grant-permissions \
   --region us-east-1 \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role"
       },
       "Resource": {
           "Table": {
               "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket",
               "DatabaseName": "S3 table bucket namespace, for example, test_namespace",
               "Name": "S3 table bucket table name, for example test_table"
           }
       },
       "Permissions": [
           "ALL"
       ]
   }'
   ```

------