View a markdown version of this page

Validez les modèles avec cloudformation-validate - AWS CloudFormation

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.

Validez les modèles avec cloudformation-validate

Le cloudformation-validate projet open source vérifie les CloudFormation modèles JSON et YAML localement et est disponible sur. GitHub Il peut détecter une structure de modèle non valide, des références erronées, des problèmes de sécurité et des problèmes liés aux meilleures pratiques. Chaque résultat inclut le problème, sa gravité et sa localisation dans le modèle.

L'outil inclut les règles et les définitions de CloudFormation ressources dont il a besoin, de sorte qu'il s'exécute sans accès réseau ni AWS informations d'identification après l'installation.

Choisissez une méthode de validation

  • Ligne de commande — Exécutez cfn-validate pour vérifier un modèle ou tous les modèles d'un répertoire à partir d'un terminal ou d'une version automatique.

  • Bibliothèque  : ajoutez le validateur à une application Rust Node.js, Python, Go ou JVM et traitez les résultats dans votre code.

  • AWS CDK— Validez les modèles automatiquement une fois que CDK les a synthétisés.

  • Règles personnalisées  : ajoutez des contrôles écrits dans le langage des règles CEL, Rego ou Guard. Pour obtenir des exemples et des formats de règles pris en charge, consultez la référence des règles personnalisées sur GitHub. Pour la syntaxe des règles Guard, consultez Validez les modèles avec Guard ce guide.

Installation de l'outil de ligne de commande

Ouvrez la dernière cfn-validate version GitHub et téléchargez le cfn-validate fichier correspondant à votre système d'exploitation et à votre processeur. Suivez le guide d'installation GitHub pour renommer le fichiercfn-validate, l'ajouter à votre PATH fichier et vérifier le fichier téléchargé.

Exécuter la validation

La commande utilise la syntaxe suivante :

cfn-validate TEMPLATE_OR_DIRECTORY [OPTIONS]

Cochez un modèle :

cfn-validate template.yaml

Transmettez un répertoire pour vérifier récursivement tous les .json fichiers .yaml.yml,, et :

cfn-validate ./templates/

La commande écrit un rapport de validation JSON structuré sur la sortie standard. --format standardUtilisez-le pour une sortie compacte ou --format detailed pour le rapport détaillé par défaut.

La commande est 0 renvoyée lorsqu'elle ne trouve aucune erreur ou aucun diagnostic fatal, 1 lorsqu'elle détecte une erreur ou un diagnostic fatal, et en cas 2 d'erreur d'utilisation ou d'initialisation, telle qu'une option non valide ou un fichier qui n'existe pas.

Pour tous les moteurs, filtres, formats de sortie et paramètres, consultez la référence cfn-validate CLI sur GitHub.

Ajouter des règles personnalisées

Permet --rule-source de charger un fichier de règles Rego ou CEL personnalisé. Permet --guard-rule-source de charger un fichier ou un répertoire de règles Guard. Vous pouvez répéter l'une ou l'autre des options pour charger plusieurs sources de règles :

cfn-validate template.yaml --rule-source ./rules/my-rule.rego cfn-validate template.yaml --guard-rule-source ./guard-rules/

Pour des formats de règles et des exemples, voir Référence des règles personnalisées sur GitHub.

Intégrer la bibliothèque de validation

Installez le package publié pour votre langage de programmation afin d'exécuter les mêmes vérifications hors ligne depuis votre application. Créez un moteur de validation une seule fois, réutilisez-le pour plusieurs modèles et traitez les diagnostics structurés renvoyés pour chaque modèle. Vous pouvez également configurer des règles CEL, Rego ou Guard personnalisées via l'API de la bibliothèque.

Pour les instructions d'installation et les plates-formes prises en charge, consultez le guide d'installation linguistique.

Pour des exemples complets dans toutes les langues et des liens vers chaque guide d'API, voir Intégrer en tant que bibliothèque dans la documentation du projet sur GitHub.

A utiliser avec AWS CDK

Si vous l'utilisez AWS CDK, vous n'avez pas besoin d'installer le validateur séparément. La bibliothèque de AWS CDK construction inclut une valeur par défaut CloudFormationValidatePlugin qui exécute automatiquement les mêmes vérifications après la synthèse de vos CloudFormation modèles.

cdk synth

CDK signale les éventuels échecs de déploiement et les résultats des meilleures pratiques avec ses résultats de validation. Vous pouvez configurer explicitement le CloudFormationValidatePlugin moment où vous souhaitez ajouter des règles Rego ou Guard personnalisées.

Pour la configuration des plugins, les accusés de réception et les rapports de validation, consultez la section Validation des modèles et des politiques dans la référence de l'AWS CDK API.

Comprendre la portée de la validation

Pour connaître les limites de la validation locale et les étapes à suivre avant le déploiement, consultezComprendre la portée de la validation.