翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
--rulesrules.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".]