valider - AWS CloudFormation Guard

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.

valider

Valide les données par rapport aux AWS CloudFormation Guard règles afin de déterminer le succès ou l'échec.

Syntaxe

cfn-guard validate --data <value> --output-format <value> --rules <value> --show-summary <value> --type <value>

Paramètres

-a, --alphabetical

Valide les fichiers d'un répertoire classé par ordre alphabétique.

-h, --help

Imprime les informations d'aide.

-m, --last-modified

Valide les fichiers d'un répertoire trié par date de dernière modification.

-P, --payload

Fournissez des règles et des données au format JSON suivant via stdin :

{"rules":["<rules 1>", "<rules 2>", ...], "data":["<data 1>", "<data 2>", ...]}

Par exemple :

{"data": ["{\"Resources\":{\"NewVolume\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":500,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2b\"}},\"NewVolume2\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":50,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2c\"}}},\"Parameters\":{\"InstanceName\":\"TestInstance\"}}","{\"Resources\":{\"NewVolume\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":500,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2b\"}},\"NewVolume2\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":50,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2c\"}}},\"Parameters\":{\"InstanceName\":\"TestInstance\"}}"], "rules" : [ "Parameters.InstanceName == \"TestInstance\"","Parameters.InstanceName == \"TestInstance\"" ]}

Pour « règles », spécifiez une liste des versions sous forme de chaîne des fichiers de règles. Pour « données », spécifiez une liste des versions sous forme de chaîne des fichiers de données.

Quand --payload est spécifié --rules et --data ne peut pas être précisé.

-p, --print-json

Imprime la sortie au format JSON.

-s, --show-clause-failures

Affiche l'échec de la clause, y compris un résumé.

-V, --version

Imprime les informations de version.

-v, --verbose

Augmente la verbosité de sortie. Peut être spécifié plusieurs fois.

-z, --structured

Imprime une liste de formats de sortie structurés et valides JSON/YAML. This argument conflicts with the following arguments: verbose, print-json, show-summary: all/fail/pass/skip : single-line-summary

Options

-d, --data (chaîne)

Fournit un fichier de données ou un répertoire de fichiers de données au format JSON ou YAML. Permet de transmettre plusieurs valeurs en utilisant cette option à plusieurs reprises.

Exemple : --data template1.yaml --data ./data-dir1 --data template2.yaml

Pour les arguments de répertoire tels que data-dir1 ci-dessus, l'analyse n'est prise en charge que pour les fichiers portant les extensions suivantes : .yaml, .yml, .json, .jsn, .template

Si vous spécifiez le --payload drapeau, ne spécifiez pas l'--dataoption.

-i, --input-parameters (chaîne)

Fournit un fichier de paramètres ou un répertoire de fichiers de paramètres au format JSON ou YAML qui spécifie les paramètres supplémentaires à utiliser ainsi que les fichiers de données à utiliser comme contexte combiné. Tous les fichiers de paramètres transmis en entrée sont fusionnés et ce contexte combiné est à nouveau fusionné avec chaque fichier passé en argument pourdata. De ce fait, chaque fichier est censé contenir des propriétés qui s'excluent mutuellement, sans aucun chevauchement. Permet de transmettre plusieurs valeurs en utilisant cette option à plusieurs reprises.

Pour les arguments de répertoire, l'analyse n'est prise en charge que pour les fichiers portant les extensions suivantes : .yaml, .yml, .json, .jsn, .template

-o, --output-format (chaîne)

Spécifie le format de sortie.

Par défaut : single-line-summary

Valeurs autorisées : json | yaml | single-line-summary | junit | sarif

-r, --rules (chaîne)

Fournit un fichier de règles ou un répertoire de fichiers de règles. Permet de transmettre plusieurs valeurs en utilisant cette option à plusieurs reprises.

Exemple : --rules rule1.guard --rules ./rules-dir1 --rules rule2.guard

Pour les arguments de répertoire tels que rules-dir1 ci-dessus, l'analyse n'est prise en charge que pour les fichiers portant les extensions suivantes : .guard, .ruleset

Si vous spécifiez le --payload drapeau, ne spécifiez pas l'--rulesoption.

--show-summary (chaîne)

Contrôle si le tableau récapitulatif doit être affiché. --show-summary fail(par défaut) ou --show-summary pass,fail (afficher uniquement les règles qui ont réussi ou échoué) ou --show-summary none (pour le désactiver) ou --show-summary all (pour afficher toutes les règles qui réussissent, échouent ou sont ignorées).

Par défaut : fail

Valeurs autorisées : none | all | pass | fail | skip

-t, --type (chaîne)

Indique le format de vos données d'entrée. Lorsque vous spécifiez le type de données d'entrée, Guard affiche les noms logiques des ressources du CloudFormation modèle dans la sortie. Par défaut, Guard affiche les chemins et les valeurs des propriétés, tels queProperty [/Resources/vol2/Properties/Encrypted.

Valeurs autorisées : CFNTemplate

exemple

cfn-guard validate --data example.json --rules rules.guard

Sortie

Si Guard valide les modèles avec succès, la validate commande renvoie un statut de sortie de 0 ($?en bash). Si Guard identifie une violation des règles, la validate commande renvoie un rapport d'état des règles qui ont échoué.

example.json Status = FAIL FAILED rules rules.guard/policy_effect_is_deny FAIL --- Evaluation of rules rules.guard against data example.json -- Property [/path/to/Effect] in data [example.json] is not compliant with [policy_effect_is_deny] because provided value ["Allow"] did not match expected value ["Deny"]. Error Message [ Policy statement "Effect" must be "Deny".]

Consultez aussi