validate - AWS CloudFormation Guard

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

validate

AWS CloudFormation Guard ルールに照らしてデータを検証し、成功または失敗を判断します。

構文

cfn-guard validate --data <value> --output-format <value> --rules <value> --show-summary <value> --type <value>

パラメータ

-a, --alphabetical

アルファベット順に並べられたディレクトリ内のファイルを検証します。

-h, --help

ヘルプ情報を表示します。

-m, --last-modified

最終変更時刻順に並べられたディレクトリ内のファイルを検証します。

-P, --payload

経由で次の JSON 形式でルールとデータを指定しますstdin

{"rules":["<rules 1>", "<rules 2>", ...], "data":["<data 1>", "<data 2>", ...]}

例:

{"data": ["{\"Resources\":{\"NewVolume\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":500,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2b\"}},\"NewVolume2\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":50,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2c\"}}},\"Parameters\":{\"InstanceName\":\"TestInstance\"}}","{\"Resources\":{\"NewVolume\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":500,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2b\"}},\"NewVolume2\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":50,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2c\"}}},\"Parameters\":{\"InstanceName\":\"TestInstance\"}}"], "rules" : [ "Parameters.InstanceName == \"TestInstance\"","Parameters.InstanceName == \"TestInstance\"" ]}

「ルール」には、ルールファイルの文字列バージョンのリストを指定します。「data」には、データファイルの文字列バージョンのリストを指定します。

--payload が指定され--rulesていて、指定--dataできない場合。

-p, --print-json

出力を JSON 形式で出力します。

-s, --show-clause-failures

概要を含む句の失敗を表示します。

-V, --version

バージョン情報を表示します。

-v, --verbose

出力の詳細度を高めます。複数回指定できます。

-z, --structured

構造化された有効な JSON/YAML のリストを出力します。この引数は、verbose、print-json、show-summary: all/fail/pass/skip、output-format: single-line-summary の引数と競合します。

オプション

-d--data (文字列)

JSON または YAML のデータファイルまたはデータファイルのディレクトリを提供します。このオプションを繰り返し使用して、複数の値を渡すことができます。

例: --data template1.yaml --data ./data-dir1 --data template2.yaml

data-dir1 上記のようなディレクトリ引数の場合、スキャンは拡張子が .yaml、.yml、.json、.jsn、.template のファイルでのみサポートされます。

--payload フラグを指定する場合は、 --dataオプションを指定しないでください。

-i--input-parameters (文字列)

JSON または YAML のパラメータファイルのパラメータファイルまたはディレクトリを提供し、結合コンテキストとして使用するデータファイルとともに使用する追加のパラメータを指定します。入力として渡されたすべてのパラメータファイルがマージされ、この結合コンテキストは再び の引数として渡された各ファイルにマージされますdata。このため、すべてのファイルには、重複することなく、相互に排他的なプロパティが含まれていることが期待されます。このオプションを繰り返し使用して、複数の値を渡すことができます。

ディレクトリ引数の場合、スキャンは拡張子が .yaml、.yml、.json、.jsn、.template のファイルでのみサポートされます。

-o--output-format (文字列)

出力の形式を指定します。

デフォルト: single-line-summary

許可できる値: json | yaml | single-line-summary | junit | sarif

-r--rules (文字列)

ルールファイルまたはルールファイルのディレクトリを提供します。このオプションを繰り返し使用して、複数の値を渡すことができます。

例: --rules rule1.guard --rules ./rules-dir1 --rules rule2.guard

rules-dir1 上記のようなディレクトリ引数の場合、スキャンは拡張子が .guard、.ruleset のファイルでのみサポートされます。

--payload フラグを指定する場合は、 --rulesオプションを指定しないでください。

--show-summary (文字列)

概要テーブルを表示する必要があるかどうかを制御します。 --show-summary fail (デフォルト) または --show-summary pass,fail (合格/不合格となったルールのみを表示) または --show-summary none (オフにするには) または --show-summary all (合格、不合格、スキップしたすべてのルールを表示するために)。

デフォルト: fail

許可できる値: none | all | pass | fail | skip

-t--type (文字列)

入力データの形式を提供します。入力データ型を指定すると、Guard は CloudFormation テンプレートリソースの論理名を出力に表示します。デフォルトでは、Guard は などのプロパティパスと値を表示しますProperty [/Resources/vol2/Properties/Encrypted

許可される値: CFNTemplate

cfn-guard validate --data example.json --rules rules.guard

Output

Guard がテンプレートを正常に検証した場合、validateコマンドは終了ステータス 0 ($?bash 単位) を返します。Guard がルール違反を特定すると、validateコマンドは失敗したルールのステータスレポートを返します。

example.json Status = FAIL FAILED rules rules.guard/policy_effect_is_deny FAIL --- Evaluation of rules rules.guard against data example.json -- Property [/path/to/Effect] in data [example.json] is not compliant with [policy_effect_is_deny] because provided value ["Allow"] did not match expected value ["Deny"]. Error Message [ Policy statement "Effect" must be "Deny".]

関連情報