Gerenciamento de acesso para a funcionalidade Tabelas do S3 - Amazon Simple Storage Service

Gerenciamento de acesso para a funcionalidade Tabelas do S3

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. 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.

Recursos

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

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. Read 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

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 funcionalidade Tabelas do S3 oferece suporte a chaves de contexto de condição globais da AWS.

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*"
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