Una de las principales técnicas de filtrado egress es el filtrado por Fully Qualified Domain Name (FQDN). Este enfoque les da a los administradores un control preciso sobre el tráfico saliente a partir de los nombres de dominio.

Hoy en día los datos viajan entre redes y sistemas sin ningún tipo de barrera. Por eso, resulta indispensable implementar medidas de seguridad sólidas para proteger la información sensible. Aunque el filtrado del tráfico entrante suele acaparar la atención, no conviene subestimar la importancia del filtrado egress, que permite a las organizaciones regular las comunicaciones de red salientes y garantizar que solo se establezcan conexiones autorizadas y seguras.
Una de las principales técnicas de filtrado egress es el filtrado por Fully Qualified Domain Name (FQDN). Este enfoque les da a los administradores un control preciso sobre el tráfico saliente a partir de los nombres de dominio. Combinado con la Firewall Policy de Google Cloud Platform (GCP), permite a las organizaciones obtener un nivel excepcional de seguridad y control sobre sus puntos de salida de red.
En este blog post te mostramos paso a paso cómo implementar el filtrado egress por FQDN en GCP usando objetos FQDN en las reglas de la firewall policy. La Firewall policy es una funcionalidad independiente dentro del cloud firewall y aporta muchas más capacidades que las reglas de firewall de VPC.
La funcionalidad de objeto FQDN dentro de las reglas de la firewall policy se encuentra actualmente en preview, por lo que el soporte de GCP no ofrece SLAs ni compromisos de soporte técnico para esta función.
¿Qué es una Firewall Policy?
La Firewall Policy de Google Cloud Platform (GCP) es una funcionalidad de seguridad de red que te permite definir y aplicar reglas de firewall centralizadas para tus instancias de máquina virtual (VM) y tus redes VPC (Virtual Private Cloud).
Aporta un enfoque unificado y escalable para gestionar el tráfico de red: puedes controlar las comunicaciones entrantes y salientes, filtrar tráfico según distintos criterios y reforzar la seguridad en general.
Con la Firewall Policy puedes definir reglas con un alto nivel de granularidad que especifican qué tipos de tráfico se permiten o se deniegan según factores como rangos de IP, puertos, protocolos e incluso Fully Qualified Domain Names (FQDNs). Así estableces un perímetro de red seguro y proteges tus recursos en la nube frente a accesos no autorizados o actividades maliciosas.
Estas son las características y beneficios clave de la Firewall Policy de GCP:
- Gestión centralizada: administra y configura reglas de firewall en múltiples proyectos, regiones y redes VPC desde una única interfaz, lo que simplifica la gestión de las políticas de seguridad de red.
- Definiciones de reglas flexibles: la Cloud Firewall Policy permite definir reglas basadas en direcciones IP, rangos, puertos, protocolos y FQDNs. Esta flexibilidad ofrece un control granular sobre el tráfico entrante y saliente, ideal para definir políticas de seguridad muy específicas.
- Actualizaciones dinámicas: modifica las reglas de firewall en tiempo real para adaptarte a cambios en los requerimientos de seguridad sin interrumpir el tráfico de red existente.
- Integración con servicios de Google Cloud: la Cloud Firewall Policy se integra de forma nativa con otros servicios de Google Cloud, como redes VPC, balanceadores de carga e instancias de VM, lo que garantiza controles de seguridad consistentes en toda tu infraestructura.
- Logging y monitoreo: la Cloud Firewall Policy ofrece capacidades detalladas de logging y monitoreo, lo que aporta visibilidad sobre el tráfico de red y facilita el análisis de eventos de seguridad y la resolución de problemas.
Arquitectura de referencia

