DEV Community

Francisco das Chagas
Francisco das Chagas

Posted on

Migrar para o Envoy Gateway não é trocar YAML

O ingress-nginx não recebe patch de segurança desde março de 2026.
Ele continua funcionando, e é por isso que o risco passa despercebido.

A saída recomendada pelo próprio Kubernetes é a Gateway API, e o Envoy Gateway é uma das implementações dela. A tentação é tratar a migração como tradução: pegar cada anotação e reescrever no formato novo. Só que a migração não se resume a trocar YAML.

No nginx, cada app levava a própria regra de IP numa anotação. No Envoy, a regra sobe para uma SecurityPolicy no Gateway compartilhado. Ela muda de dono: sai do time da app e vai para a plataforma. Um erro, que antes afetava uma app, agora afeta todas as rotas.

Ela também muda de camada. A allowlist por IP é uma decisão de L3 tomada em L7. O proxy filtra o IP que ele acredita ser o do cliente. Se houver SNAT no caminho, todo mundo vira o IP do node. Se o X-Forwarded-For for aceito sem critério, qualquer um escreve o próprio IP.

Abaixo, os pontos que a documentação confirma e que eu teria errado se só traduzisse as anotações: SNAT, precedência por substituição, CIDR largo copiado e o API gateway que vira o único cliente.

Slide 1: Migrar para o Envoy Gateway não é trocar YAML. A regra de acesso muda de dono e de camada.

Slide 2: A regra mudou de dono. No Envoy, a SecurityPolicy fica no Gateway compartilhado e um erro afeta todas as rotas.

Slide 3: IP só é prova onde não pode ser forjado. Em L7, o IP é um dado que alguém informou, o X-Forwarded-For.

Slide 4: SNAT apaga o cliente. Com externalTrafficPolicy Cluster, o IP do cliente vira o IP do node.

Slide 5: A política da rota substitui a do Gateway. Sem mergeType, quem chega com token passa de qualquer IP.

Slide 6: A faixa /8 que devia ser /16. 255 blocos /16 de terceiros liberados por uma lista antiga.

Slide 7: Com um API gateway na frente, o cliente é ele. Liberar esse IP libera todo mundo que passa por ele.

Slide 8: Checklist de validação antes do canário.

Qual regra de acesso sumiu, ou abriu demais, numa migração que parecia só de ferramenta no seu ambiente?

Referências

Top comments (0)