

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Validación de los datos de entrada según las reglas AWS CloudFormation Guard
<a name="validating-rules"></a>

Puede usar el AWS CloudFormation Guard `validate` comando para validar los datos según las reglas de Guard. Para obtener más información sobre el `validate` comando, incluidos sus parámetros y opciones, consulte [validar](cfn-guard-validate.md).

## Requisitos previos
<a name="validating-rules-prerequisites"></a>
+ Escribe reglas de Guard para validar los datos de entrada con ellas. Para obtener más información, consulte [Reglas de Writing Guard](writing-rules.md).
+ Pon a prueba tus reglas para asegurarte de que funcionan según lo previsto. Para obtener más información, consulte [Reglas de Testing Guard](testing-rules.md).

## Uso del comando `validate`
<a name="validating-rules-walkthrough"></a>

Para validar los datos de entrada con arreglo a las reglas de Guard, como una AWS CloudFormation plantilla, ejecuta el `validate` comando Guard. Para el `--rules` parámetro, especifique el nombre de un archivo de reglas. Para el `--data` parámetro, especifique el nombre del archivo de datos de entrada.

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

Si Guard valida correctamente las plantillas, el `validate` comando devuelve un estado de salida de `0` (`$?`en bash). Si Guard identifica una infracción de las reglas, el `validate` comando devuelve un informe de estado de las reglas que han fallado. Utilice el indicador de resumen (`-s all`) para ver el árbol de evaluación detallado que muestra cómo Guard evaluó cada regla.

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

## Validar varias reglas con varios archivos de datos
<a name="validating-rules-overview"></a>

Para ayudar a mantener las reglas, puede escribirlas en varios archivos y organizarlas como desee. A continuación, puede validar varios archivos de reglas comparándolos con uno o varios archivos de datos. El `validate` comando puede tomar un directorio de archivos para las `--rules` opciones `--data` y. Por ejemplo, puede ejecutar el siguiente comando donde `/path/to/dataDirectory` contiene uno o más archivos de datos y `/path/to/ruleDirectory` uno o más archivos de reglas.

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

Puede escribir reglas para comprobar si los distintos recursos definidos en varias CloudFormation plantillas tienen las asignaciones de propiedades adecuadas para garantizar el cifrado en reposo. Para facilitar la búsqueda y el mantenimiento, puede disponer de reglas para comprobar el cifrado en reposo en cada recurso en archivos independientes`s3_bucket_encryption.guard`, denominados`ec2_volume_encryption.guard`, y `rds_dbinstance_encrytion.guard` en un directorio con la ruta`~/GuardRules/encryption_at_rest`. Las CloudFormation plantillas que necesita validar se encuentran en un directorio con la ruta`~/CloudFormation/templates`. En este caso, ejecute el `validate` comando de la siguiente manera.

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