Uma das principais técnicas de filtragem de egress é a filtragem por Fully Qualified Domain Name (FQDN). Essa abordagem dá aos administradores controle preciso sobre o tráfego de saída por nomes de domínio.

No mundo atual, os dados trafegam entre redes e sistemas sem qualquer barreira. Por isso, ficou indispensável adotar medidas de segurança robustas para proteger informações sensíveis. Embora a filtragem de tráfego de entrada receba bastante atenção, a importância da filtragem de egress não pode ser subestimada. A filtragem de egress permite que as organizações regulem a comunicação de saída da rede, garantindo que apenas conexões autorizadas e seguras sejam estabelecidas.
Uma das principais técnicas de filtragem de egress é a filtragem por Fully Qualified Domain Name (FQDN). Essa abordagem dá aos administradores controle preciso sobre o tráfego de saída por nomes de domínio. Combinada com o Firewall Policy do Google Cloud Platform (GCP), as organizações ganham segurança e gerenciamento excepcionais dos seus pontos de egress de rede.
Neste post, vamos mostrar o passo a passo para implementar a filtragem de egress por FQDN no GCP usando objetos FQDN nas regras do firewall policy. O Firewall policy é um recurso à parte do cloud firewall e oferece muito mais funcionalidades do que as regras de firewall da VPC.
O recurso de objeto FQDN nas regras do firewall policy está atualmente em preview, e o suporte do GCP não fornece SLAs nem compromissos de suporte técnico.
O que é um Firewall Policy?
O Firewall Policy do Google Cloud Platform (GCP) é um recurso de segurança de rede que permite definir e aplicar regras de firewall centralizadas para suas instâncias de máquina virtual (VM) e redes VPC (Virtual Private Cloud).
Ele oferece uma abordagem unificada e escalável para gerenciar o tráfego de rede, permitindo controlar a comunicação de entrada e saída, filtrar o tráfego com base em diversos critérios e elevar o nível de segurança como um todo.
Com o Firewall Policy, você define regras granulares que especificam quais tipos de tráfego são permitidos ou negados a partir de fatores como faixas de IP, portas, protocolos e até Fully Qualified Domain Names (FQDNs). Assim, você estabelece um perímetro de rede seguro e protege seus recursos na nuvem contra acessos não autorizados ou atividades maliciosas.
Os principais recursos e benefícios do GCP Firewall Policy são:
- Gerenciamento centralizado: gerencie e configure regras de firewall em vários projetos, regiões e redes VPC a partir de uma única interface centralizada, simplificando a administração das políticas de segurança de rede.
- Definições flexíveis de regras: o Cloud Firewall Policy permite criar regras com base em endereços IP, faixas, portas, protocolos e FQDNs. Essa flexibilidade entrega controle granular sobre o tráfego de entrada e saída e viabiliza políticas de segurança altamente específicas.
- Atualizações dinâmicas: ajuste regras de firewall em tempo real, adaptando-se às mudanças nos requisitos de segurança de rede sem interromper o tráfego existente.
- Integração com serviços do Google Cloud: o Cloud Firewall Policy se integra de forma transparente a outros serviços do Google Cloud, como redes VPC, balanceadores de carga e instâncias de VM, oferecendo controles de segurança consistentes em toda a sua infraestrutura.
- Logging e monitoramento: o Cloud Firewall Policy entrega recursos detalhados de logging e monitoramento, garantindo visibilidade do tráfego de rede, análise de eventos de segurança e diagnóstico eficaz de eventuais problemas.
Arquitetura de referência

