Uso de etiquetas con tablas de S3
Una etiqueta de AWS es un par clave-valor que contiene metadatos acerca de los recursos, en este caso tablas de Amazon S3. Puede etiquetar las tablas de S3 al crearlas o administrar las etiquetas en tablas 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 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 tablas
Utilice etiquetas en las tablas de S3 para:
-
Asignación de costos: realice un seguimiento de los costos de almacenamiento por etiqueta de tabla en Administración de facturación y costos de AWS. Para obtener más información, consulte Uso de etiquetas de asignación de costos.
-
Control de acceso basado en atributos (ABAC): escale los permisos de acceso y conceda acceso a las tablas de S3 en función de las etiquetas. Para obtener más información, consulte Uso de etiquetas para ABAC.
nota
Puede usar las mismas etiquetas para la asignación de costos y para el control de acceso.
ABAC para tablas de S3
Las tablas 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 tablas 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 las tablas de S3 en función de las etiquetas 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 una tabla solo se permita si la tabla tiene la clave de etiqueta Department con el valor Marketing.
Esta clave de condición se aplica a todas las acciones de las 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.
Para ver una política de ejemplo, consulte 1.1: Política de tabla para restringir las operaciones en la 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 una 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 CreateTable o TagResource o al etiquetar o crear una 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 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 CreateTable, debe crear una política que permita las acciones s3tables:TagResource y s3tables:CreateTable. 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 CreateTable.
Esta clave de condición se aplica cuando se pasan claves de etiquetas en una operaciones de la API TagResource, UntagResource o CreateTable o al etiquetar, desetiquetar o crear una tabla con etiquetas mediante la interfaz de la línea de comandos (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 tablas
Consulte las políticas de ABAC de ejemplo siguientes para tablas de Amazon S3.
nota
Si 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 tabla para restringir las operaciones en la tabla mediante etiquetas
En esta política de tablas, las entidades principales de IAM especificadas (usuarios y roles) pueden realizar la acción GetTable 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/my_example_tab;e", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.2: Política de IAM para crear o modificar tablas con etiquetas específicas
En esta política de IAM, los usuarios o roles con esta política solo pueden crear tablas de S3 si etiquetan la tabla con la clave de etiqueta project y el valor de etiqueta Trinity en la solicitud de creación de la tabla. También pueden agregar o modificar etiquetas en las 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 las tablas ni en sus 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 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 una tabla si el valor de la etiqueta project de la 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 estas 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 todas las 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/my_example_table", "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 tablas
Puede agregar o administrar etiquetas para las 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: