¿Cómo puedo crear una política de IAM para la restricción basada en etiquetas con las claves de condición PrincipalTag, ResourceTag, RequestTag y TagKeys?
Quiero crear una política de AWS Identity and Access Management (IAM) para la restricción basada en etiquetas. Quiero utilizar las claves de condición PrincipalTag, ResourceTag, RequestTag y TagKeys.
Resolución
En los siguientes ejemplos de políticas de IAM, se utilizan claves de condición para crear una restricción basada en etiquetas.
Nota: Para determinar las acciones de la API que puede realizar, se recomienda revisar la documentación de la API del servicio que está utilizando.
Clave de condición PrincipalTag
Utilice la clave de condición aws:PrincipalTag/Tag-key para hacer coincidir la etiqueta adjunta al director que realiza la solicitud con la etiqueta de la política de IAM.
En el siguiente ejemplo de política de IAM se proporcionan restricciones para un bucket de Amazon Simple Storage Service (Amazon S3). La acción PutObject de Amazon S3 deniega acceso al bucket a todos los usuarios, salvo los que tienen el título Product-Manager:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllButProductManagers", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::productionbucket/*" ], "Condition": { "StringNotEquals": { "aws:PrincipalTag/job-title": "Product-Manager" } } } ] }
Clave de condición ResourceTag
Utilice la clave de condición aws:ResourceTag/tag-key para comparar el par clave-valor especificado en la política de IAM con el par clave-valor asociado al registro de AWS. Para obtener más información, consulte Control del acceso a los recursos de AWS.
Puede usar esta clave de condición con la versión global de aws:ResourceTag y con los servicios de AWS, como ec2:ResourceTag. Para obtener más información, consulte Acciones, recursos y claves de condición de los servicios de AWS.
El siguiente ejemplo de política de IAM permite a los usuarios iniciar, detener y terminar instancias en el entorno de prueba:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyForTestEnvironment", "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ec2:ResourceTag/Env": "test" } } } ] }
Clave de condición RequestTag
Utilice la clave de condición aws:RequestTag/tag-key para comparar el par clave-valor transferido en la solicitud del usuario con el par de etiquetas especificado en la política de IAM. Puede usar esta clave de condición para las acciones que crean un recurso o una etiqueta de recurso y comprueban el valor de la etiqueta.
El siguiente ejemplo de política obliga a los usuarios a crear una etiqueta Env específica cuando crean un volumen de Amazon Elastic Block Store (Amazon EBS). Env debe tener los valores Dev, Prod o QA:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateVolumeWithEnvTag", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "StringEquals": { "aws:RequestTag/Env": [ "Dev", "Prod", "QA" ] } } } ] }
Clave de condición TagKeys
Utilice la clave de condición aws:TagKeys para comparar las claves de etiqueta en una solicitud con las especificadas en la política de IAM. Esta clave de condición valida las claves de etiqueta que se adjuntan a un recurso.
Dado que puede definir varios pares clave-valor de etiqueta en una solicitud, dicha solicitud puede tener diversos valores. Para comparar estos valores, utilice los operadores de conjunto ForAllValues o ForAnyValue.
En la siguiente política de ejemplo se restringen las etiquetas creadas en un recurso de AWS. Las etiquetas Env y CostCenter son las únicas claves de etiqueta que los usuarios pueden crear con un nuevo volumen de Amazon EBS. El uso del operador colectivo ForAllValues con aws:TagKeys hace que los usuarios solo puedan asociar las etiquetas requeridas en el recurso de AWS. Esta política no requiere que los usuarios proporcionen estas claves de etiqueta en la solicitud de creación de recursos. En cambio, la política no permite a los usuarios crear etiquetas con otros pares clave-valor:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "Env", "CostCenter" ] } } } ] }
Información relacionada
Tutorial de IAM: definición de permisos para acceder a los recursos de AWS en función de etiquetas
Contenido relevante
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 meses