Configuração de exemplo
Etapas de implementação da arquitetura de referência
- Configurar o Private Google Access
- Cloud NAT para acesso à internet
- Configurar regras do firewall policy
Configurar o Private Google Access
O Private Google Access permite que recursos dentro de uma rede Virtual Private Cloud (VPC) acessem serviços do Google usando endereços IP privados, sem precisar de conectividade externa à internet.
Também precisamos configurar o Private Google Access com o domínio private.googleapis.com ou restricted.googleapis.com para garantir que as requisições às APIs do Google sejam roteáveis apenas dentro do Google Cloud.
O Private Google Access é habilitado por sub-rede. Habilite o Private Google Access em uma sub-rede existente e atualize as variáveis.
gcloud config set project $PROJECT_ID
gcloud compute networks subnets update $SUBNET_NAME \--region=$REGION \--enable-private-ip-google-access
Para essa configuração, precisamos criar zonas de Cloud DNS para private.googleapis.com. Use restricted.googleapis.com caso esteja utilizando o VPC Service Control. Consulte Domain options para mais detalhes.
Crie uma zona DNS privada para googleapis.com
gcloud dns managed-zones create googleapis-com \--dns-name=googleapis.com. \--description="googleapis-com domain for PGA" \--visibility=private \--networks=$NETWORK_NAME
Crie um registro A para private.googleapis.com apontando para os seguintes endereços IP: 199.36.153.8 , 199.36.153.9 , 199.36.153.10 , 199.36.153.11 .
gcloud dns record-sets create "private.googleapis.com." \<br>--type="A" \<br>--ttl="300" \<br>--rrdatas="199.36.153.8,199.36.153.9,199.36.153.10,199.36.153.11" \<br>--zone="googleapis-com"Crie um registro CNAME para *.googleapis.com apontando para o domínio que você configurou: private.googleapis.com .
gcloud dns record-sets create "*.googleapis.com." \--type="CNAME" \--ttl="300" \--rrdatas="private.googleapis.com." \--zone="googleapis-com"
Algumas APIs e serviços do Google são disponibilizados por meio de domínios adicionais, como *.gcr.io , *.gstatic.com , *.pkg.dev e pki.goog.
Consulte a tabela de domínios e faixas de endereços IP em Domain options para verificar se os serviços desses domínios podem ser acessados via private.googleapis.com ou restricted.googleapis.com . Por exemplo, se você usa o Google Kubernetes Engine (GKE), também precisa configurar zonas privadas de *.gcr.io e *.pkg.dev no Cloud DNS.
Configurar o Cloud NAT
O Cloud NAT é um serviço gerenciado, distribuído e definido por software que permite a recursos sem endereços IP externos criarem conexões de saída com a internet. O Cloud NAT é recomendado em vez do gateway de internet padrão para controlar o tráfego de saída.
Crie um Cloud Router na região desejada.
gcloud compute routers create cloud-firewall-policy-demo-cloud-nat \ --network=$NETWORK_NAME \ --region=$REGIONCrie o gateway Cloud NAT.
gcloud compute routers nats create cloud-firewall-policy-demo-cloud-nat \ --router=cloud-firewall-policy-demo-cloud-nat \ --region=$REGION \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
Configurar regras do firewall policy
As firewall policies vêm em três variações.
- As Hierarchical firewall policies permitem criar e aplicar uma política de firewall consistente em toda a sua organização. Você pode atribuir hierarchical firewall policies à organização como um todo ou a pastas individuais.
- As Global network firewall policies permitem atualizar em lote todas as regras de firewall agrupando-as em um único objeto de policy, e as regras se aplicam a todas as regiões.
- As Regional network firewall policies permitem criar e aplicar uma política de firewall consistente em todas as sub-redes de uma região da sua rede VPC.
Crie uma Global Network firewall policy para essa configuração.
gcloud compute network-firewall-policies create global-demo-firewall-policy \--globalCrie uma nova associação entre a firewall policy e a rede de destino.
gcloud compute network-firewall-policies associations create \--firewall-policy=global-demo-firewall-policy \--network=$NETWORK_NAME --global-firewall-policy
As regras de firewall padrão fazem parte da policy

Associação da rede com a policy
Agora temos todos os recursos necessários para aplicar a filtragem de egress por FQDN usando os objetos FQDN nas regras do firewall policy. O próximo passo é adicionar as regras necessárias à firewall policy.
No momento, nenhuma restrição é aplicada ao tráfego de egress, e as instâncias na rede têm acesso irrestrito à internet.


Para essa configuração, vamos liberar o tráfego de saída apenas para www.example.com e para o endereço IP público atribuído a private.googleapis.com, bloqueando o restante do tráfego de internet.
Crie uma regra padrão de ingress allow. O acesso de entrada fica liberado sem restrição, mas ajuste a regra conforme a sua necessidade.
gcloud compute network-firewall-policies rules create 1001 \--firewall-policy="global-demo-firewall-policy" \--action="allow" \--direction="INGRESS" \--description="Allow ingress traffic" \--src-ip-ranges="0.0.0.0/0" \--layer4-configs="all" \--global-firewall-policyCrie uma regra de firewall para liberar a comunicação com faixas de IP privadas. Garanta que a regra inclua qualquer outra faixa privada customizada usada no seu ambiente, para que a comunicação entre instâncias não seja afetada.
gcloud compute network-firewall-policies rules create 999 \--firewall-policy="global-demo-firewall-policy" -\-action="allow" \--direction="EGRESS" \--description="Allow communication with private IP ranges" \--dest-ip-ranges="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" \--layer4-configs="all" \--global-firewall-policyCrie uma regra de firewall policy para liberar requisições de saída aos IPs públicos de private.googleapis.com. Esses IPs são roteáveis apenas dentro do Google Cloud.
gcloud compute network-firewall-policies rules create 998 \--firewall-policy="global-demo-firewall-policy" \--action="allow" \--direction="EGRESS" \--description="Allow DNS resolution requests to private.googleapis.com" \--dest-ip-ranges="199.36.153.8/32,199.36.153.9/32,199.36.153.10/32,199.36.153.11/32" \--layer4-configs="tcp:443" \--global-firewall-policyCrie uma regra de firewall policy para liberar requisições de saída para www.example.com.
gcloud compute network-firewall-policies rules create 997 \--firewall-policy="global-demo-firewall-policy" \--action="allow" \--direction="EGRESS" \--description="FQDN egress filtering rules" \--dest-fqdns="www.example.com" \--layer4-configs="tcp:80,tcp:443" \--global-firewall-policyCrie uma regra padrão de egress deny e garanta que as regras de allow para os domínios e faixas de IP necessários já estejam criadas antes da regra de Deny.
gcloud compute network-firewall-policies rules create 1000 \--firewall-policy="global-demo-firewall-policy" \--action="deny" \--direction="EGRESS" \--description="Deny all Egress traffic" \--dest-ip-ranges="0.0.0.0/0" \--layer4-configs="all" \--global-firewall-policyLista consolidada das regras do Firewall policy.

As regras podem levar até 30 segundos para entrar em vigor; teste a conectividade de rede a partir da instância GCE ou de pods do GKE. As requisições de saída só são permitidas para os domínios e faixas de IP definidos nas regras do firewall policy.

Resultados dos testes após a aplicação das regras do firewall policy
Neste exemplo, mostramos como objetos FQDN podem ser usados em regras de Firewall policy para filtragem de egress. Esse método é extremamente útil para reforçar a segurança de rede e controlar os pontos de egress.
Para mais informações sobre o Firewall Policy, consulte a página do produto.