View a markdown version of this page

Validación de plantillas con cloudformation-validate - AWS CloudFormation

Validación de plantillas con cloudformation-validate

El proyecto cloudformation-validate de código abierto comprueba las plantillas de CloudFormation en JSON y YAML de forma local y está disponible en GitHub. Puede encontrar una estructura de plantilla no válida, referencias rotas, problemas de seguridad y problemas relacionados con las prácticas recomendadas. Cada resultado incluye el problema, su gravedad y su ubicación en la plantilla.

La herramienta incluye las reglas y las definiciones de recursos de CloudFormation que necesita, por lo que se ejecuta sin acceso a la red ni credenciales de AWS después de la instalación.

Seleccione un método de validación.

  • Línea de comandos: ejecute cfn-validate para comprobar una plantilla o todas las plantillas de un directorio desde una terminal o una compilación automática.

  • Biblioteca: agregue el validador a una aplicación de Rust, Node.js, Python, Go o JVM y procese los resultados en su código.

  • AWS CDK: valide las plantillas automáticamente después de que CDK las sintetice.

  • Reglas personalizadas: agregue comprobaciones escritas en CEL, Rego o el lenguaje de reglas de Guard. Para ver ejemplos y formatos de reglas compatibles, consulte la Referencia de reglas personalizadas en GitHub. Para ver la sintaxis de las reglas de Guard, consulte Validación de plantillas con Guard en esta guía.

Instalación de la herramienta de línea de comandos

Abra la última versión de cfn-validate en GitHub y descargue el archivo cfn-validate para su sistema operativo y procesador. Siga la guía de instalación en GitHub para cambiar el nombre del archivo a cfn-validate, agregarlo a su PATH y verificar el archivo descargado.

Ejecución de la validación

El comando utiliza la siguiente sintaxis:

cfn-validate TEMPLATE_OR_DIRECTORY [OPTIONS]

Compruebe una plantilla:

cfn-validate template.yaml

Pase un directorio para comprobar de forma recursiva todos los archivos .yaml, .yml y .json:

cfn-validate ./templates/

El comando escribe un informe de validación JSON estructurado en la salida estándar. Utilice --format standard para una salida compacta o --format detailed para el informe detallado predeterminado.

El comando devuelve 0 cuando no encuentra ningún error o diagnóstico grave, 1 cuando detecta un error o diagnóstico grave y 2 si se produce un error de uso o de inicialización, como una opción no válida o un archivo que no existe.

Para ver todos los motores, filtros, formatos de salida y parámetros, consulte la referencia de la CLI de cfn-validate en GitHub.

Adición de reglas personalizadas

Utilice --rule-source para cargar un archivo de reglas Rego o CEL personalizado. Utilice --guard-rule-source para cargar un directorio o archivo de reglas de Guard. Puede repetir cualquiera de las dos opciones para cargar varios orígenes de reglas:

cfn-validate template.yaml --rule-source ./rules/my-rule.rego cfn-validate template.yaml --guard-rule-source ./guard-rules/

Para ver ejemplos y formatos de reglas, consulte la Referencia de reglas personalizadas en GitHub.

Inserción de la biblioteca de validación

Instale el paquete publicado para su lenguaje de programación para ejecutar las mismas comprobaciones sin conexión desde su aplicación. Cree un motor de validación una vez, reutilícelo para varias plantillas y procese los diagnósticos estructurados devueltos para cada plantilla. También puede configurar reglas CEL, Rego o Guard personalizadas a través de la API de la biblioteca.

Para ver las instrucciones de instalación y las plataformas compatibles, consulte la guía de instalación de enlaces de idiomas.

Para ver ejemplos completos en todos los idiomas y enlaces a cada guía de API, consulte Embedding as a library en la documentación del proyecto en GitHub.

Use con AWS CDK

Si utiliza AWS CDK, no necesita instalar el validador por separado. La biblioteca de construcciones de AWS CDK incluye un valor predeterminado CloudFormationValidatePlugin que ejecuta automáticamente las mismas comprobaciones después de sintetizar las plantillas de CloudFormation.

cdk synth

CDK informa de los posibles errores de implementación y de los resultados de las prácticas recomendadas junto con sus resultados de validación. Puede configurar de forma explícita CloudFormationValidatePlugin cuando quiera agregar reglas Rego o Guard personalizadas.

Para obtener información sobre la configuración de los complementos, las confirmaciones y los informes de validación, consulte Template and Policy Validation en la Referencia de la API de AWS CDK.

Descripción del alcance de validación

Para conocer las limitaciones de la validación local y los pasos a seguir antes de la implementación, consulte Descripción del alcance de validación.