

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 Guard
<a name="cloudformation-guard"></a>

AWS CloudFormation Guard (`cfn-guard`) est un outil de politique en tant que code. Vous rédigez des règles qui décrivent les configurations obligatoires ou interdites, puis vous vérifiez les données JSON ou YAML par rapport à ces règles. Par exemple, vous pouvez exiger que chaque compartiment Amazon S3 d'un modèle utilise le chiffrement.

Pour connaître les limites de la validation locale et les étapes à suivre avant le déploiement, consultez[Comprendre la portée de la validation](template-guide.md#template-validation-scope).

**Topics**
+ [Installez Guard](#cloudformation-guard-install)
+ [Écrivez une règle](#cloudformation-guard-write-rule)
+ [Valider un modèle](#cloudformation-guard-validate)
+ [Ajoutez Guard à votre flux de travail](#cloudformation-guard-integrate)
+ [En savoir plus](#cloudformation-guard-learn-more)

## Installez Guard
<a name="cloudformation-guard-install"></a>

OuimacOS, installez Guard avec Homebrew :

```
brew install cloudformation-guard
```

Pour Linux, Windows, les autres méthodes d'macOSinstallation et la vérification des versions, voir [ Configuration AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/setting-up.html).

## Écrivez une règle
<a name="cloudformation-guard-write-rule"></a>

Enregistrez les règles dans un fichier portant l'`.guard`extension. L'exemple suivant nécessite que chaque compartiment Amazon S3 d'un modèle spécifie le chiffrement du compartiment :

```
let s3_buckets = Resources.*[ Type == 'AWS::S3::Bucket' ]

rule S3_BUCKET_ENCRYPTED when %s3_buckets !empty {
  %s3_buckets {
    Properties.BucketEncryption exists
  }
}
```

Pour la syntaxe des règles et d'autres exemples, voir [ Rédaction de AWS CloudFormation Guard règles](https://docs.aws.amazon.com/cfn-guard/latest/ug/writing-rules.html).

## Valider un modèle
<a name="cloudformation-guard-validate"></a>

Transmettez le fichier de règles `--rules` et le modèle à `--data` :

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

La commande renvoie l'état de sortie `0` lorsque le modèle est transmis. Si une règle échoue, la sortie identifie la règle qui a échoué. Vous pouvez également transmettre des répertoires à plusieurs fichiers `--rules` et `--data` les vérifier.

Avant d'utiliser une règle dans un flux de travail automatisé, testez-la à l'aide du support de test unitaire intégré. Pour obtenir des instructions, consultez la section AWS CloudFormation Guard Règles de [ test](https://docs.aws.amazon.com/cfn-guard/latest/ug/testing-rules.html).

## Ajoutez Guard à votre flux de travail
<a name="cloudformation-guard-integrate"></a>

Vous pouvez exécuter Guard localement, dans une compilation automatique ou avant un commit Git. Le serveur CloudFormation linguistique peut également exécuter des packs de règles Guard lorsque vous modifiez un modèle. Pour la configuration, voir[CloudFormation Serveur de langue](ide-extension.md).

Pour appliquer les règles pendant CloudFormation les opérations de l'API Cloud Control, utilisez Guard Hooks. Pour plus d'informations, voir [ Guard Hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/guard-hooks.html).

## En savoir plus
<a name="cloudformation-guard-learn-more"></a>

Pour la référence complète de la langue et des commandes, consultez le Guide de [AWS CloudFormation Guard l'utilisateur](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html). Le code source et les informations de publication sont disponibles dans le [AWS CloudFormation Guard référentiel à l'adresse GitHub](https://github.com/aws-cloudformation/cloudformation-guard).