

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.

# Utilisation de paramètres d'entrée avec des AWS CloudFormation Guard règles
<a name="using-input-parameters"></a>

AWS CloudFormation Guard vous permet d'utiliser des paramètres d'entrée pour des recherches de données dynamiques lors de la validation. Cette fonctionnalité est particulièrement utile lorsque vous devez référencer des données externes dans vos règles. Toutefois, lors de la spécification des clés de paramètres d'entrée, Guard exige qu'il n'y ait aucun chemin conflictuel. 

## Comment utiliser
<a name="how-to-use-input-parameters"></a>

1. Utilisez l'`-i`indicateur `--input-parameters` ou pour spécifier les fichiers contenant les paramètres d'entrée. Plusieurs fichiers de paramètres d'entrée peuvent être spécifiés et seront combinés pour former un contexte commun. Les clés de paramètres d'entrée ne peuvent pas avoir de chemins conflictuels.

1. Utilisez l'`-d`indicateur `--data` ou pour spécifier le fichier modèle à valider. 

## Exemple d’utilisation
<a name="input-parameters-example-usage"></a>

1. Créez un fichier de paramètres d'entrée (par exemple,`network.yaml`) : 

   ```
   NETWORK:
     allowed_security_groups: ["sg-282850", "sg-292040"]
     allowed_prefix_lists: ["pl-63a5400a", "pl-02cd2c6b"]
   ```

1. Référencez ces paramètres dans votre fichier de règles de garde (par exemple,`security_groups.guard`) : 

   ```
   let groups = Resources.*[ Type == 'AWS::EC2::SecurityGroup' ]
   
   let permitted_sgs = NETWORK.allowed_security_groups
   let permitted_pls = NETWORK.allowed_prefix_lists
   rule check_permitted_security_groups_or_prefix_lists(groups) {
       %groups {
           this in %permitted_sgs or
           this in %permitted_pls
       }
   }
   
   rule CHECK_PERMITTED_GROUPS when %groups !empty {
       check_permitted_security_groups_or_prefix_lists(
          %groups.Properties.GroupName
       )
   }
   ```

1. Créez un modèle de données défaillant (par exemple,`security_groups_fail.yaml`) : 

   ```
   # ---
   # AWSTemplateFormatVersion: 2010-09-09
   # Description: CloudFormation - EC2 Security Group
   
   Resources:
     mySecurityGroup:
       Type: AWS::EC2::SecurityGroup
       Properties:
         GroupName: wrong
   ```

1. Exécutez la commande de validation : 

   ```
   cfn-guard validate -r security_groups.guard -i network.yaml -d security_groups_fail.yaml
   ```

   Dans cette commande :
   + `-r`spécifie le fichier de règles.
   + `-i`spécifie le fichier de paramètres d'entrée.
   + `-d`indique le fichier de données (modèle) à valider.

## Paramètres d'entrée multiples
<a name="multiple-input-parameters"></a>

Vous pouvez spécifier plusieurs fichiers de paramètres d'entrée : 

```
cfn-guard validate -r rules.guard -i params1.yaml -i params2.yaml -d template.yaml
```

Tous les fichiers spécifiés avec `-i` seront combinés pour former un contexte unique pour la recherche de paramètres. 