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'--data
option.
-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'--rules
option.
--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
--rulesrules.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".]