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.
Syntaxe des politiques de balises et exemples
Cette page décrit la syntaxe des politiques de balises et fournit des exemples.
Rubriques
Syntaxe des politiques de balises
Une politique de balises est un fichier texte brut qui est structuré conformément aux règles de JSON
La politique de balises suivante présente une syntaxe de base :
{ "tags": { "costcenter": { "tag_key": { "@@assign": "CostCenter" }, "tag_value": { "@@assign": [ "100", "200", "300*" ] }, "enforced_for": { "@@assign": [ "secretsmanager:ALL_SUPPORTED" ] } } } }
La syntaxe d'une politique de balises inclut les composants suivants :
-
Le nom de clé du champ
tags. Les politiques de balises commencent toujours par ce nom de clé fixe. Il s'agit de la ligne du haut dans l'exemple de politique ci-dessus. -
Une clé de politique qui identifie de manière unique l'instruction de politique. Elle doit correspondre à la valeur de la clé de balise, sauf pour le traitement de la casse. La valeur de la politique distingue les majuscules et minuscules.
Dans cet exemple,
costcenterest la clé de politique. -
Au moins une clé de balise qui spécifie la clé de balise autorisée avec l'utilisation des majuscules avec laquelle vous souhaitez que les ressources soient conformes. Si le traitement de la casse n'est pas défini, les clés de balise utilisent des minuscules par défaut. La valeur de la clé de balise doit correspondre à celle de la clé de politique. Toutefois, étant donné que la valeur de la clé de politique n'est pas sensible à la casse, l'usage de la casse peut être différent.
Dans cet exemple,
CostCenterest la clé de balise. Il s'agit du traitement de casse requis pour la conformité à la politique de balises. Les ressources qui utilisent un autre traitement de la casse pour cette clé de balise ne sont pas conformes à la politique de balises.Vous pouvez définir plusieurs clés de balise dans une politique de balises.
-
(Facultatif) Une liste d'une ou plusieurs valeurs de balise acceptables pour la clé de balise. Si la politique de balises ne spécifie pas de valeur de balise pour une clé de balise, toutes les valeurs (y compris aucune valeur) sont considérées comme conformes.
Dans cet exemple, les valeurs acceptables pour la clé de
CostCenterbalise sont100200, et300*. -
(Facultatif) Une option
enforced_forqui indique s'il convient d'empêcher toute opération de balisage non conforme sur les services et ressources spécifiés. Dans la console, il s'agit de l'option Empêcher les opérations non conformes pour cette balise dans l'éditeur visuel permettant de créer des politiques de balises. La valeur par défaut de cette option est null.L'exemple de politique de balise indique que la
CostCenterbalise appliquée à toutes les AWS Secrets Manager ressources doit être conforme à cette politique.Avertissement
Vous ne devez modifier cette option par défaut que si vous êtes familiarisé avec l'utilisation de politiques de balises. Sinon, vous risquez d'empêcher des utilisateurs de comptes de votre organisation de créer les ressources dont ils ont besoin.
-
Des opérateurs qui spécifient la manière dont la politique de balises fusionne avec les autres politiques de balises dans l'arborescence de l'organisation pour créer la politique de balises effective d'un compte. Dans cet exemple,
@@assignest utilisé pour affecter des chaînes àtag_key,tag_valueetenforced_for. Pour plus d'informations sur les opérateurs, consultez Opérateurs d'héritage. -
Vous pouvez utiliser le
*caractère générique dans les valeurs des balises.-
Vous pouvez utiliser un caractère générique par valeur de balise. Par exemple,
*@example.comest autorisé, contrairement à*@*.com. -
Vous pouvez utiliser le
ALL_SUPPORTEDcaractère génériqueenforced_forsur le terrain pour certains services afin de permettre l'application de toutes les ressources prises en charge pour ce service. Pour obtenir la liste des services et des types de ressources qui prennent en chargeenforced_for, consultez Services et types de ressource prenant en charge l'application. -
Vous ne pouvez pas utiliser un caractère générique pour spécifier tous les services ou pour spécifier une ressource pour tous les services.
-
Exemples de politiques de balises
Les exemples de politiques de balises qui suivent sont fournis à titre informatif uniquement.
Note
Avant de tenter d'utiliser ces exemples de politiques de balises dans votre organisation, notez les éléments suivants :
-
Assurez-vous d'avoir suivi le flux de travail recommandé pour commencer à utiliser les politiques de balises.
-
Vous devez vérifier attentivement et personnaliser ces politiques de balises en fonction de vos exigences uniques.
-
Tous les caractères de votre politique de balises sont soumis à une taille maximale. Les exemples présentés dans ce manuel illustrent des politiques de balises formatées avec des espaces supplémentaires pour une meilleure lisibilité. Toutefois, pour gagner de l'espace si la taille de votre politique approche la limite maximale, vous pouvez supprimer tous les espaces. Les espacements et les sauts de ligne à l'extérieur des guillemets sont des exemples d'espaces.
-
Les ressources non balisées n'apparaissent pas dans les résultats comme étant non conformes.
Exemple 1 : Définition d'une casse de clé de balise à l'échelle de l'organisation
L'exemple suivant illustre une politique de balises qui définit uniquement deux clés de balise et la casse selon laquelle vous souhaitez standardiser les comptes de votre organisation.
Politique A : politique de balise attachée à la racine de l'organisation
{ "tags": { "CostCenter": { "tag_key": { "@@assign": "CostCenter", "@@operators_allowed_for_child_policies": ["@@none"] } }, "Project": { "tag_key": { "@@assign": "Project", "@@operators_allowed_for_child_policies": ["@@none"] } } } }
Cette politique de balises définit deux clés de balise : CostCenter et Project. L'attachement de cette politique de balises à la racine de l'organisation a les effets suivants :
-
Tous les comptes de votre organisation héritent de cette politique de balises.
-
Tous les comptes de votre organisation doivent utiliser le traitement de casse défini pour assurer la conformité. Les ressources avec des balises
CostCenteretProjectsont conformes. Les ressources avec un usage de la casse différent pour la clé de balise (par exemplecostcenter,Costcenter, ouCOSTCENTER) ne sont pas conformes. -
Les lignes
@@operators_allowed_for_child_policies": ["@@none"]« verrouillent » les clés de balise. Les politiques de balises attachées plus bas dans l'arborescence de l'organisation (politiques enfants) ne peuvent pas utiliser les opérateurs de définition de valeur pour modifier la clé de balise, y compris son traitement de la casse. -
Comme avec toutes les politiques de balises, les ressources non balisées ou les balises qui ne sont pas définies dans la politique de balises ne sont pas soumises à une évaluation de leur conformité à la politique de balises.
AWS vous recommande d'utiliser cet exemple comme guide pour créer une politique de balise similaire pour les clés de balise que vous souhaitez utiliser. Attachez-la à la racine de l'organisation. Créez ensuite une politique de balises similaire à l'exemple suivant, qui définit uniquement les valeurs admises pour les clés de balise définies.
Étape suivante : Définir des valeurs
Supposons que vous avez attaché la politique de balises précédente à la racine de l'organisation. Vous pouvez ensuite créer une politique de balises comme suit, puis l'attacher à un compte. Cette politique définit les valeurs admises pour les clés de balise CostCenter et Project.
Politique B : politique de balise attachée à un compte
{ "tags": { "CostCenter": { "tag_value": { "@@assign": [ "Production", "Test" ] } }, "Project": { "tag_value": { "@@assign": [ "A", "B" ] } } } }
Si vous attachez la politique A à la racine de l'organisation et la politique B à un compte, les politiques se combinent pour créer la politique de balises effective suivante pour le compte :
Stratégie A + stratégie B = stratégie de balise effective pour le compte
{ "tags": { "Project": { "tag_value": [ "A", "B" ], "tag_key": "Project" }, "CostCenter": { "tag_value": [ "Production", "Test" ], "tag_key": "CostCenter" } } }
Pour plus d'informations sur l'héritage des politiques, notamment des exemples de fonctionnement des opérateurs d'héritage et des exemples de politiques de balises efficaces, consultezComprendre l'héritage des politiques déclaratives.
Exemple 2 : Empêcher l'utilisation d'une clé de balise
Pour empêcher l'utilisation d'une clé de balise, vous pouvez attacher une politique de balises telle que la suivante à une entité d'organisation.
Cet exemple de politique spécifie qu'aucune valeur n'est acceptable pour la clé de balise Color. Il spécifie également qu'aucun opérateur n'est autorisé dans les politiques de balises enfants. Par conséquent, toutes les balises Color sur les ressources des comptes concernés sont considérées comme non conformes. Toutefois, l'option enforced_for empêche effectivement les comptes concernés de baliser uniquement les tables Amazon DynamoDB avec la balise Color.
{ "tags": { "Color": { "tag_key": { "@@operators_allowed_for_child_policies": [ "@@none" ], "@@assign": "Color" }, "tag_value": { "@@operators_allowed_for_child_policies": [ "@@none" ], "@@assign": [] }, "enforced_for": { "@@assign": [ "dynamodb:table" ] } } } }
Exemple 3 : Spécifier une politique de balises pour tous les types de ressources pris en charge par un utilisateur spécifique AWS web
Pour définir une politique de balises pour tous les types de ressources pris en charge par un AWS service spécifique, vous utilisez le ALL_SUPPORTED caractère générique.
Cette politique utilise le ALL_SUPPORTED caractère générique pour spécifier que toutes les instances Amazon EC2 dotées de la Environment clé de balise ne peuvent avoir qu'une valeur Prod de balise égale à ou. Non-prod Ce joker constitue une alternative efficace sur une seule ligne à la liste individuelle de chaque instance Amazon EC2. Pour obtenir la liste des services et des types de ressources compatibles avec le ALL_SUPPORTED caractère générique, consultezServices et types de ressource prenant en charge l'application.
{ "tags": { "Environment": { "tag_key": { "@@assign": "Environment", "@@operators_allowed_for_child_policies": ["@@none"] }, "tag_value": { "@@assign": [ "Prod", "Non-prod" ], "@@operators_allowed_for_child_policies": ["@@none"] }, "enforced_for": { "@@assign": [ "ec2:ALL_SUPPORTED" ] } } } }
Exemple 4 : appliquer les clés de balise requises pour garantir la conformité
Cet exemple montre comment définir une politique de balises qui exige que toutes les ressources incluent des balises de conformité obligatoires. Organisations utilisent généralement ce modèle pour garantir une allocation des coûts, un suivi de propriété et une identification de l'environnement appropriés.
{ "tags": { "CostCenter": { "report_required_tag_for": { "@@assign": [ "ec2:instance", "s3:bucket", "rds:db", "lambda:function" ] }, "tag_key": { "@@assign": "CostCenter" } }, "Environment": { "report_required_tag_for": { "@@assign": [ "ec2:ALL_SUPPORTED", "rds:ALL_SUPPORTED", "s3:ALL_SUPPORTED" ] }, "tag_key": { "@@assign": "Environment" }, "tag_value": { "@@assign": [ "Production", "Staging", "Development", "Test" ] } }, "Owner": { "report_required_tag_for": { "@@assign": [ "ec2:ALL_SUPPORTED" ] }, "tag_key": { "@@assign": "Owner" } } } }
Lorsque vous appliquez cette politique et configurez votre outil IaC avec l'application de la politique de balises :
-
CostCenter: obligatoire pour les instances EC2, les compartiments S3, les bases de données RDS et les fonctions Lambda
-
Environnement : obligatoire pour toutes les ressources EC2, RDS et S3, les valeurs autorisées étant limitées à la production, à la préparation, au développement ou aux tests
-
Propriétaire : obligatoire pour toutes les ressources EC2 de votre organisation
Exemple de code d'infrastructure conforme à cette politique :
EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-0c02fb55956c7d316 InstanceType: t2.micro Tags: - Key: CostCenter Value: CC-12345 - Key: Environment Value: Test - Key: Owner Value: john.doe@company.com
Si vous tentez de créer une ressource sans les balises requises, votre déploiement iAc échouera ou générera un avertissement pendant la phase de planification, en fonction de votre configuration. Lorsqu'il est configuré en mode échec, le déploiement est bloqué avant la création de toute ressource. Lorsqu'il est configuré en mode avertissement, le déploiement se poursuit mais alerte votre équipe en cas de balises manquantes. Le message d'erreur de validation identifie exactement les balises requises manquantes et les ressources qui en ont besoin.
Pour des instructions de configuration spécifiques à votre outil IaC :
-
CloudFormation: Voir Renforcez avec CloudFormation pour activer le crochet de conformité au balisage
-
Terraform : voir Appliquer avec Terraform pour activer la validation des politiques de balises dans le fournisseur AWS
-
Remarque : Voir Renforcez avec Pulumi pour activer le pack de politiques Tag Policy Reporting