pular para o conteúdo
voltar ao mapa
técnica
etapa: definir
2 min de leitura

Infraestrutura segura como código

Quando a infraestrutura é código, a segurança dela também pode ser: revisada em PR, escaneada antes do apply e comparada com a realidade para pegar o que mudou por fora.

TerraformCheckovTrivyAnsible

O que é

Infraestrutura como código () descreve redes, identidades, bancos e permissões em arquivos versionados, em vez de cliques em um console. Para segurança isso muda o jogo: a configuração passa a ter histórico, revisão por pares, testes e a mesma esteira do software.

O outro lado é que um erro no código se replica em escala: um módulo com um bucket público cria cem buckets públicos. Por isso o IaC precisa ser tratado como código sensível, com controles próprios.

Escanear antes do apply

Ferramentas de análise estática de IaC leem os arquivos (ou o plano do Terraform) e apontam configurações inseguras antes de qualquer recurso existir: grupos de segurança abertos para o mundo, armazenamento sem cifragem, políticas com curinga. É o da infraestrutura, e o mesmo princípio de shift-left se aplica.

main.tf - problema e correçãohcl
# problema: SSH aberto para a internet
resource "aws_security_group_rule" "ssh_bad" {
  type              = "ingress"
  from_port         = 22
  to_port           = 22
  protocol          = "tcp"
  cidr_blocks       = ["0.0.0.0/0"]   # <- scanner acusa
  security_group_id = aws_security_group.app.id
}

# correção: só a rede de administração
resource "aws_security_group_rule" "ssh_ok" {
  type              = "ingress"
  from_port         = 22
  to_port           = 22
  protocol          = "tcp"
  cidr_blocks       = [var.admin_cidr]
  security_group_id = aws_security_group.app.id
}

O estado do Terraform é sensível

O arquivo de estado guarda o que o Terraform criou, e isso pode incluir segredos em texto (senhas geradas, chaves). Ele não deve ir para o repositório. Use um backend remoto cifrado, com controle de acesso estrito e bloqueio de concorrência, e dê ao pipeline apenas as permissões que o plano realmente precisa.

backend.tfhcl
terraform {
  backend "s3" {
    bucket         = "minha-org-tfstate"
    key            = "prod/network.tfstate"
    region         = "us-east-1"
    encrypt        = true
    dynamodb_table = "tfstate-lock"   # bloqueio contra apply simultâneo
  }
}

Drift: o que mudou por fora

Alguém altera um recurso no console durante um incidente e esquece de voltar. O estado real diverge do código (drift), e o código deixa de ser a verdade. Rodar um plano periódico, ou ferramentas de detecção de drift, transforma essa divergência em alerta, e o postura da nuvem () olha o mesmo problema pelo lado do ambiente.

Módulos aprovados

  • Módulos internos com os padrões seguros embutidos (cifragem, logs, tags de dono): o caminho seguro vira o caminho fácil.
  • Versões fixadas de módulos e providers, com revisão para atualizá-las.
  • Permissões mínimas para a identidade que executa o apply, separadas por ambiente.
  • Revisão obrigatória e plano anexado ao PR para que o revisor veja o efeito real.
IaCinfrastructure as codeDescrever infraestrutura em arquivos versionados (Terraform, Ansible). Dá revisão, histórico e testes à configuração, mas replica erros em escala se não for escaneada.ver no glossário →SASTAnálise estática: examina o código sem executar. Acha por análise de fluxo, não por adivinhação.ver no glossário →CSPMcloud security posture managementFerramenta que varre a configuração da sua cloud contra boas práticas e benchmarks (CIS, NIST), apontando bucket S3 público, IAM largo demais, porta exposta. Faz a pergunta que humanos esquecem: 'o que está configurado errado AGORA?'.ver no glossário →

conexões no mapa

atualizado em 14/10/2026 · fontes para aprofundar · reportar erro

em outros domínios

Estude antes

Desbloqueia

teste o que entendeu

Carregando perguntas…