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
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
-
Verwenden Sie das
-iKennzeichen--input-parametersoder, 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. -
Verwenden Sie das
-dKennzeichen--dataoder, um die eigentliche Vorlagendatei anzugeben, die validiert werden soll.
Beispielverwendung
-
Erstellen Sie eine Eingabeparameterdatei (z. B.
network.yaml):NETWORK: allowed_security_groups: ["sg-282850", "sg-292040"] allowed_prefix_lists: ["pl-63a5400a", "pl-02cd2c6b"] -
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 ) } -
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 -
Führen Sie den Befehl validate aus:
cfn-guard validate -r security_groups.guard -i network.yaml -d security_groups_fail.yamlIn diesem Befehl gilt Folgendes:
-
-rgibt die Regeldatei an. -
-igibt die Eingabeparameterdatei an. -
-dgibt die Datendatei (Vorlage) an, die validiert werden soll.
-
Mehrere Eingabeparameter
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.