Validación de los datos de entrada según las reglas AWS CloudFormation Guard - AWS CloudFormation Guard

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

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.

Requisitos previos

  • Escribe reglas de Guard para validar los datos de entrada con ellas. Para obtener más información, consulte Reglas de Writing Guard.

  • 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.

Uso del comando validate

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

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 independientess3_bucket_encryption.guard, denominadosec2_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