Familiarize-se com estas ferramentas essenciais para aprimorar sua experiência com o Terraform.
TFLint
O TFLint é um linter do Terraform focado em possíveis erros, melhores práticas e convenções de estilo no seu código do Terraform.
Quando usar o TFLint:
Você pode executar o TFLint antes do comando terraform plan para detectar problemas antecipadamente.
Por exemplo, digamos que você defina uma instância AWS EC2 em sua configuração do Terraform e faça referência erroneamente a uma AMI que não existe.
O TFLint pode identificar o problema do ID da AMI antes de você executar o comando terraform plan ou terraform apply:
$ tflint main.tf
1 issue(s) found:
Error: "ami-12345678" is an invalid AMI ID. (aws_instance_invalid_ami)
on main.tf line 2:
2: ami = "ami-12345678"
Instalação:
https://github.com/terraform-linters/tflint
Terrascan
Terrascan é uma ferramenta de análise estática de código que verifica suas configurações de Infraestrutura como Código (IaC) em busca de vulnerabilidades de segurança e violações de conformidade. Ele suporta várias plataformas como (AWS, Azure, GCP, K8s, Atlantis, etc), incluindo o Terraform. O Terrascan permite que você aplique as melhores práticas de segurança, políticas de conformidade e governança em suas implantações de IaC.
Quando usar o Terrascan:
Normalmente, o Terrascan pode ser executado localmente ou em CI/CD antes do comando terraform plan, para identificar problemas de segurança.
Aqui está um exemplo de execução do Terrascan em um grupo de segurança da AWS definido no Terraform:
$ terrascan scan -t aws -i terraform
Violation Details -
Description: Ensure no security groups allow ingress from 0.0.0.0/0 to ALL ports and protocols
File: main.tf
Module Name: root
Plan Root: .\
Line: 9
Severity: HIGH
…
Instalação:
https://github.com/tenable/terrascan
Terraform-docs
O Terraform-docs é uma ferramenta que gera automaticamente documentação a partir de módulos do Terraform em vários formatos de saída, incluindo markdown, JSON e outros. É especialmente útil para manter a documentação atualizada das entradas, saídas, provedores e recursos dos seus módulos do Terraform.
Instalação:
https://github.com/terraform-docs/terraform-docs/
TFenv
https://deltaops.medium.com/trabalhando-com-tfenv-dd2902a8e90f
Tfsec
O Tfsec atua como uma ferramenta de escaneamento do Terraform. É um linter centrado em segurança para o Terraform que verifica o código em busca de falhas de segurança, oferecendo uma camada adicional de garantia de segurança e ajudando a manter uma postura de segurança robusta.
O Tfsec permite que você crie políticas em vários formatos, como JSON, YAML e Rego Policies.
Quando usar o Tfsec:
O Tfsec pode ser executado localmente ou em ambientes automatizados de CI/CD antes do comando terraform plan.
Usando o mesmo exemplo do bucket S3 da AWS com criptografia desativada, vamos observar como o Tfsec detecta a vulnerabilidade:
Result #3 HIGH Bucket does not have encryption enabled
.../main.tf:20-32
20 ┌ resource "aws_s3_bucket" "tfsec" {
21 │ bucket = "tfsec-bucket"
22 │ acl = "private"
….
ID aws-s3-enable-bucket-encryption
Impact The bucket objects could be read if compromised
Resolution Configure bucket encryption
Instalação:
https://github.com/aquasecurity/tfsec
Nos acompanhe nas redes sociais e até a próxima!
https://www.linkedin.com/company/deltaopscloud
Referência:
https://developer.hashicorp.com/terraform/docs
https://medium.com/env0/top-terraform-tools-to-know-in-2024-a00a232bb936