

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Eingabeparameter mit AWS CloudFormation Guard Regeln verwenden
<a name="using-input-parameters"></a>

AWS CloudFormation Guard ermöglicht es Ihnen, Eingabeparameter für dynamische Datenabfragen während der Validierung zu verwenden. Diese Funktion ist besonders nützlich, wenn Sie in Ihren Regeln auf externe Daten verweisen müssen. Bei der Angabe von Eingabeparameterschlüsseln setzt Guard jedoch voraus, dass es keine widersprüchlichen Pfade gibt. 

## Wie benutzt man
<a name="how-to-use-input-parameters"></a>

1. Verwenden Sie das `-i` Kennzeichen `--input-parameters` oder, um Dateien anzugeben, die Eingabeparameter enthalten. Es können mehrere Eingabeparameterdateien angegeben werden, die zu einem gemeinsamen Kontext kombiniert werden. Eingabeparameterschlüssel dürfen keine widersprüchlichen Pfade haben.

1. Verwenden Sie das `-d` Kennzeichen `--data` oder, um die eigentliche Vorlagendatei anzugeben, die validiert werden soll. 

## Beispielverwendung
<a name="input-parameters-example-usage"></a>

1. Erstellen Sie eine Eingabeparameterdatei (z. B.`network.yaml`): 

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

1. Verweisen Sie in Ihrer Guard-Rule-Datei auf diese Parameter (z. B.`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. Erstellen Sie eine Vorlage für fehlerhafte Daten (z. B.`security_groups_fail.yaml`): 

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

1. Führen Sie den Befehl validate aus: 

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

   In diesem Befehl gilt Folgendes:
   + `-r`gibt die Regeldatei an.
   + `-i`gibt die Eingabeparameterdatei an.
   + `-d`gibt die Datendatei (Vorlage) an, die validiert werden soll.

## Mehrere Eingabeparameter
<a name="multiple-input-parameters"></a>

Sie können mehrere Eingabeparameterdateien angeben: 

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

Alle mit angegebenen Dateien `-i` werden zu einem einzigen Kontext für die Parametersuche kombiniert. 