Uso de etiquetas con buckets de tablas de S3 - Amazon Simple Storage Service

Uso de etiquetas con buckets de tablas de S3

Una etiqueta de AWS es un par clave-valor que contiene metadatos acerca de los recursos, en este caso buckets de tabla de Amazon S3. Puede etiquetar los buckets de tabla de S3 al crearlos o administrar las etiquetas de los buckets de tabla existentes. Para obtener información general sobre las etiquetas, consulte Etiquetado para la asignación de costos o el control de acceso basado en atributos (ABAC).

nota

No se aplican cargos adicionales por el uso de etiquetas en buckets de tablas más allá de las tarifas estándar de solicitud de la API de S3. Para obtener más información, consulte Precios de Amazon S3.

Formas habituales de utilizar etiquetas con buckets de tablas

Utilice etiquetas en los buckets de tablas de S3 para:

Control de acceso basado en atributos (ABAC): escale los permisos de acceso y conceda acceso a los buckets de tablas de S3 en función de las etiquetas. Para obtener más información, consulte Uso de etiquetas para ABAC.

ABAC para buckets de tablas de S3

Los buckets de tabla de Amazon S3 admiten el control de acceso basado en atributos (ABAC) mediante etiquetas. Utilice claves de condición basadas en etiquetas en las políticas de bucket de organizaciones de AWS, AWS Identity and Access Management (IAM) y de tabla de S3. ABAC en Amazon S3 admite la autorización en varias cuentas de AWS.

En las políticas de IAM, puede controlar el acceso a los buckets de tablas de S3 en función de las etiquetas del bucket de tablas mediante la clave de condición s3tables:TableBucketTag/tag-key o las claves de condición globales de AWS: aws:ResourceTag/key-name, aws:RequestTag/key-name o aws:TagKeys.

aws:ResourceTag/key-name

Utilice esta clave de condición para comparar el par clave-valor de etiqueta que especifique en la política con el par clave-valor asociado al recurso. Por ejemplo, puede requerir que el acceso a un bucket de tabla solo se permita si el bucket de tabla tiene la clave de etiqueta Department con el valor Marketing.

Esta clave de condición se aplica a todas las acciones de los buckets de tablas que se realizan mediante la consola de Amazon S3, la interfaz de la línea de comandos (CLI) de AWS, las API de S3 o los AWS SDK, excepto la solicitud de la API CreateBucket.

Para ver una política de ejemplo, consulte 1.1: Política de bucket de tabla para restringir las operaciones en las tablas dentro del bucket de tabla mediante etiquetas.

Para obtener políticas de ejemplo adicionales y más información, consulte Control del acceso a los recursos de AWS en la Guía del usuario de AWS Identity and Access Management.

nota

En el caso de las acciones realizadas en tablas, esta clave de condición actúa sobre las etiquetas aplicadas a la tabla y no sobre las etiquetas aplicadas al bucket de tabla que contiene la tabla. Use s3tables:TableBucketTag/tag-key en su lugar si desea que las políticas de ABAC actúen sobre las etiquetas del bucket de tabla al realizar acciones de tabla.

aws:RequestTag/key-name

Utilice esta clave de condición para comparar el par clave-valor de etiqueta que se transfirió en la solicitud con el par de etiquetas especificado en la política. Por ejemplo, podría comprobar si la solicitud para etiquetar un bucket de tabla incluye la clave de etiqueta Department y que tiene el valor Accounting.

Esta clave de condición se aplica cuando se pasan claves de etiquetas en una solicitud de operación de API CreateTableBucket o TagResource o al etiquetar o crear un bucket de tabla con etiquetas mediante la consola de Amazon S3, la interfaz de la línea de comandos (CLI) de AWS o los AWS SDK.

Para ver una política de ejemplo, consulte 1.2: Política de IAM para crear o modificar buckets de tablas con etiquetas específicas.

Para obtener políticas de ejemplo adicionales y más información, consulte Control del acceso durante las solicitudes de AWS en la Guía del usuario de AWS Identity and Access Management.

aws:TagKeys

Utilice esta clave de condición para comparar las claves de etiqueta de una solicitud con las claves que especifique en la política para definir que claves de etiqueta están permitidas para el acceso. Por ejemplo, para permitir el etiquetado durante la acción CreateTableBucket, debe crear una política que permita las acciones s3tables:TagResource y s3tables:CreateTableBucket. A continuación, puede utilizar la clave de condición aws:TagKeys para imponer que solo las etiquetas específicas se utilizan en la solicitud CreateTableBucket.

Esta clave de condición se aplica cuando se pasan claves de etiquetas en una operaciones de la API TagResource, UntagResource o CreateTableBucket o al etiquetar, desetiquetar o crear un bucket de tabla con etiquetas mediante la consola de Amazon S3, la interfaz de la línea de comandos (CLI) (CLI) de AWS o los AWS SDK.

