CEVIU Logo
Voltar

Evite Hard-Coding de IP Local no Terraform: Proteja Firewalls Dinamicamente

Aprofundamento CEVIU

Aprofundamento

O módulo Build5Nines/myip/http resolve um ponto fraco recorrente em pipelines de infraestrutura: a dependência de IPs públicos fixos para allowlisting em firewalls. Em vez de codificar manualmente um IP, prática que quebra entregas automatizadas quando o endereço muda, como em conexões residenciais ou CI runners efêmeros, o módulo faz uma requisição HTTP GET para serviços como https://ipv4.icanhazip.com, extrai o IP com chomp() e devolve apenas ip_address como saída. Ele é leve (não requer provedores adicionais), configurável para IPv4 ou IPv6, e suporta cabeçalhos personalizados e múltiplas URLs de fallback, essencial para resiliência em ambientes com restrições de rede ou bloqueios pontuais.

Essa abordagem ganha relevância em 2026 porque mais equipes estão migrando para arquiteturas híbridas com CI/CD executados em máquinas locais ou VPCs compartilhadas, onde IPs dinâmicos são regra, não exceção. Mas o módulo sozinho não é solução completa: ele não valida se o IP retornado é roteável, não lida com timeouts por padrão e não impede que regras fiquem 'congeladas' após um terraform apply bem-sucedido, mesmo que o IP mude depois. Por isso, o artigo da Build5Nines de 9 de março alerta que o allowlisting baseado em IP deve ser documentado como temporário, com TTL explícito em comentários do código, e sempre combinado com alternativas como NAT Gateways para runners de produção ou listas de permissão de IP nativas do HCP Terraform, que já estão disponíveis no cloud e chegam ao Terraform Enterprise em breve.

Por que isso importa

Em DevOps moderno, regras de firewall codificadas estáticamente geram falhas silenciosas: pipelines travam por falta de acesso, equipes perdem tempo depurando conectividade e auditorias apontam regras obsoletas há meses. Automatizar a atualização dessas regras com dados dinâmicos, como o IP real da máquina que executa o Terraform, reduz fricção operacional e alinha segurança com agilidade. Mas o valor real não está só no módulo: está na disciplina que ele exige, validar formato do IP, testar timeouts, usar redundância entre serviços de consulta e, acima de tudo, reconhecer quando um IP dinâmico é inadequado para produção. Nesse cenário, o módulo serve menos como ferramenta final e mais como gatilho para revisar políticas de acesso, especialmente em ambientes com CI/CD auto-hospedado ou times remotos com redes variáveis.

Perguntas frequentes

Esse módulo funciona com IPv6?

Sim. Por padrão retorna IPv4, mas aceita um parâmetro url personalizado, como https://ipv6.icanhazip.com. Basta ajustar a URL de consulta e garantir que o serviço de destino retorne apenas o endereço, sem quebras de linha ou espaços extras.

O que acontece se o serviço de consulta de IP ficar fora do ar durante o <code>terraform plan</code>?

O módulo falha com erro HTTP, interrompendo o plano. Para evitar isso, recomenda-se usar múltiplas URLs de fallback em um bloco dynamic ou implementar tratamento via try() e can() no Terraform 1.8+, além de definir timeout explícito na requisição.

Posso usar esse módulo para permitir acesso a um banco de dados em produção?

Não recomendado. IPs dinâmicos são inseguros e instáveis para produção. O ideal é usar IPs estáticos (ex: NAT Gateway no AWS, External IP estático no GCP) ou mecanismos mais robustos como Identity-Aware Proxy (IAP), peering de VPC ou autenticação baseada em token com listas de permissão de IP no nível do serviço (como no HCP Terraform).

Existe alguma alternativa nativa ao Terraform para isso?

Sim. A data source "http" do próprio Terraform permite fazer a mesma chamada sem depender de módulos externos. Também há opções como external data source com scripts em Python ou curl, ou módulos especializados por nuvem, como terraform-google-modules/address/google para reservar IPs estáticos no GCP, lançado em fevereiro de 2026.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU DevOps
Publicado
20 de março de 2026
Editoria
CEVIU DevOps

Quer receber mais sobre CEVIU DevOps?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser