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