View a markdown version of this page

Validación de plantillas con Guard - AWS CloudFormation

Validación de plantillas con Guard

AWS CloudFormation Guard (cfn-guard) es una herramienta de política como código. Se escriben reglas que describen las configuraciones obligatorias o prohibidas y luego se comprueba si los datos JSON o YAML cumplen dichas reglas. Por ejemplo, usted puede requerir que todos los buckets de Amazon S3 de una plantilla utilicen el cifrado.

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.

Instalación de Guard

En macOS, instale Guard con Homebrew:

brew install cloudformation-guard

Para Linux, Windows, otros métodos de instalación de macOS y verificación de versiones, consulte Configuración de AWS CloudFormation Guard.

Escritura de una regla

Guarde las reglas en un archivo con la extensión .guard. El siguiente ejemplo requiere que cada bucket de Amazon S3 de una plantilla especifique el cifrado del bucket:

let s3_buckets = Resources.*[ Type == 'AWS::S3::Bucket' ] rule S3_BUCKET_ENCRYPTED when %s3_buckets !empty { %s3_buckets { Properties.BucketEncryption exists } }

Para ver la sintaxis de las reglas y otros ejemplos, consulte Redacción de reglas de AWS CloudFormation Guard.

Validación de una plantilla

Pase el archivo de reglas a --rules y la plantilla a --data:

cfn-guard validate --rules rules.guard --data template.yaml

El comando devuelve el estado de salida 0 cuando se aprueba la plantilla. Si se produce un error en una regla, el resultado identifica la regla que ha fallado. También puede pasar directorios a --rules y --data para comprobar varios archivos.

Antes de usar una regla en un flujo de trabajo automatizado, pruébela con el soporte integrado de pruebas unitarias. Para obtener instrucciones, consulte Prueba de reglas de AWS CloudFormation Guard.

Incorporación de Guard a su flujo de trabajo

Puede ejecutar Guard de forma local, en una compilación automática o antes de una confirmación de Git. El servidor de lenguaje de CloudFormation también puede ejecutar paquetes de reglas de Guard mientras se edita una plantilla. Para obtener información sobre la configuración, consulte Servidor de lenguaje de CloudFormation.

Para aplicar reglas durante las operaciones de las API de CloudFormation y Cloud Control, use enlaces de Guard. Para obtener más información, consulte Guard Hooks.

Más información

Para obtener una referencia completa sobre el lenguaje y los comandos, consulte la Guía del usuario de AWS CloudFormation Guard. El código de origen y la información de publicación están disponibles en el repositorio de AWS CloudFormation Guard en GitHub.