Usar tags com tabelas do S3
Uma tag da AWS é um par de chave-valor que contém metadados sobre recursos, neste caso tabelas do Amazon S3. É possível marcar tabelas do S3 ao criá-las ou gerenciar tags em nas tabelas existentes. Para ter informações gerais sobre tags, consulte Atribuir tags para alocação de custos ou controle de acesso por atributo (ABAC).
nota
Não há cobrança adicional para usar tags em tabelas além das taxas de solicitação padrão da API do S3. Para obter mais informações, consulte Preço do Amazon S3
Maneiras comuns de usar tags com tabelas
Use tags em tabelas do S3 para:
-
Alocação de custos: acompanhe os custos de armazenamento por tag de tabela no Gerenciamento de Faturamento e Custos da AWS. Para ter mais informações, consulte Usar tags para alocação de custos.
-
Controle de acesso por atributo (ABAC): amplie as permissões de acesso e conceda acesso às tabelas do S3 com base nas respectivas tags. Para ter mais informações, consulte Using tags for ABAC.
nota
Você pode usar as mesmas tags para alocação de custos e controle de acesso.
ABAC para tabelas do S3
As tabelas do Amazon S3 permitem o controle de acesso por atributo (ABAC) por meio de tags. Use chaves de condição baseadas em tags em políticas de tabela do S3, de suas organizações na AWS e do AWS Identity and Access Management (IAM). O ABAC no Amazon S3 permite a autorização em várias contas da AWS.
Nas suas políticas do IAM, você pode controlar o acesso às tabelas do S3 com base nas tags da tabela usando a chave de condição s3tables:TableBucketTag/tag-key ou as chaves de condição globais da AWS: aws:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys.
aws:ResourceTag/key-name
Use essa chave de condição para comparar o par chave-valor da tag especificada na política com o par de chave-valor anexado ao recurso. Por exemplo, é possível exigir que o acesso a uma tabela seja permitido somente se a tabela tiver a chave de tag Department com o valor Marketing.
Essa chave de condição se aplica às ações de tabela realizadas por meio do console do Amazon S3, da AWS Command Line Interface (CLI), das APIs do S3 ou dos SDKs da AWS.
Para visualizar um exemplo de política, consulte 1.1 Política de tabela para restringir operações na tabela por meio de tags.
Para ter mais informações, consulte Controlar o acesso a recursos da AWS no Guia do usuário do AWS Identity and Access Management.
nota
Para ações realizadas em tabelas, essa chave de condição atua nas tags aplicadas à tabela e não nas tags aplicadas ao bucket de tabela que contém a tabela. Em vez disso, use a s3tables:TableBucketTag/tag-key se quiser que suas políticas de ABAC atuem nas tags do bucket de tabela ao realizar ações de tabela.
aws:RequestTag/key-name
Use essa chave de condição para comparar o par de chave-valor da tag que foi transmitido na solicitação com o par de tags especificado na política. Por exemplo, é possível verificar se a solicitação para marcar uma tabela inclui a chave de tag Department e se ela tem o valor Accounting.
Essa chave de condição se aplica quando as chaves de tag são transmitidas em uma solicitação de operação de API TagResource ou CreateTable ou ao marcar ou criar uma tabela com tags usando o console do Amazon S3, a AWS Command Line Interface (CLI) ou os SDKs da AWS.
Para visualizar um exemplo de política, consulte 1.2 Política do IAM para criar ou modificar tabelas com tags específicas.
Para ver exemplos adicionais de política e ter mais informações, consulte Controlar o acesso durante solicitações da AWS no Guia do usuário do AWS Identity and Access Management.
aws:TagKeys
Use essa chave de condição para comparar as chaves de tag em uma solicitação com as chaves especificadas na política para definir quais chaves de tag são permitidas para acesso. Por exemplo, para permitir a marcação durante a ação CreateTable, é necessário criar uma política que permita as ações s3tables:CreateTable e s3tables:TagResource. Em seguida, é possível usar a chave de condição aws:TagKeys para impor o uso somente de tags específicas na solicitação CreateTable.
Essa chave de condição se aplica quando as chaves de tag são transmitidas em uma solicitação de operação de API TagResource, UntagResource ou CreateTable ou ao marcar, desmarcar ou criar uma tabela com tags usando a AWS Command Line Interface (CLI) ou os SDKs da AWS.
Para visualizar um exemplo de política, consulte 1.3 Política do IAM para controlar a modificação de tags em recursos existentes, mantendo a governança de marcação.
Para ter mais informações e ver outros exemplos de política, consulte Controlar o acesso com base em chaves de tag, no Guia do usuário do AWS Identity and Access Management.
s3tables:TableBucketTag/tag-key
Use essa chave de condição para conceder permissões a dados específicos em buckets de tabela por meio de tags. Essa chave de condição atua, na maior parte das vezes, nas tags atribuídas ao bucket de tabela para todas as ações de tabela do S3. Mesmo quando você cria uma tabela com tags, essa chave de condição atua nas tags aplicadas ao bucket de tabela que contém essa tabela. As exceções são:
Quando você cria um bucket de tabela com tags, essa chave de condição atua nas tags na solicitação.
Para visualizar um exemplo de política, consulte 1.4 Usar a chave de condição s3tables:TableBucketTag.
Exemplos de política de ABAC para tabelas
Veja os exemplos de política de ABAC a seguir para tabelas do Amazon S3.
nota
Se você tiver uma política baseada em recursos do IAM ou da funcionalidade Tabelas do S3 que restrinja usuários do IAM e perfis do IAM com base em tags de entidade principal, será necessário anexar as mesmas tags de entidade principal ao perfil do IAM que o Lake Formation usa para acessar dados do Amazon S3 (por exemplo, LakeFormationDataAccessRole) e conceder a esse perfil as devidas permissões. Isso é necessário para que a política de controle de acesso baseada em tags funcione corretamente com integração de analytics da funcionalidade Tabelas do S3.
1.1 Política de tabela para restringir operações na tabela por meio de tags
Nessa política de bucket, as entidades principais especificadas do IAM (usuários e perfis) poderão executar a ação GetTable somente se o valor da tag project da tabela corresponder ao valor da tag project da entidade principal.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGetTable", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3tables:GetTable", "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/my_example_tab;e", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.2 Política do IAM para criar ou modificar tabelas com tags específicas
Nessa política do IAM, usuários ou perfis com essa política só poderão criar tabelas do S3 se marcarem a tabela com a chave de tag project e o valor de tag Trinity na solicitação de criação da tabela. Eles também podem adicionar ou modificar tags em tabelas existentes do S3, desde que a solicitação TagResource inclua o par de chave-valor de tag project:Trinity. Essa política não concede permissões de leitura, gravação ou exclusão nas tabelas ou nos respectivos objetos.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateTableWithTags", "Effect": "Allow", "Action": [ "s3tables:CreateTable", "s3tables:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }
1.3 Política do IAM para controlar a modificação de tags em recursos existentes, mantendo a governança de marcação
Nessa política do IAM, as entidades principais do IAM (usuários e perfis) poderão modificar tags em uma tabela somente se o valor de tag project da tabela corresponder ao valor de tag project da entidade principal. Somente as quatro tags (project, environment, owner e cost-center) especificadas nas chaves de condição aws:TagKeys são permitidas para essas tabelas. Isso ajuda a impor a governança de tags, evita modificações não autorizadas nas tags e mantém o esquema de marcação consistente em todas suas tabelas.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3tables:TagResource", "s3tables:UntagResource" ], "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/my_example_table", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }
1.4 Usar a chave de condição s3tables:TableBucketTag
Nessa política do IAM, a instrução de condição permitirá acesso aos dados do bucket de tabela somente se o bucket tiver a chave de tag Environment e o valor de tag Production. A s3tables:TableBucketTag/<tag-key> é diferente da chave de condição aws:ResourceTag/<tag-key> porque, além de controlar o acesso aos buckets de tabela de acordo com as respectivas tags, ela permite controlar o acesso às tabelas com base nas tags do bucket de tabela principal.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificTables", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*", "Condition": { "StringEquals": { "s3tables:TableBucketTag/Environment": "Production" } } } ] }
Gerenciar tags para tabelas
É possível adicionar ou gerenciar tags para tabelas do S3 usando o console do Amazon S3, a AWS Command Line Interface (CLI), os SDKs da AWS ou as APIs TagResource, UntagResource e ListTagsForResource do S3. Para obter mais informações, consulte: