Uso de etiquetas con buckets de uso general de S3 - Amazon Simple Storage Service

Uso de etiquetas con buckets de uso general de S3

Una etiqueta de AWS es un par clave-valor que contiene metadatos acerca de los recursos, en este caso buckets de uso general de Amazon S3. Puede etiquetar los buckets de S3 al crearlos o administrar las etiquetas de los buckets 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 más allá de las tarifas estándar de solicitud de API de S3. Para obtener más información, consulte Precios de Amazon S3.

Formas habituales de utilizar etiquetas con buckets

Utilice etiquetas en los buckets de S3 para:

  1. Asignación de costos: realice un seguimiento de los costos de almacenamiento por etiqueta de bucket 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.

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

    nota

    Para buckets de uso general, ABAC no está habilitado de forma predeterminada. Para habilitar ABAC para buckets de uso general, consulte Habilitación de ABAC en buckets de uso general. Para los recursos de Amazon S3, como los puntos de acceso y los buckets de directorio, ABAC está habilitado de forma predeterminada. Puede usar las mismas etiquetas para la asignación de costos y para el control de acceso.

ABAC para buckets de uso general de S3

Los buckets de uso general 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, IAM y de S3 de AWS. Para las empresas, 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 S3 en función de las etiquetas del bucket mediante las siguientes claves de condición globales:

  • 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. S3 evalúa esta clave de condición solo después de activar ABAC en el bucket. Por ejemplo, puede requerir que el acceso a un recurso solo se permita si el recurso tiene la clave de etiqueta Dept adjunta con el valor Marketing. Para obtener más información, consulte Control del acceso a los recursos de AWS.

  • 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 incluya la clave de etiqueta Dept y que tenga el valor Accounting. Para obtener más información, consulte Control del acceso durante solicitudes de AWS. Puede utilizar esta clave de condición para restringir qué pares de clave-valor de etiqueta se pueden pasar durante las operaciones de API TagResource y CreateBucket.

  • 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. Como práctica recomendada cuando utilice políticas para controlar el acceso mediante etiquetas, utilice la clave de condición aws:TagKeys para definir lo que se permite realizar a las claves de etiqueta. Para obtener más información y políticas de ejemplo, consulte Control del acceso en función de las claves de etiqueta.

  • s3:BucketTag/tag-key

    • Use esta clave de condición para conceder permisos a datos específicos en buckets mediante etiquetas. Esta clave de condición solo se aplica después de habilitar ABAC en el bucket. Al acceder a un bucket mediante un punto de acceso, la clave de condición aws:ResourceTag/tag-key hace referencia a las etiquetas del bucket de directorio al autorizar contra el punto de acceso y contra el bucket. Solo s3:BucketTag/tag-key hará referencia a las etiquetas del bucket para el que se está autorizando.

nota

Al crear buckets con etiquetas, tenga en cuenta que las condiciones basadas en etiquetas para acceder al bucket mediante las claves de condición aws:ResourceTag y s3:BucketTag solo se aplican después de habilitar ABAC en el bucket. Para obtener más información, consulte Habilitación de ABAC en buckets de uso general.

Políticas de ABAC de ejemplo para buckets

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

1.1: Política de IAM para crear o modificar buckets con etiquetas específicas

En esta política de IAM, los usuarios o roles con esta política solo pueden crear buckets de S3 si etiquetan el bucket con la clave de etiqueta project y el valor de etiqueta Trinity en la solicitud de creación del bucket. También pueden agregar o modificar etiquetas en los buckets 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 ni en sus objetos.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateBucketWithTags", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }

1.2: Política de bucket para restringir las operaciones

En esta política de bucket, las entidades principales de IAM (usuarios y roles) rechazan las acciones s3:ListBucket, s3:GetObject y s3:PutObject en el bucket solo si el valor de la etiqueta project del bucket coincide con el valor de la etiqueta project de la entidad principal.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyObjectOperations", "Effect": "Deny", "Principal": "*", "Action": ["s3:ListBucket", "s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::aws-s3-demo/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }

1.3: Política de IAM para modificar las etiquetas de los recursos existentes

En esta política de IAM, las entidades principales de IAM (usuarios o roles) solo pueden modificar las etiquetas de un bucket si el valor de la etiqueta project del bucket 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. 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.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3:TagResource", "s3:CreateBucket" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }

1.4: Uso de la clave de condición s3:BucketTag

En esta política de IAM, la instrucción de condición permite el acceso a los datos del bucket de aws-s3-demo solo si el bucket tiene la clave de etiqueta Environment y el valor de etiqueta Production.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessViaSpecificBucket", "Effect": "Allow", "Action": "*", "Resource": ["arn:aws:s3:::aws-s3-demo","arn:aws:s3:::aws-s3-demo/*"], "Condition": { "StringEquals": { "s3:BucketTag/Environment": "Production" } } } ] }

Puede agregar o administrar etiquetas para los buckets 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: