

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Validando dados de entrada em relação às regras AWS CloudFormation Guard
<a name="validating-rules"></a>

Você pode usar o AWS CloudFormation Guard `validate` comando para validar dados de acordo com as regras do Guard. Para obter mais informações sobre o `validate` comando, incluindo seus parâmetros e opções, consulte [validate.](cfn-guard-validate.md)

## Pré-requisitos
<a name="validating-rules-prerequisites"></a>
+ Escreva as regras do Guard para validar seus dados de entrada. Para obter mais informações, consulte [Regras do Writing Guard](writing-rules.md).
+ Teste suas regras para garantir que elas funcionem conforme o esperado. Para obter mais informações, consulte [Testando as regras do Guard](testing-rules.md).

## Usar o comando `validate`
<a name="validating-rules-walkthrough"></a>

Para validar seus dados de entrada em relação às regras do Guard, como um AWS CloudFormation modelo, execute o `validate` comando Guard. Para o `--rules` parâmetro, especifique o nome de um arquivo de regras. Para o `--data` parâmetro, especifique o nome do arquivo de dados de entrada.

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

Se o Guard validar com êxito os modelos, o `validate` comando retornará um status de saída de `0` (`$?`em bash). Se o Guard identificar uma violação de regra, o `validate` comando retornará um relatório de status das regras que falharam. Use o sinalizador de resumo (`-s all`) para ver a árvore de avaliação detalhada que mostra como o Guard avaliou cada regra.

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

## Validando várias regras em relação a vários arquivos de dados
<a name="validating-rules-overview"></a>

Para ajudar a manter as regras, você pode escrever regras em vários arquivos e organizá-las como quiser. Em seguida, você pode validar vários arquivos de regras em relação a um arquivo de dados ou vários arquivos de dados. O `validate` comando pode usar um diretório de arquivos para as `--rules` opções `--data` e. Por exemplo, você pode executar o comando a seguir, onde `/path/to/dataDirectory` contém um ou mais arquivos de dados e `/path/to/ruleDirectory` contém um ou mais arquivos de regras.

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

Você pode criar regras para verificar se vários recursos definidos em vários CloudFormation modelos têm as atribuições de propriedades apropriadas para garantir a criptografia em repouso. Para facilitar a pesquisa e a manutenção, você pode ter regras para verificar a criptografia em repouso em cada recurso em arquivos separados`s3_bucket_encryption.guard`, chamados de`ec2_volume_encryption.guard`, e `rds_dbinstance_encrytion.guard` em um diretório com o caminho`~/GuardRules/encryption_at_rest`. Os CloudFormation modelos que você precisa validar estão em um diretório com o caminho`~/CloudFormation/templates`. Nesse caso, execute o `validate` comando da seguinte maneira.

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