Accorder l’autorisation de baliser les ressources lors de la création - Amazon Elastic Compute Cloud

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.

Accorder l’autorisation de baliser les ressources lors de la création

Certaines actions d’API Amazon EC2 de création de ressources vous permettent de spécifier des balises lorsque vous créez la ressource. Vous pouvez utiliser des balises de ressource pour implémenter le contrôle basé sur les attributs (ABAC). Pour plus d’informations, consultez Etiqueter vos ressources et Contrôler l’accès aux ressources EC2 à l’aide des balises de ressources.

Pour permettre aux utilisateurs d’attribuer des balises aux ressources au moment de la création, ils doivent avoir les autorisations d’utiliser l’action qui crée la ressource (par exemple, ec2:RunInstances ou ec2:CreateVolume). Si les balises sont spécifiées dans l’action de création de ressources, Amazon effectue une autorisation supplémentaire sur l’action ec2:CreateTags pour vérifier si les utilisateurs sont autorisés à créer des balises. Par conséquent, les utilisateurs doivent également avoir des autorisations explicites d’utiliser l’action ec2:CreateTags.

Dans la définition de stratégie IAM de l’action ec2:CreateTags, utilisez l’élément Condition avec la clé de condition ec2:CreateAction pour accorder des autorisations de balisage à l’action qui crée la ressource.

L’exemple suivant illustre une politique qui permet aux utilisateurs de lancer des instances et d’appliquer des balises aux instances et aux volumes pendant le lancement. Les utilisateurs ne sont pas autorisés à attribuer des balises aux ressources existantes (ils ne peuvent pas appeler l’action ec2:CreateTags directement).

{ "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:region:account:*/*", "Condition": { "StringEquals": { "ec2:CreateAction" : "RunInstances" } } } ] }

De même, la politique suivante permet aux utilisateurs de créer des volumes et appliquer des balises à des volumes pendant la création de volume. Les utilisateurs ne sont pas autorisés à attribuer des balises aux ressources existantes (ils ne peuvent pas appeler l’action ec2:CreateTags directement).

{ "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateVolume" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:region:account:*/*", "Condition": { "StringEquals": { "ec2:CreateAction" : "CreateVolume" } } } ] }

L’action ec2:CreateTags est uniquement évaluée si les balises sont appliquées pendant l’action de création de ressources. Par conséquent, un utilisateur qui est autorisé à créer une ressource (en supposant qu’il n’existe aucune condition de balisage) n’a pas besoin des autorisations d’utiliser l’action ec2:CreateTags si aucune balise n’est spécifié dans la demande. Toutefois, si l’utilisateur essaie de créer une ressource avec des balises, la demande échoue s’il n’a pas les autorisations d’utiliser l’action ec2:CreateTags.

L’action ec2:CreateTags est également évaluée si des balises sont fournies dans un modèle de lancement. Pour un exemple de politique, consultez Balises dans un modèle de lancement.

Contrôler l’accès à des balises spécifiques

Vous pouvez utiliser des conditions supplémentaires dans l’élément Condition de vos stratégies IAM pour contrôler les clés de balise et les valeurs qui peuvent être appliquées aux ressources.

Les clés de condition suivantes peuvent être utilisées avec les exemples de la section précédente :

  • aws:RequestTag : Pour indiquer qu’une clé de balise ou une clé et valeur de balise particulière doit être présente dans une demande. D’autres balises peuvent également être spécifiées dans la demande.

    • Utilisez avec l’opérateur de condition StringEquals pour appliquer une combinaison de clé de balise et de valeur spécifique ; par exemple, pour appliquer la balise cost-center=cc123 :

      "StringEquals": { "aws:RequestTag/cost-center": "cc123" }
    • A utiliser avec l’opération de condition StringLike pour appliquer une clé de balise spécifique dans la demande ; par exemple, pour appliquer la clé de balise purpose:

      "StringLike": { "aws:RequestTag/purpose": "*" }
  • aws:TagKeys : Pour appliquer les clés de balise qui sont utilisées dans la demande.

    • A utiliser avec le modificateur ForAllValues pour appliquer des clés de balise spécifiques si celles-ci sont fournies dans la demande (si les balises sont spécifiées dans la demande, seules les clés de balise spécifiques sont autorisées ; aucune autre balise n’est autorisée). Par exemple, les clés de balise environment ou cost-center sont autorisées :

      "ForAllValues:StringEquals": { "aws:TagKeys": ["environment","cost-center"] }
    • A utiliser avec le modificateur ForAnyValue pour appliquer la présence d’au moins l’une des clés de balise spécifiées dans la demande. Par exemple, au moins l’une des clés de balise environment ou webserver doit être présente dans la demande :

      "ForAnyValue:StringEquals": { "aws:TagKeys": ["environment","webserver"] }

Ces clés de condition peuvent être appliqués aux actions de création de ressources qui prennent en charge le balisage ainsi qu’aux actions ec2:CreateTags et ec2:DeleteTags. Pour savoir si une action d’API Amazon EC2 prend en charge le balisage, consultez la section Actions, ressources et clés de condition pour Amazon EC2.

Pour forcer les utilisateurs à spécifier des balises quand ils créent une ressource, vous devez utiliser la clé de condition aws:RequestTag ou la clé de condition aws:TagKeys avec le modificateur ForAnyValue sur l’action de création de ressources. L’action ec2:CreateTags n’est pas évaluée si un utilisateur ne spécifie pas de balises pour l’action de création de ressources.

Pour les conditions, la clé de condition n’est pas sensible à la casse et la valeur de la condition est sensible à la casse. Par conséquent pour forcer la sensibilité à la casse d’une clé de balise, utilisez la clé de condition aws:TagKeys, où la clé de balise est indiquée comme une valeur dans la condition.

Par exemple les stratégies IAM, consultez Exemples de politiques pour travailler avec le AWS CLI ou un AWS SDK. Pour plus d’informations sur les conditions à valeur multiples, consultez Création d’une condition qui teste plusieurs valeurs de clés dans le IAM Guide de l’utilisateur.