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 etiqueta específica

La siguiente política de permisos concede a un usuario permiso para leer objetos, pero la condición limita el permiso de lectura a objetos que tengan los siguientes valor y clave específicos de la etiqueta.

security : public

Tenga en cuenta que la política usa la clave condicional de Amazon S3, s3:ExistingObjectTag/<tag-key> para especificar la clave y el valor.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::awsexamplebucket1/*", "Principal": "*", "Condition": { "StringEquals": {"s3:ExistingObjectTag/security": "public" } } } ] }
ejemplo 2: Permitir a un usuario agregar etiquetas de objetos con restricciones sobre las claves de etiqueta permitidas

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 limita las claves de etiqueta que puede usar el usuario. La condición usa la clave condicional s3:RequestObjectTagKeys para especificar el conjunto de claves de etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ], "Principal":{ "CanonicalUser":[ "64-digit-alphanumeric-value" ] }, "Condition": { "ForAllValues:StringLike": { "s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }

La política garantiza que el conjunto de etiquetas, si se especifica en la solicitud, tenga las claves especificadas. Un usuario podría enviar un conjunto de etiquetas vacías en PutObjectTagging, lo cual está permitido por esta política (un conjunto de etiquetas vacío en la solicitud elimina las etiquetas existentes en el objeto). Si quiere evitar que un usuario elimine el conjunto de etiquetas, puede agregar otra condición para garantizar que el usuario proporcione al menos un valor. El ForAnyValue de la condición garantiza que al menos uno de los valores especificados estará presente en la solicitud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ], "Principal":{ "AWS":[ "arn:aws:iam::account-number-without-hyphens:user/username" ] }, "Condition": { "ForAllValues:StringLike": { "s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] }, "ForAnyValue:StringLike": { "s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }

Para obtener más información, consulte Creación de una condición que pruebe valores de varias claves (operaciones de definición) en la guía para usuarios de IAM.

ejemplo 3: Permitir a un usuario agregar etiquetas de objetos que incluyan una clave y un valor de una etiqueta específica

La siguiente política de usuario 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 requiere que el usuario incluya una etiqueta específica (Project) con un valor X.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ], "Principal":{ "AWS":[ "arn:aws:iam::account-number-without-hyphens:user/username" ] }, "Condition": { "StringEquals": { "s3:RequestObjectTag/Project": "X" } } } ] }