Validação de modelos com o Guard
AWS CloudFormation Guard (cfn-guard) é uma ferramenta de política como código. Você escreve regras que descrevem as configurações obrigatórias ou proibidas e, em seguida, compara os dados JSON ou YAML com essas regras. Por exemplo, você pode exigir que cada bucket do Amazon S3 em um modelo use criptografia.
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.
Tópicos
Instalar o Guard
No macOS, instale o Guard com o Homebrew:
brew install cloudformation-guard
Para Linux, Windows, outros métodos de instalação no macOS e verificação da versão, consulte Configuração do AWS CloudFormation Guard.
Escrever uma regra
Salve as regras em um arquivo com a extensão .guard. O exemplo a seguir exige que cada bucket do Amazon S3 em um modelo especifique a criptografia do bucket:
let s3_buckets = Resources.*[ Type == 'AWS::S3::Bucket' ] rule S3_BUCKET_ENCRYPTED when %s3_buckets !empty { %s3_buckets { Properties.BucketEncryption exists } }
Para saber a sintaxe das regras e obter mais exemplos, consulte Como escrever as regras do AWS CloudFormation Guard.
Validar um modelo
Aprove o arquivo de regras para --rules e o modelo para --data:
cfn-guard validate --rules rules.guard --data template.yaml
O comando retorna o status de saída 0 quando o modelo é aprovado. Se uma regra falhar, a saída identificará a regra com falha. Você também pode aprovar diretórios para --rules e --data para verificar vários arquivos.
Antes de usar uma regra em um fluxo de trabalho automatizado, teste-a com o suporte de teste de unidade integrado. Para obter instruções, consulte Teste de regras do AWS CloudFormation Guard.
Incluir o Guard em seu fluxo de trabalho
Você pode executar o Guard localmente, em uma compilação automatizada, ou antes de um commit do Git. O CloudFormation Language Server também pode executar pacotes de regras do Guard enquanto você edita um modelo. Para saber sobre a configuração, consulte CloudFormation Language Server.
Para aplicar regras durante as operações da API do CloudFormation e do Cloud Control, use os hooks do Guard. Para obter mais informações, consulte Hooks do Guard.
Saiba mais
Para obter a referência completa de linguagem e comando, consulte o Guia do usuário do AWS CloudFormation Guard. O código-fonte e as informações sobre versão estão disponíveis no Repositório do AWS CloudFormation Guard no GitHub