Políticas para el control de acceso basado en etiquetas
Puede utilizar las condiciones de su política basada en la identidad para controlar el acceso a las aplicaciones y a las ejecuciones de trabajo basadas en etiquetas.
Los siguientes ejemplos muestran distintos supuestos y formas de utilizar los operadores de condiciones con las claves de condición de EMR sin servidor. Estas instrucciones de política de IAM tienen fines demostrativos y no deben utilizarse en entornos de producción. Existen varias maneras de combinar las instrucciones de políticas para conceder y denegar permisos de acuerdo con sus requisitos. Para obtener más información sobre la planificación y las pruebas de políticas de IAM, consulte la Guía del usuario de IAM.
importante
La denegación de permisos explícita para acciones de etiquetado de acciones es un factor importante. Esto impide que los usuarios etiqueten un recurso y, de esta forma, se concedan a sí mismos permisos que usted no tenía previsto conceder. Si no se deniegan las acciones de etiquetado de un recurso, el usuario puede modificar las etiquetas y eludir la intención de las políticas basadas en etiquetas. Para ver un ejemplo de una política que deniega las acciones de etiquetado, consulte Denegar el acceso para agregar y eliminar etiquetas.
Los ejemplos que se muestran a continuación muestran las políticas de permisos basadas en identidades que se utilizan para controlar las acciones que se permiten con las aplicaciones de EMR sin servidor.
Permitir acciones solo en recursos con valores de etiqueta específicos
En el siguiente ejemplo de política, la condición StringEquals
intenta hacer coincidir dev
con el valor de la etiqueta Department. Si la etiqueta Department no se agregó a la aplicación o no contiene el valor dev
, la política no se aplica y esta política no permite las acciones. Si no hay otras instrucciones de política que permitan las acciones, el usuario solo puede trabajar con aplicaciones que tengan este valor para esta etiqueta.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:GetApplication" ], "Resource": "*", "Condition": { "StringEquals": { "emr-serverless:ResourceTag/department": "dev" } } } ] }
También puede especificar varios valores de etiqueta utilizando un operador de condición. Por ejemplo, a fin de permitir que todas las acciones o aplicaciones donde la etiqueta department
contiene el valor dev
o test
, podría sustituir el bloque de condición en el ejemplo anterior por los siguientes.
"Condition": { "StringEquals": { "emr-serverless:ResourceTag/department": ["dev", "test"] } }
Requerir etiquetado cuando se crea un recurso
En el siguiente ejemplo, la etiqueta debe aplicarse al crear la aplicación.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication" ], "Resource": "*", "Condition": { "StringEquals": { "emr-serverless:RequestTag/department": "dev" } } } ] }
La siguiente instrucción de política permite a un usuario crear una aplicación solo si la aplicación tiene una etiqueta department
, que puede contener cualquier valor.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication" ], "Resource": "*", "Condition": { "Null": { "emr-serverless:RequestTag/department": "false" } } } ] }
Denegar el acceso para agregar y eliminar etiquetas
Esta política impide que un usuario agregue o elimine etiquetas en las aplicaciones EMR sin servidor con una etiqueta department
cuyo valor no sea dev
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "emr-serverless:TagResource", "emr-serverless:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "emr-serverless:ResourceTag/department": "dev" } } } ] }