

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

# validate
<a name="cfn-guard-validate"></a>

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

## 構文
<a name="cfn-guard-validate-synopsis"></a>

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

## パラメータ
<a name="cfn-guard-validate-flags"></a>

`-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 の引数と競合します。

## オプション
<a name="cfn-guard-validate-options"></a>

`-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` \$1 `yaml` \$1 `single-line-summary` \$1 `junit` \$1 `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` \$1 `all` \$1 `pass` \$1 `fail` \$1 `skip`

`-t`、 `--type` (文字列)

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

*許可される値*: `CFNTemplate`

## 例
<a name="cfn-guard-validate-examples"></a>

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

## Output
<a name="cfn-guard-validate-output"></a>

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".]
```

## 関連情報
<a name="cfn-guard-validate-see-also"></a>
+ [Guard ルールに対する入力データの検証](validating-rules.md)
+ [Guard ルールでの入力パラメータの使用](using-input-parameters.md)