Configuración de ejemplo
Pasos de implementación de la arquitectura de referencia
- Configurar Private Google Access
- Cloud NAT para acceso a Internet
- Configurar reglas de la firewall policy
Configurar Private Google Access
Private Google Access permite que los recursos dentro de una red Virtual Private Cloud (VPC) accedan a los servicios de Google con direcciones IP privadas, sin necesidad de conectividad externa a Internet.
También hay que configurar Private Google Access con el dominio private.googleapis.com o restricted.googleapis.com para garantizar que las solicitudes a las APIs de Google solo se enruten dentro de Google Cloud.
Private Google Access se habilita a nivel de subnet. Habilítalo en una subnet existente y actualiza las variables.
gcloud config set project $PROJECT_ID
gcloud compute networks subnets update $SUBNET_NAME \--region=$REGION \--enable-private-ip-google-access
Para esta configuración hay que crear zonas de Cloud DNS para private.googleapis.com. Usa restricted.googleapis.com si trabajas con VPC service control. Consulta Domain options para más detalles.
Crea una 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
Crea un registro A para private.googleapis.com que apunte a las siguientes direcciones 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"Crea un registro CNAME para *.googleapis.com que apunte al dominio que configuraste: private.googleapis.com .
gcloud dns record-sets create "*.googleapis.com." \--type="CNAME" \--ttl="300" \--rrdatas="private.googleapis.com." \--zone="googleapis-com"
Algunas APIs y servicios de Google se ofrecen a través de nombres de dominio adicionales, como *.gcr.io , *.gstatic.com , *.pkg.dev y pki.goog.
Consulta la tabla de rangos de dominios y direcciones IP en Domain options para verificar si los servicios de esos dominios adicionales pueden accederse mediante private.googleapis.com o restricted.googleapis.com . Por ejemplo, si usas Google Kubernetes Engine (GKE), también necesitas configurar zonas privadas para *.gcr.io y *.pkg.dev en Cloud DNS.
Configurar Cloud NAT
Cloud NAT es un servicio gestionado, distribuido y definido por software que permite que recursos sin direcciones IP externas establezcan conexiones salientes hacia Internet. Se recomienda usar Cloud NAT en lugar del internet gateway por defecto para controlar el tráfico saliente.
Crea un Cloud router en la región que necesites.
gcloud compute routers create cloud-firewall-policy-demo-cloud-nat \ --network=$NETWORK_NAME \ --region=$REGIONCrea el gateway de 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 las reglas de la firewall policy
Existen tres tipos de firewall policies.
- Las firewall policies jerárquicas te permiten crear y aplicar una política de firewall consistente en toda tu organización. Puedes asignarlas a la organización completa o a folders individuales.
- Las firewall policies de red globales te permiten actualizar todas las reglas de firewall en lote agrupándolas en un único objeto de política, y las reglas se aplican en todas las regiones.
- Las firewall policies de red regionales te permiten crear y aplicar una política de firewall consistente en todas las subnets dentro de una región de tu red VPC.
Crea una firewall policy de red global para esta configuración.
gcloud compute network-firewall-policies create global-demo-firewall-policy \--globalCrea una nueva asociación entre la firewall policy y la red destino.
gcloud compute network-firewall-policies associations create \--firewall-policy=global-demo-firewall-policy \--network=$NETWORK_NAME --global-firewall-policy
Las reglas de firewall por defecto forman parte de la política

Asociación de la red a la política
Ya tenemos creados todos los recursos necesarios para aplicar el filtrado egress por FQDN mediante los objetos FQDN en las reglas de la firewall policy. El siguiente paso es agregar las reglas necesarias a la política.
Por ahora no hay restricciones aplicadas al tráfico egress y las instancias de la red tienen acceso a Internet sin restricciones.


En esta configuración solo permitiremos tráfico saliente hacia www.example.com y la dirección IP pública asignada a private.googleapis.com, y bloquearemos el resto del tráfico de Internet.
Crea una regla de allow de ingress por defecto. El acceso entrante queda permitido sin restricciones, pero ajústala según tus necesidades.
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-policyCrea una regla de firewall que permita la comunicación con rangos de IP privadas. Asegúrate de que la regla incluya cualquier otro rango privado personalizado que uses en tu entorno para que la comunicación entre instancias no se vea afectada.
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-policyCrea una regla de firewall policy que permita las solicitudes salientes a las IPs públicas de private.googleapis.com. Estas IPs solo se enrutan dentro de 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-policyCrea una regla de firewall policy que permita las solicitudes salientes a 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-policyCrea una regla de deny de egress por defecto y verifica que ya hayas creado las reglas allow para los dominios y rangos de IP requeridos antes de crear la regla 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 de reglas de la firewall policy.

Las reglas pueden tardar hasta 30 segundos en aplicarse. Después prueba la conectividad de red desde la instancia de GCE o desde los pods de GKE. Las solicitudes salientes solo se permiten hacia los dominios y rangos de IP definidos en las reglas de la firewall policy.

Resultados de las pruebas tras aplicar las reglas de la firewall policy
En este ejemplo mostramos cómo aprovechar los objetos FQDN en las reglas de Firewall policy para hacer filtrado egress. Es un método muy útil para reforzar la seguridad de red y controlar los puntos de salida.
Para más información sobre Firewall Policy, consulta la página del producto.