Para ver una política de ejemplo, consulte 1.3: Política de IAM para controlar la modificación de las etiquetas de los recursos existentes manteniendo la gobernanza del etiquetado.

Para obtener más información y políticas de ejemplo, consulte Control del acceso en función de las claves de etiquetado en la Guía del usuario de AWS Identity and Access Management.

s3tables:TableBucketTag/tag-key

Use esta clave de condición para conceder permisos a datos específicos en buckets de tablas mediante etiquetas. Esta clave de condición actúa, en su mayor parte, sobre las etiquetas asignadas al bucket de tablas para todas las acciones de las tablas de S3. Incluso cuando se crea una tabla con etiquetas, esta clave de condición actúa sobre las etiquetas aplicadas al bucket de la tabla que contiene esa tabla. Las excepciones son:

  • Al crear un bucket de tablas con etiquetas, esta clave de condición actúa sobre las etiquetas de la solicitud.

Para ver una política de ejemplo, consulte 1.4: Uso de la clave de condición s3tables:TableBucketTag.

Políticas de ABAC de ejemplo para buckets de tablas

Consulte las políticas de ABAC de ejemplo siguientes para buckets de tablas de Amazon S3.

nota

Si usa Lake Formation para administra el acceso a las tablas de Amazon S3 y tiene una política basada en recursos de IAM o tablas de S3 que restringe los usuarios y los roles de IAM en función de las etiquetas de entidades principales, debe adjuntar las mismas etiquetas de entidades principales al rol de IAM que Lake Formation utiliza para acceder a los datos de Amazon S3 (por ejemplo, LakeFormationDataAccessRole) y conceder a este rol los permisos necesarios. Esto es necesario para que la política de control de acceso basada en etiquetas funcione correctamente con la integración de análisis de tablas de S3.

1.1: Política de bucket de tabla para restringir las operaciones en las tablas dentro del bucket de tabla mediante etiquetas

En esta política de bucket tablas, las entidades principales de IAM especificadas (usuarios y roles) pueden realizar la acción GetTable en cualquier tabla en el bucket de la tabla solo si el valor de la etiqueta project de la tabla coincide con el valor de la etiqueta de project de la entidad 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 de IAM para crear o modificar buckets de tablas con etiquetas específicas
nota

Si utiliza AWS Lake Formation para administrar el acceso a las tablas de Amazon S3 y utiliza ABAC con Tablas de Amazon S3, asegúrese de asignar también el rol de IAM para que Lake Formation asuma el acceso requerido. Para obtener más información sobre cómo configurar el rol de IAM para Lake Formation, consulte Requisitos previos para integrar el catálogo de tablas de Amazon S3 con el catálogo de datos y Lake Formation en la Guía para desarrolladores de AWS Lake Formation.

En esta política de IAM, los usuarios o roles con esta política solo pueden crear buckets de tablas de S3 si etiquetan el bucket de la tabla con la clave de etiqueta project y el valor de etiqueta Trinity en la solicitud de creación del bucket de tabla. También pueden agregar o modificar etiquetas en los buckets de tablas de S3 existentes, siempre que la solicitud de TagResource incluya el par clave-valor de etiqueta project:Trinity. Esta política no concede permisos de lectura, escritura o eliminación en los buckets de tablas ni en sus 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 de IAM para controlar la modificación de las etiquetas de los recursos existentes manteniendo la gobernanza del etiquetado

En esta política de IAM, las entidades principales de IAM (usuarios o roles) solo pueden modificar las etiquetas de un bucket de tabla si el valor de la etiqueta project del bucket de tabla coincide con el valor de la etiqueta project de la entidad principal. Solo se permiten las cuatro etiquetas project, environment, owner y cost-center especificadas en las claves de condición aws:TagKeys para estos buckets de tablas. Esto ayuda a reforzar la gobernanza de las etiquetas, evita las modificaciones no autorizadas de las etiquetas y mantiene la coherencia del esquema de etiquetado en todos los buckets de tablas.

{ "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: Uso de la clave de condición s3tables:TableBucketTag

En esta política de IAM, la instrucción de condición permite el acceso a los datos del bucket de tablas solo si el bucket de tablas tiene la clave de etiqueta Environment y el valor de etiqueta Production. s3tables:TableBucketTag/<tag-key> se diferencia de la clave de condición aws:ResourceTag/<tag-key> en que, además de controlar el acceso a los grupos de tablas en función de sus etiquetas, permite controlar el acceso a las tablas en función de las etiquetas de su bucket de tabla 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" } } } ] }

Administración de etiquetas para buckets de tablas

Puede agregar o administrar etiquetas para los buckets de tablas de S3 mediante la consola de Amazon S3, la interfaz de la línea de comandos (CLI) de AWS, los AWS SDK o mediante las API de S3: TagResource, UntagResource y ListTagsForResource. Para obtener más información, consulte los siguientes temas: