Terraform: Ferramentas essenciais que você precisa conhecer

Familiarize-se com estas ferramentas essenciais para aprimorar sua experiência com o Terraform.

TFLint

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.

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: