Usar tags com buckets de tabela do S3
Uma tag da AWS é um par de chave-valor que contém metadados sobre recursos, neste caso buckets de tabela do Amazon S3. É possível marcar buckets de tabela do S3 ao criá-los ou gerenciar tags em buckets de tabela 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 buckets de tabela 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 buckets de tabela
Use tags em buckets de tabela do S3 para:
Controle de acesso por atributo (ABAC): amplie as permissões de acesso e conceda acesso aos buckets de tabela do S3 com base nas respectivas tags. Para ter mais informações, consulte Using tags for ABAC.
ABAC para buckets de tabela do S3
Os buckets de tabela 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 bucket 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 aos buckets de tabela do S3 com base nas tags do bucket de 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 um bucket de tabela seja permitido somente se o bucket de tabela tiver a chave de tag Department com o valor Marketing.
Essa chave de condição se aplica a todas as ações de bucket 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, exceto para a solicitação de API CreateBucket.
Para visualizar um exemplo de política, consulte 1.1 Política de bucket de tabela para restringir operações nas tabelas dentro do bucket de 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 um bucket de 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 CreateTableBucket ou ao marcar ou criar um bucket de 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 buckets de tabela 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 CreateTableBucket, é necessário criar uma política que permita as ações s3tables:CreateTableBucket 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 CreateTableBucket.
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 CreateTableBucket ou ao marcar, desmarcar ou criar um bucket de 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.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 buckets de tabela
Veja os exemplos de política de ABAC a seguir para buckets de tabela do Amazon S3.
nota
Se você estiver usando o Lake Formation para gerenciar o acesso a tabelas do Amazon S3 e 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 bucket de tabela para restringir operações nas tabelas dentro do bucket de tabela por meio de tags
Nessa política de bucket de tabela, as entidades principais especificadas do IAM (usuários e perfis) poderão executar a ação GetTable em qualquer tabela no bucket de tabela 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/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.2 Política do IAM para criar ou modificar buckets de tabela com tags específicas
nota
Se você estiver usando o AWS Lake Formation para gerenciar o acesso às suas tabelas do Amazon S3 e estiver usando o ABAC com a funcionalidade Tabelas do Amazon S3, também será necessário atribuir o acesso necessário ao perfil do IAM que o Lake Formation assumir. Para obter mais informações sobre como configurar o perfil do IAM para o Lake Formation, consulte Pré-requisitos para integrar o catálogo de Tabelas do Amazon S3 ao Catálogo de Dados e ao Lake Formation no Guia do desenvolvedor do AWS Lake Formation.
Nessa política do IAM, usuários ou perfis com essa política só poderão criar buckets de tabela do S3 se marcarem o bucket de tabela com a chave de tag project e o valor de tag Trinity na solicitação de criação do bucket de tabela. Eles também podem adicionar ou modificar tags em buckets de tabela 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 nos buckets de tabela ou nos respectivos objetos.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateTableBucketWithTags", "Effect": "Allow", "Action": [ "s3tables:CreateTableBucket", "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 um bucket de tabela somente se o valor da tag project do bucket de tabela corresponder ao valor da 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 esses buckets de tabela. 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 todos os seus buckets de tabela.
{ "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", "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 buckets de tabela
É possível adicionar ou gerenciar tags para buckets de tabela 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 o seguinte: