Voltar ao blog Security & Reliability

A sua aplicação autoalojada precisa de um IP de saída estável? Uma checklist de allowlisting de egress

Um domínio personalizado e HTTPS tornam uma aplicação acessível pela internet, mas não definem o endereço de origem que os serviços externos veem quando a aplicação estabelece ligações de saída. Use esta checklist para identificar dependências de egress, testar se o allowlisting de IP é necessário e planear alterações seguras.

Diagrama que mostra uma aplicação autoalojada a receber tráfego web de entrada e a estabelecer ligações de saída para serviços externos

Comece pela pergunta certa: acessibilidade de entrada não é identidade de saída

Um IP de saída estável é um endereço IP de origem encaminhável pela internet que um destino vê de forma consistente quando a sua aplicação inicia uma ligação. É relevante quando esse destino permite ligações apenas de endereços de origem previamente aprovados, prática habitualmente chamada allowlisting de IP de origem ou allowlisting de egress.

Isto é diferente da forma como as pessoas chegam à sua aplicação. Um domínio personalizado identifica o destino para onde os utilizadores enviam pedidos de entrada. O TLS protege essas ligações de entrada e, para a emissão de certificados Let’s Encrypt, é validado o controlo dos nomes de domínio incluídos no certificado. Um router de proxy reverso, como o Traefik, recebe pedidos de entrada, aplica regras de encaminhamento configuradas e reencaminha os pedidos correspondentes para um serviço. Nenhuma destas funções, por si só, demonstra que endereço de origem uma API, base de dados ou endpoint de parceiro verá no tráfego que sai da aplicação.

Nas implementações Airbip, as aplicações são executadas como workloads Docker em servidores cloud da Airbip, enquanto o encaminhamento e os certificados TLS são automatizados através do Traefik e do Let’s Encrypt. Estas são capacidades valiosas de acesso de entrada, mas não devem ser consideradas uma promessa de endereçamento de saída fixo. Determine os requisitos de saída separadamente e obtenha evidência específica do fornecedor antes de depender de uma allowlist de IP.

  • Pergunta de entrada: que domínio, porta, rota e configuração TLS permitem que utilizadores ou webhooks cheguem à aplicação?
  • Pergunta de saída: que endereços IPv4 e IPv6 de origem cada destino observa quando a aplicação, um worker ou um processo de administração estabelece uma ligação de saída?
  • Pergunta de controlo: o allowlisting de IP de origem é uma política obrigatória do lado que recebe ou apenas uma opção entre controlos mais fortes ou mais fáceis de manter?
Comece pela pergunta certa: acessibilidade de entrada não é identidade de saída

Encontre todas as ligações que podem depender de allowlisting de IP de origem

Não limite a análise à principal função da aplicação voltada para o utilizador. O egress ocorre frequentemente em tarefas agendadas, workers de filas, ferramentas de importação/exportação, integrações de monitorização, verificações de atualizações, fluxos relacionados com cópias de segurança e caminhos de acesso de administradores. Uma implementação pode parecer saudável num teste interativo, mas um worker assíncrono falhar mais tarde porque utiliza outro processo ou percurso de rede.

Comece pelos sistemas que se sabe restringirem endereços de rede de clientes. Candidatos típicos incluem APIs de terceiros, bases de dados geridas, sistemas de pagamentos ou financeiros, endpoints privados de parceiros, redes empresariais internas, sistemas de monitorização, ferramentas de gestão, serviços de acesso remoto e administração por SSH. Independentemente do allowlisting, as ligações de saída que processam tráfego sensível ou operacionalmente importante devem utilizar protocolos cifrados, como TLS, quando aplicável; o OWASP ASVS inclui explicitamente APIs externas, bases de dados, sistemas de parceiros, monitorização, ferramentas de gestão, acesso remoto e SSH nas suas orientações para comunicação entre serviços.

Classifique cada ligação pela consequência para o negócio, e não apenas pelo protocolo técnico. Uma chamada opcional de analytics tem um efeito de falha diferente de uma ação de pagamento, exportação financeira, sincronização de dados de clientes ou ligação a um sistema interno privado.

  • Chamadas interativas da aplicação feitas enquanto um utilizador está ativo
  • Tarefas agendadas, tarefas semelhantes a cron e geração de relatórios
  • Consumidores de filas, workers e fluxos de automação
  • Webhooks, callbacks e chamadas de API para serviços SaaS
  • Ligações a bases de dados, transferência de ficheiros e redes privadas
  • Ligações de monitorização, alertas, registos, administração e acesso remoto
  • Procedimentos de migração, recuperação e failover que podem criar tráfego a partir de um ambiente diferente
Encontre todas as ligações que podem depender de allowlisting de IP de origem

Crie um inventário de dependências de egress antes da implementação

Trate as dependências de egress como um inventário de sistema mantido, e não como uma folha de cálculo pontual. O controlo de inventário de componentes da NIST SP 800-53 enfatiza documentação precisa, informação de responsabilização e revisão regular. Aplique a mesma disciplina aos destinos externos: uma regra de allowlist que ninguém possui ou revê torna-se um risco previsível de indisponibilidade.

Registe uma linha para cada destino e percurso de tráfego. Se um servidor de aplicação e um worker em segundo plano chamam a mesma API por percursos diferentes, registe-os separadamente até ter evidência de que os endereços de origem observados são iguais. Inclua ambas as famílias de endereços: um resultado IPv4 não estabelece o comportamento IPv6.

Peça ao proprietário do destino que declare a sua regra de aceitação real. “A nossa firewall utiliza uma allowlist” é incompleto. É necessário saber se avalia IPv4, IPv6, uma porta e protocolo específicos, um intervalo de IP, uma ligação privada ou uma combinação de controlos de rede e de camada aplicacional.

  • Destino: hostname, nome do serviço, ambiente e organização recetora
  • Percurso de tráfego: processo da aplicação, worker, agendador, host de administração ou procedimento de recuperação
  • Protocolo e porta: por exemplo, HTTPS, TLS de base de dados, SFTP ou SSH
  • Autenticação: credencial de API, pedido assinado, certificado de cliente, credencial de utilizador ou outro método documentado
  • Dados trocados: classificação, direção e sensibilidade
  • Identidade de origem observada: endereços IPv4 e IPv6 confirmados ou marcados como não verificados
  • Requisito de allowlist: obrigatório, opcional, desconhecido ou não suportado
  • Efeito da falha: funcionalidade degradada, fluxo de trabalho atrasado, transação falhada, lacuna de sincronização de dados ou bloqueio operacional","Proprietário e percurso de escalonamento: quem pode alterar o lado emissor e quem pode alterar a regra do lado recetor","Notificação de alterações: como cada lado comunica alterações de endereço, rede, migração ou política","Data da evidência: quando o percurso e a identidade de origem observada foram testados pela última vez

Teste se uma allowlist de IP é realmente necessária

O allowlisting de IP de origem pode ser uma restrição adicional útil, em particular quando um serviço recetor tem opções limitadas de controlo de acesso. No entanto, não é prova da identidade do workload. A tradução de rede pode fazer com que vários workloads apareçam sob um único endereço externo, enquanto failover, migração ou alterações de encaminhamento podem mudar o endereço que um destino vê. As orientações de zero trust da NIST afastam a ênfase da confiança implícita baseada apenas na localização de rede e aproximam-na da autenticação e autorização explícitas de sujeitos e dispositivos; as suas orientações cloud-native enfatizam de forma semelhante as identidades de aplicações e serviços, permitindo simultaneamente parâmetros de rede como dados adicionais.

Pergunte ao serviço recetor que controlos suporta e quais considera autoritativos. Prefira uma conceção em camadas: transporte cifrado, autenticação e autorização fortes, credenciais de âmbito restrito e uma restrição de IP apenas quando acrescenta uma barreira independente significativa ou continua a ser um requisito contratual.

O TLS mútuo é uma opção particularmente forte quando é suportado e bem operado. O OWASP ASVS identifica a autenticação de cliente TLS, apoiada por infraestrutura de chave pública e mecanismos resistentes a replay, como uma forma forte de verificar endpoints na comunicação entre serviços. Outros padrões possíveis dependem do serviço recetor: credenciais de curta duração, pedidos assinados, conectividade privada ou um modelo de acesso consciente de identidade. Não alegue equivalência sem verificar a documentação e os requisitos de governação do destino.

  • A regra de IP é exigida pelo destino, por uma política do cliente, por um contrato ou é apenas uma prática histórica?
  • O destino pode utilizar TLS mútuo, credenciais de curta duração, pedidos assinados ou conectividade privada?
  • As credenciais podem ser limitadas às ações, dados e ambiente mínimos?
  • O TLS está ativado e a validação de certificados está corretamente configurada para a ligação?
  • Uma regra de IP seria uma salvaguarda adicional em vez do único controlo?
  • O método escolhido pode ser rodado, auditado e testado sem uma janela de indisponibilidade longa?

Compreenda a arquitetura por detrás da identidade de saída

A identidade de saída é uma propriedade de todo o percurso de tráfego, não do URL de uma aplicação. Na tradução de endereços de rede tradicional, um endereço privado pode ser associado a um endereço externo quando uma sessão de saída começa, e a origem do pacote pode ser traduzida para um endereço globalmente único. Nas redes bridge do Docker em Linux, o Docker documenta regras de NAT e masquerading para o tráfego de contentores. O Docker também distingue este masquerading de saída das portas publicadas, que se destinam sobretudo a permitir que hosts remotos cheguem aos contentores através dos endereços do host.

Esta distinção é importante em implementações contentorizadas. O endereço que aceita tráfego de entrada numa porta publicada, ou o domínio encaminhado por um proxy reverso, pode não ser o endereço que um destino remoto observa no egress de um contentor. Um fornecedor só pode fazer uma declaração significativa sobre a identidade de saída se definir os workloads relevantes, a família de endereços, as rotas e o comportamento em caso de falha ou migração.

Os ambientes dual-stack exigem testes explícitos. A seleção de endereços de origem e destino IPv6 possui regras próprias, e a seleção do destino pode preferir IPv6 ou IPv4 dependendo dos endereços de origem disponíveis. Por isso, uma allowlist apenas para IPv4 não estabelece que um cliente utilizará IPv4. Se o destino disponibilizar conectividade IPv6, teste o que o seu workload realmente faz e assegure que a política do destino abrange o percurso selecionado.

  • NAT e masquerading: que endereço é traduzido e em que ponto do percurso ocorre a tradução?
  • Egress de contentor para host: os contentores de aplicação, workers e tarefas de manutenção partilham o mesmo percurso?
  • IPv4 e IPv6: que família é selecionada para cada destino e está na allowlist?
  • Múltiplas instâncias: réplicas, workers ou serviços separados podem ter identidades de egress diferentes?
  • Failover e migração: o que verá o destino após substituição, restauro ou relocalização?
  • Alterações de rede geridas pelo fornecedor: potenciais alterações de endereço são documentadas e comunicadas?

Faça perguntas precisas e baseadas em evidência aos fornecedores de infraestrutura

Evite perguntar apenas: “Têm um IP estático?” A resposta pode ser enganadora se não indicar a direção e o âmbito do tráfego. Peça respostas por escrito associadas ao workload pretendido e aos destinos que exigem restrições. Um fornecedor pode documentar um endereço de servidor de entrada sem assumir qualquer compromisso sobre todos os percursos de tráfego de saída.

A Airbip disponibiliza deployment gerido de aplicações do seu catálogo público, executadas como workloads Docker em servidores cloud da Airbip. Também automatiza o encaminhamento e os certificados TLS através do Traefik e do Let’s Encrypt, e inclui verificações de DNS, gestão de ciclo de vida e cópias de segurança configuráveis diárias, semanais e mensais. Se a sua implementação tiver um requisito rígido de egress estável, confirme esse requisito com a Airbip antes da implementação, em vez de o inferir de um domínio personalizado, de um endereço público da aplicação ou do comportamento do proxy de entrada. Se uma conceção de egress fixo controlada pelo cliente for inegociável e não puder ser comprovada para o percurso necessário, escolha um modelo de infraestrutura que consiga cumpri-la e documentá-la.

Guarde as respostas dos fornecedores com o seu inventário de dependências. O resultado útil não é uma garantia vaga; é uma declaração operacional testável que descreve os endereços observados, os percursos abrangidos, as condições de alteração e o processo de notificação.

  • Que endereços IPv4 e IPv6 de saída utilizará cada workload e processo especificado?
  • Esses endereços estão documentados como estáveis ou podem mudar? Em que eventos?
  • Que tráfego está abrangido: contentor da aplicação, worker, agendador, processo de manutenção, cópias de segurança, acesso administrativo e ambiente de recuperação?
  • A declaração abrange apenas o funcionamento normal ou também failover, migração, reconstrução e restauro?
  • Que aviso é dado antes de uma alteração relevante de endereço de egress e por que canal?
  • O fornecedor pode disponibilizar um método de teste seguro ou evidência para o percurso ativo?
  • Quem é responsável pelo suporte e coordenação se um destino rejeitar o endereço de origem observado?

Planeie alterações de allowlist como uma implementação controlada

Uma atualização de allowlist abrange dois planos de controlo: o percurso de tráfego real do emissor e a política de aceitação do recetor. Coordene ambos os proprietários, escolha uma janela de alteração de baixo risco e defina o sucesso através de uma ligação autenticada real, em vez de uma consulta DNS ou teste num browser. Um browser que chega à sua aplicação apenas confirma o acesso de entrada.

Quando o serviço recetor o permitir, autorize temporariamente os endereços exatos antigo e novo. Esta sobreposição disponibiliza uma janela de verificação e suporta o rollback se o novo percurso falhar. Remova prontamente a entrada antiga após o período de validação acordado. Não compense a incerteza incluindo intervalos públicos excessivamente amplos na allowlist; isso enfraquece a fronteira e dificulta análises posteriores.

Para cada alteração, registe o destino testado, protocolo, família de endereços, endereço de origem observado, data e hora, e função da aplicação. Verifique o trabalho em segundo plano, bem como um pedido interativo. Depois, atualize o inventário e assegure que cada lado sabe quem remove as regras temporárias.

  • Nomeie um responsável pela alteração, um responsável do lado recetor, um aprovador e um responsável pelo rollback.
  • Confirme o hostname ou endpoint de destino exato, protocolo, porta e ambiente.
  • Obtenha os endereços IPv4 e IPv6 de origem propostos a partir de evidência, não de suposições.
  • Adicione uma sobreposição temporária de endereços exatos se o serviço recetor a suportar.
  • Teste uma transação autenticada e representativa a partir de cada processo relevante.
  • Verifique logs e evidência do lado do destino quanto ao endereço de origem realmente observado.
  • Defina uma data-limite para remover a entrada antiga e registe a confirmação.
  • Mantenha um percurso de contacto de emergência para uma ligação rejeitada ou rollback.

Prepare-se para os modos de falha que surpreendem as equipas

A rejeição de um endereço de origem alterado por um destino é a falha mais visível, mas não é a única. O padrão comum é o âmbito incompleto: a equipa validou um pedido web, enquanto um worker, agendador ou procedimento de recuperação seguiu outra rota. Conceba os testes em torno de fluxos de trabalho de negócio e eventos operacionais, e não de um único comando curl bem-sucedido.

Um percurso IPv6 também pode contornar uma regra apenas IPv4 se o cliente e o destino selecionarem IPv6. Inversamente, um teste apenas IPv4 pode ocultar um destino que não tem uma política IPv6 utilizável. Inclua ambas as famílias no plano de testes pré-implementação e documente uma decisão deliberada se uma família estiver desativada ou não for suportada para uma ligação específica.

Migração, reconstrução, restauro e failover merecem a mesma análise que a implementação inicial. Se qualquer um destes eventos puder criar uma nova identidade de egress, a allowlist do lado recetor tem de estar pronta antes do evento ou o serviço deve ter um percurso de atualização de emergência testado. Se a indisponibilidade ou o allowlisting externo rigoroso não puder tolerar essa incerteza, uma arquitetura de rede ou modelo de alojamento diferente poderá ser a escolha responsável.

  • Endereço de origem alterado: ative a regra de sobreposição ou faça rollback e confirme depois o endereço de origem no destino.
  • Percurso de worker diferente: teste cada worker e tarefa agendada separadamente; não confie no resultado do processo web.
  • Contorno por IPv6: inspecione a resolução do destino e os logs de ligação; adicione a regra IPv6 correta ou imponha o percurso suportado pretendido.
  • Identidade inesperada após migração: suspenda fluxos de trabalho dependentes quando for seguro, aplique o processo de alteração pré-aprovado e execute uma verificação representativa.
  • Regra sem proprietário: atribua um proprietário de serviço e um contacto do lado recetor antes da próxima janela de alteração.
  • Intervalo de emergência amplo proposto: trate-o como uma exceção limitada no tempo, que exige aprovação explícita e uma data de remoção.

Perguntas frequentes

Um domínio personalizado dá à minha aplicação autoalojada um IP de saída estável?

Não. Um domínio personalizado faz parte da nomenclatura e do encaminhamento de entrada. Não define o endereço IP de origem que os serviços externos veem quando a aplicação inicia ligações de saída.

Um proxy reverso ou certificado TLS determina a identidade de egress de saída?

Não. Proxies reversos como o Traefik encaminham pedidos de entrada para serviços. O TLS protege ligações e, na emissão de certificados Let’s Encrypt, é validado o controlo dos nomes de domínio incluídos no certificado. A identidade de origem de saída depende do percurso de rede de egress, incluindo encaminhamento e tradução de endereços.

Porque é que um contentor Docker pode ter uma identidade de saída diferente do URL público da aplicação?

A publicação de portas de entrada e o masquerading de saída são funções de rede separadas. O Docker documenta regras de NAT tanto para mapeamento de portas como para masquerading, pelo que não se deve assumir que o endereço utilizado para acesso de entrada é o endereço visto por um destino de saída.

Devemos usar allowlisting de IP em vez de autenticação forte?

Normalmente, trate o allowlisting de IP como uma restrição adicional, e não como a única decisão de confiança. Quando suportado, avalie transporte cifrado, credenciais de âmbito restrito, pedidos assinados, TLS mútuo, conectividade privada ou controlos conscientes de identidade. A escolha certa depende do serviço recetor e dos seus requisitos de governação.

Temos de analisar IPv6 para allowlisting de saída?

Sim, num ambiente dual-stack. Um destino pode ser alcançado por IPv6 ou IPv4, dependendo dos endereços disponíveis e do comportamento de seleção. Teste o percurso de ligação real e assegure que as regras do serviço recetor abrangem a família de endereços utilizada.

O que devemos perguntar à Airbip antes de implementar uma aplicação com uma allowlist de egress rigorosa?

Peça evidência sobre os endereços IPv4 e IPv6 de saída dos workloads e processos específicos envolvidos, se podem mudar, que percursos de tráfego são abrangidos, o que acontece durante migração ou recuperação e como as alterações relevantes são comunicadas. Não infira comportamento de egress fixo a partir de um subdomínio Airbip, domínio personalizado, encaminhamento ou configuração TLS.

Fontes e leituras adicionais

  1. Packet filtering and firewalls — Docker
  2. Docker with iptables — Docker
  3. HTTP Router — Traefik Labs
  4. Challenge Types — Let’s Encrypt / Internet Security Research Group
  5. RFC 3022: Traditional IP Network Address Translator — IETF / RFC Editor
  6. RFC 6724: Default Address Selection for IPv6 — IETF / RFC Editor
  7. Application Security Verification Standard: General Service-to-Service Communication Security — OWASP
  8. SP 800-207A: A Zero Trust Architecture Model for Access Control in Cloud-Native Applications in Multi-Cloud Environments — NIST
  9. SP 800-207: Zero Trust Architecture — NIST
  10. SP 800-53 Rev. 5: Security and Privacy Controls for Information Systems and Organizations — NIST