Politiques de contrôle d'accès basées sur les balises - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Politiques de contrôle d'accès basées sur les balises

Vous pouvez utiliser des conditions dans votre politique basée sur l'identité pour contrôler l'accès aux applications et aux exécutions de tâches en fonction des balises.

Les exemples suivants illustrent différents scénarios et méthodes d'utilisation des opérateurs de condition avec des clés de condition EMR sans serveur. Ces déclarations IAM de politique sont destinées à des fins de démonstration uniquement et ne doivent pas être utilisées dans des environnements de production. Il existe plusieurs façons de combiner des instructions de stratégie pour accorder et refuser des autorisations selon vos besoins. Pour plus d'informations sur les IAM politiques de planification et de test, consultez le guide de IAM l'utilisateur.

Important

Le refus explicite d'autoriser l'attribution de balises doit être pris en considération. Cela empêche les utilisateurs de baliser une ressource et de s'accorder ainsi des autorisations que vous n'aviez pas l'intention d'accorder. Si les actions de balisage d'une ressource ne sont pas refusées, un utilisateur peut modifier les balises et contourner l'intention des politiques basées sur les balises. Pour un exemple de politique qui refuse les actions de balisage, consultez Refuser l'accès pour ajouter et supprimer des balises.

Les exemples ci-dessous illustrent les politiques d'autorisation basées sur l'identité qui sont utilisées pour contrôler les actions autorisées avec les applications EMR sans serveur.

Autorisation d'actions uniquement sur les ressources ayant des valeurs de balises spécifiques

Dans l'exemple de politique suivant, l'opérateur de StringEquals condition essaie de faire dev correspondre la valeur du département des balises. Si le département des balises n'a pas été ajouté à l'application ou ne contient pas la valeurdev, la politique ne s'applique pas et les actions ne sont pas autorisées par cette politique. Si aucune autre déclaration de politique n'autorise les actions, l'utilisateur ne peut travailler qu'avec les applications dotées de cette balise avec cette valeur.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:GetApplication" ], "Resource": "*", "Condition": { "StringEquals": { "emr-serverless:ResourceTag/department": "dev" } } } ] }

Vous pouvez également spécifier plusieurs valeurs de balise à l'aide d'un opérateur de condition. Par exemple, pour autoriser des actions sur des applications où la department balise contient la valeur devtest, vous pouvez remplacer le bloc de condition dans l'exemple précédent par le suivant.

"Condition": { "StringEquals": { "emr-serverless:ResourceTag/department": ["dev", "test"] } }

Exiger le balisage lors de la création d'une ressource

Dans l'exemple ci-dessous, la balise doit être appliquée lors de la création de l'application.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication" ], "Resource": "*", "Condition": { "StringEquals": { "emr-serverless:RequestTag/department": "dev" } } } ] }

La déclaration de politique suivante permet à un utilisateur de créer une application uniquement si celle-ci possède une department balise, qui peut contenir n'importe quelle valeur.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication" ], "Resource": "*", "Condition": { "Null": { "emr-serverless:RequestTag/department": "false" } } } ] }

Refuser l'accès pour ajouter et supprimer des balises

Cette politique empêche un utilisateur d'ajouter ou de supprimer des balises dans les applications EMR sans serveur dont la valeur n'est pas dev la même. department

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "emr-serverless:TagResource", "emr-serverless:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "emr-serverless:ResourceTag/department": "dev" } } } ] }