View a markdown version of this page

Validação de modelos com cloudformation-validate - AWS CloudFormation

Validação de modelos com cloudformation-validate

O projeto cloudformation-validate de código aberto verifica localmente os modelos JSON e YAML do CloudFormation e está disponível no GitHub. Ele pode encontrar uma estrutura de modelo inválida, referências divididas, problemas de segurança e problemas relacionados às práticas recomendadas. Cada descoberta inclui o problema, sua gravidade e sua localização no modelo.

A ferramenta inclui as regras e as definições de recursos do CloudFormation de que precisa para que seja executada sem acesso à rede ou credenciais da AWS após a instalação.

Escolha um método de validação

  • Linha de comando: execute cfn-validate para verificar um modelo ou todos os modelos em um diretório de um terminal ou compilação automatizada.

  • Biblioteca: adicione o validador a uma aplicação de Rust, Node.js, Python, Go ou JVM e processe os resultados em seu código.

  • AWS CDK: valide os modelos automaticamente após a sintetização pelo CDK.

  • Regras personalizadas: adicione verificações escritas na linguagem de regras do CEL, Rego ou Guard. Para ver exemplos e formatos de regras compatíveis, consulte a Referência de regras personalizadas no GitHub. Para obter informações sobre a sintaxe de regras do Guard, consulte Validação de modelos com o Guard neste guia.

Instalação da ferramenta de linha de comando

Abra a versão mais recente do cfn-validate no GitHub e baixe o arquivo cfn-validate para seu sistema operacional e processador. Siga o guia de instalação no GitHub para renomear o arquivo para cfn-validate, adicioná-lo ao seu PATH e verificar o arquivo baixado.

Executar validação

O comando usa a seguinte sintaxe:

cfn-validate TEMPLATE_OR_DIRECTORY [OPTIONS]

Verifique um modelo:

cfn-validate template.yaml

Aprove um diretório para verificar de forma recursiva cada arquivo .yaml, .yml e .json:

cfn-validate ./templates/

O comando grava um relatório de validação JSON estruturado no resultado padrão. Use --format standard para resultado compacto ou --format detailed para o relatório detalhado padrão.

O comando informa 0 quando não encontra nenhum erro ou diagnóstico fatal, 1 quando encontra um erro ou diagnóstico fatal e 2 em caso de erro de uso ou inicialização como, por exemplo, uma opção inválida ou um arquivo que não existe.

Para conhecer todos os mecanismos, filtros, formatos de resultados e parâmetros, consulte a Referência da CLI cfn-validate no GitHub.

Adicionar regras personalizadas

Use --rule-source para carregar um arquivo de regras do Rego ou CEL personalizado. Use --guard-rule-source para carregar um arquivo ou diretório de regras do Guard. Você pode repetir qualquer uma das opções para carregar várias fontes de regras:

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

Para ver exemplos e formatos de regras, consulte a Referência de regras personalizadas no GitHub.

Incorporar a biblioteca de validação

Instale o pacote publicado para sua linguagem de programação para executar as mesmas verificações off-line da sua aplicação. Crie um mecanismo de validação uma vez, reutilize-o para vários modelos e processe os diagnósticos estruturados produzidos para cada modelo. Você também pode configurar regras personalizadas do CEL, Rego ou Guard por meio da API da biblioteca.

Para obter instruções de instalação e conhecer as plataformas compatíveis, consulte o guia de instalação da vinculação de linguagem.

Para obter exemplos completos em todas as linguagens e links para cada guia de API, consulte Incorporação como uma biblioteca na documentação do projeto no GitHub.

Use o com o AWS CDK

Se você usar AWS CDK, não precisará instalar o validador separadamente. A biblioteca do constructo do AWS CDK inclui um CloudFormationValidatePlugin padrão que executa as mesmas verificações automaticamente após sintetizar seus modelos do CloudFormation.

cdk synth

O CDK relata possíveis falhas de implantação e descobertas de acordo com as práticas recomendadas com seus resultados de validação. Você pode configurar explicitamente CloudFormationValidatePlugin quando quiser adicionar regras personalizadas do Rego ou Guard.

Para saber sobre configuração de plug-ins, confirmações e relatórios de validação, consulte Validação de modelos e políticas na Referência da API do AWS CDK.

Entender o escopo de validação

Para saber as limitações da validação local e as etapas a serem seguidas antes da implantação, consulte Entender o escopo de validação.