Uma meneira de integrar mais segurança ao seu CI e sua infraestrutura como código (IaaC)!
- Este projeto tem como objetivo verificar o nível de conformidade do seu código CloudFormation à respeito das boas práticas de arquitetura sugeridas pela AWS;
- Usamos o GitHub Actions para automatizar o deployment do nosso CloudFormation na AWS apenas se estiver compliance com nossa política de boas práticas de arquitetura de Cloud;
- Lembre-se de alterar o nome do Bucket S3 no arquivo "s3-bucket-sfcb.yml", pois eles precisam ser únicos globalmente. Caso contrário o seu deploy irá falhar.
- Se desejar mais informações sobre o seu código antes de realizar o deployment, você pode utilizar a extensão do Cloud Conformity no seu Visual Studio Code!
- 1 Conta da AWS com usuário que tenha direitos de administrador ou direitos de executar CloudFormation Templates;
- Ter o Git instalado localmente na sua máquina;
- 1 Conta já criada no Trend Micro Cloud One Conformity;
- 1 Stack no AWS CloudFormation;
- 1 Bucket no AWS S3;
⚡ USANDO O GitHub Actions para criar AWS CloudFormation Templates
Caso você já tenha uma Action configurada para esta ação, pode pular essa etapa e testar o seu código já existente.
1 - Clone este Repositório para a sua máquina: https://github.com/SecurityForCloudBuilders/template-scanner-cft.git
git clone https://github.com/SecurityForCloudBuilders/template-scanner-cft.git
2 - Crie uma Actions no seu repositório do GitHub -> Actions -> Simple workflow
3 - Configure AWS Credentials Action for GitHub Actions
3.5 - Adicione as variáveis de AWS_SECRET_KEY_ID e AWS_SECRET_ACCESS_KEY solicitadas na etapa anterior no seu repositório como SECRETS
4 - Volte para o seu workflow e adicione a Action Deploy CloudFormation Stack Action for GitHub Actions
- Lembre-se de alterar o nome do Bucket S3 no arquivo "s3-bucket-sfcb.yml", pois eles precisam ser únicos globalmente. Caso contrário o seu deploy irá falhar.
5 - Ao fazer o "commit" na etapa anterior, o Github já deverá criar um stack na sua conta AWS no serviço CloudFormation
✋ INTEGRANDO O CONFORMITY TEMPLATE SCANNER PARA VALIDAR A CONFORMIDADE DO SEU CLOUDFORMATION TEMPLATE
6 - Agora, faça o deploy do Cloud One Conformity Pipeline Scanner
6.5 - Esse script precisa que você providencie a sua chave de API do Trend Micro Conformity como SECRET no seu repositório, assim como fizemos no passo 3 com as chaves de acesso da AWS e que configure os limites máximos de violações por severidade.
7 - Ao configurar essas mudanças no seu Workflow, o Conformiy irá validar seu código CloudFormation e caso esteja de acordo com os limites estipulados no passo anterior, ele irá realizar o deploy do Stack no seu CloudFormation. Caso contrário, ele irá quebrar seu pipeline por conta dos riscos que infraestrutura pode causar por não ser segura/compliance.
7.5 - Para ver o resultado do Scan, vá em "Actions" e poderá acompanhar o resultado de cada execução que foi realizada pelo GitHub Acionts
- Este projeto é para o propósito de Demostrações!
- Não foi criado para ser usado em produção ou com dados sensiveis!