

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memvalidasi data input terhadap aturan AWS CloudFormation Guard
<a name="validating-rules"></a>

Anda dapat menggunakan AWS CloudFormation Guard `validate` perintah untuk memvalidasi data terhadap aturan Guard. Untuk informasi selengkapnya tentang `validate` perintah, termasuk parameter dan opsinya, lihat [memvalidasi](cfn-guard-validate.md).

## Prasyarat
<a name="validating-rules-prerequisites"></a>
+ Tulis aturan Guard untuk memvalidasi data input Anda. Untuk informasi selengkapnya, lihat [Aturan Penjaga Menulis](writing-rules.md).
+ Uji aturan Anda untuk memastikan bahwa mereka bekerja sebagaimana dimaksud. Untuk informasi selengkapnya, lihat [Aturan Pengujian Guard](testing-rules.md).

## Menggunakan `validate` perintah
<a name="validating-rules-walkthrough"></a>

Untuk memvalidasi data input Anda terhadap aturan Guard Anda, seperti AWS CloudFormation template, jalankan `validate` perintah Guard. Untuk `--rules` parameter, tentukan nama file aturan. Untuk `--data` parameter, tentukan nama file data input.

```
cfn-guard validate --rules {{rules.guard}} --data {{template.json}}
```

Jika Guard berhasil memvalidasi template, `validate` perintah mengembalikan status keluar `0` (`$?`dalam bash). Jika Guard mengidentifikasi pelanggaran aturan, `validate` perintah mengembalikan laporan status aturan yang gagal. Gunakan flag ringkasan (`-s all`) untuk melihat pohon evaluasi rinci yang menunjukkan bagaimana Guard mengevaluasi setiap aturan.

```
template.json Status = FAIL
SKIP rules
rules.guard/aws_apigateway_deployment_checks    SKIP
rules.guard/aws_apigateway_stage_checks         SKIP
rules.guard/aws_dynamodb_table_checks           SKIP
PASS rules
rules.guard/aws_events_rule_checks              PASS
rules.guard/aws_iam_role_checks                 PASS
FAILED rules
rules.guard/aws_ec2_volume_checks               FAIL
rules.guard/mixed_types_checks                  FAIL
---
Evaluation of rules rules.guard against data template.json
--
Property [/Resources/vol2/Properties/Encrypted] in data [template.json] is not compliant with [rules.guard/aws_ec2_volume_checks] because provided value [false] did not match expected value [true]. Error Message []
Property traversed until [/Resources/vol2/Properties] in data [template.json] is not compliant with [rules.guard/aws_ec2_volume_checks] due to retrieval error. Error Message [Attempting to retrieve array index or key from map at path = /Resources/vol2/Properties , Type was not an array/object map, Remaining Query = Size]
Property [/Resources/vol2/Properties/Encrypted] in data [template.json] is not compliant with [rules.guard/mixed_types_checks] because provided value [false] did not match expected value [true]. Error Message []
--
Rule [rules.guard/aws_iam_role_checks] is compliant for data [template.json]
Rule [rules.guard/aws_events_rule_checks] is compliant for data [template.json]
--
Rule [rules.guard/aws_apigateway_deployment_checks] is not applicable for data [template.json]
Rule [rules.guard/aws_apigateway_stage_checks] is not applicable for data [template.json]
Rule [rules.guard/aws_dynamodb_table_checks] is not applicable for data [template.json]
```

## Memvalidasi beberapa aturan terhadap beberapa file data
<a name="validating-rules-overview"></a>

Untuk membantu mempertahankan aturan, Anda dapat menulis aturan ke dalam beberapa file dan mengatur aturan sesuai keinginan. Kemudian, Anda dapat memvalidasi beberapa file aturan terhadap file data atau beberapa file data. `validate`Perintah dapat mengambil direktori file untuk `--rules` opsi `--data` dan. Misalnya, Anda dapat menjalankan perintah berikut di mana `/path/to/dataDirectory` berisi satu atau lebih file data dan `/path/to/ruleDirectory` berisi satu atau beberapa file aturan.

```
cfn-guard validate --data /path/to/dataDirectory --rules /path/to/ruleDirectory
```

Anda dapat menulis aturan untuk memeriksa apakah berbagai sumber daya yang ditentukan dalam beberapa CloudFormation templat memiliki penugasan properti yang sesuai untuk menjamin enkripsi saat istirahat. Untuk kemudahan pencarian dan pemeliharaan, Anda dapat memiliki aturan untuk memeriksa enkripsi saat istirahat di setiap sumber daya dalam file terpisah `s3_bucket_encryption.guard``ec2_volume_encryption.guard`, dipanggil,, dan `rds_dbinstance_encrytion.guard` dalam direktori dengan jalur`~/GuardRules/encryption_at_rest`. CloudFormationTemplate yang Anda butuhkan untuk memvalidasi ada di direktori dengan jalur`~/CloudFormation/templates`. Dalam hal ini, jalankan `validate` perintah sebagai berikut.

```
cfn-guard validate --data ~/CloudFormation/templates --rules ~/GuardRules/encryption_at_rest
```