Etiquetado y políticas de control de acceso - Amazon Simple Storage Service

Etiquetado y políticas de control de acceso

También puede usar políticas de permisos (políticas de bucket y usuario) para administrar los permisos relacionados con el etiquetado de objetos. Para ver acciones de políticas, consulte los siguientes temas:

Las etiquetas de objetos permiten un control de acceso pormenorizado para administrar permisos. Puede otorgar permisos condicionales en función de las etiquetas de objetos. Amazon S3 admite las siguientes claves de condiciones que puede usar para conceder permisos condicionales basados en etiquetas de objetos.

  • s3:ExistingObjectTag/<tag-key>: use esta clave condicional para verificar una etiqueta de objeto existente tiene una clave y un valor específicos para la etiqueta.

    nota

    Al conceder permisos para las operaciones PUT Object y DELETE Object, esta clave condicional no se admite. Es decir, no puede crear una política para conceder o denegar permisos a un usuario para eliminar o sobrescribir un objeto en función de sus etiquetas existentes.

  • s3:RequestObjectTagKeys: use esta clave condicional para restringir las claves de etiqueta que quiera permitir en objetos. Esto resulta útil al agregar etiquetas a objetos con PutObjectTagging y PutObject y con las solicitudes POST para objetos.

  • s3:RequestObjectTag/<tag-key>: use esta clave condicional para restringir las claves y valores de etiqueta que quiera permitir en objetos. Esto resulta útil al agregar etiquetas a objetos con PutObjectTagging y PutObject y con las solicitudes POST para buckets.

Para obtener una lista completa de las claves condicionales específicas de servicio de Amazon S3, consulte Ejemplos de claves de condición de Amazon S3. Las siguientes políticas de permisos ilustran cómo el etiquetado de objetos facilita una administración de permisos de acceso pormenorizada.

ejemplo 1: Permitir a un usuario leer solo los objetos que tienen una clave y valor de etiqueta específicos

La siguiente política de permisos limita al usuario a leer solo los objetos que tengan la clave y el valor de la etiqueta environment: production. Esta política usa la clave de condición s3:ExistingObjectTag para especificar la clave y el valor de etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": ["s3:GetObject", "s3:GetObjectVersion"], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": {"s3:ExistingObjectTag/environment": "production"} } } ] }
ejemplo 2: Restringir las claves de etiqueta de objetos que los usuarios pueden agregar

La siguiente política de permisos concede permisos a un usuario para realizar la acción s3:PutObjectTagging, lo que permite al usuario agregar etiquetas a un objeto existente. La condición usa la clave de condición s3:RequestObjectTagKeys para especificar las claves de etiqueta permitidas, como Owner o CreationDate. Para obtener más información, consulte Creación de una condición que pruebe valores de varias claves en la Guía para usuarios de IAM.

La política garantiza que cada clave de etiqueta especificada en la solicitud sea una clave de etiqueta autorizada. El calificador ForAnyValue de la condición garantiza que al menos una de las claves especificadas estará presente en la solicitud.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }
ejemplo 3: Requerir una clave y un valor de etiqueta específica al permitir a los usuarios agregar etiquetas de objetos

La política de ejemplo siguiente concede un permiso de usuario para realizar la acción s3:PutObjectTagging, lo que permite al usuario agregar etiquetas a un objeto existente. La condición requiere que el usuario incluya una clave de etiqueta específica (como Project) con el valor establecido en X.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X" } } } ] }