

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.

# Validation des données d'entrée par rapport aux règles AWS CloudFormation Guard
<a name="validating-rules"></a>

Vous pouvez utiliser la AWS CloudFormation Guard `validate` commande pour valider les données par rapport aux règles Guard. Pour plus d'informations sur la `validate` commande, notamment ses paramètres et options, consultez la section [valider](cfn-guard-validate.md).

## Conditions préalables
<a name="validating-rules-prerequisites"></a>
+ Règles Write Guard pour valider vos données d'entrée. Pour de plus amples informations, veuillez consulter [Règles de Writing Guard](writing-rules.md).
+ Testez vos règles pour vous assurer qu'elles fonctionnent comme prévu. Pour de plus amples informations, veuillez consulter [Règles de Testing Guard](testing-rules.md).

## Utilisation de la commande `validate`
<a name="validating-rules-walkthrough"></a>

Pour valider vos données d'entrée par rapport à vos règles Guard, telles qu'un AWS CloudFormation modèle, exécutez la `validate` commande Guard. Pour le `--rules` paramètre, spécifiez le nom d'un fichier de règles. Pour le `--data` paramètre, spécifiez le nom du fichier de données d'entrée.

```
cfn-guard validate --rules rules.guard --data template.json
```

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é. Utilisez l'indicateur récapitulatif (`-s all`) pour voir l'arbre d'évaluation détaillé qui montre comment Guard a évalué chaque règle.

```
template.json Status = FAIL
SKIP rules
rules.guard/aws_apigateway_deployment_checks    SKIP
rules.guard/aws_apigateway_stage_checks         SKIP
rules.guard/aws_dynamodb_table_checks           SKIP
PASS rules
rules.guard/aws_events_rule_checks              PASS
rules.guard/aws_iam_role_checks                 PASS
FAILED rules
rules.guard/aws_ec2_volume_checks               FAIL
rules.guard/mixed_types_checks                  FAIL
---
Evaluation of rules rules.guard against data template.json
--
Property [/Resources/vol2/Properties/Encrypted] in data [template.json] is not compliant with [rules.guard/aws_ec2_volume_checks] because provided value [false] did not match expected value [true]. Error Message []
Property traversed until [/Resources/vol2/Properties] in data [template.json] is not compliant with [rules.guard/aws_ec2_volume_checks] due to retrieval error. Error Message [Attempting to retrieve array index or key from map at path = /Resources/vol2/Properties , Type was not an array/object map, Remaining Query = Size]
Property [/Resources/vol2/Properties/Encrypted] in data [template.json] is not compliant with [rules.guard/mixed_types_checks] because provided value [false] did not match expected value [true]. Error Message []
--
Rule [rules.guard/aws_iam_role_checks] is compliant for data [template.json]
Rule [rules.guard/aws_events_rule_checks] is compliant for data [template.json]
--
Rule [rules.guard/aws_apigateway_deployment_checks] is not applicable for data [template.json]
Rule [rules.guard/aws_apigateway_stage_checks] is not applicable for data [template.json]
Rule [rules.guard/aws_dynamodb_table_checks] is not applicable for data [template.json]
```

## Validation de plusieurs règles par rapport à plusieurs fichiers de données
<a name="validating-rules-overview"></a>

Pour faciliter le maintien des règles, vous pouvez les écrire dans plusieurs fichiers et les organiser comme vous le souhaitez. Vous pouvez ensuite valider plusieurs fichiers de règles par rapport à un ou plusieurs fichiers de données. La `validate` commande peut utiliser un répertoire de fichiers pour les `--rules` options `--data` et. Par exemple, vous pouvez exécuter la commande suivante `/path/to/dataDirectory` contenant un ou plusieurs fichiers de données et `/path/to/ruleDirectory` un ou plusieurs fichiers de règles.

```
cfn-guard validate --data /path/to/dataDirectory --rules /path/to/ruleDirectory
```

Vous pouvez écrire des règles pour vérifier si les différentes ressources définies dans plusieurs CloudFormation modèles possèdent les propriétés appropriées pour garantir le chiffrement au repos. Pour faciliter la recherche et la maintenance, vous pouvez définir des règles pour vérifier le chiffrement au repos dans chaque ressource dans des fichiers distincts`s3_bucket_encryption.guard`, appelés`ec2_volume_encryption.guard`, et `rds_dbinstance_encrytion.guard` dans un répertoire avec le chemin`~/GuardRules/encryption_at_rest`. Les CloudFormation modèles que vous devez valider se trouvent dans un répertoire avec le chemin`~/CloudFormation/templates`. Dans ce cas, exécutez la `validate` commande comme suit.

```
cfn-guard validate --data ~/CloudFormation/templates --rules ~/GuardRules/encryption_at_rest
```