L'une des principales techniques de filtrage egress repose sur le nom de domaine pleinement qualifié (FQDN). Cette approche offre aux administrateurs un contrôle précis du trafic sortant à partir des noms de domaine.

Aujourd'hui, les données circulent sans entrave entre les réseaux et les systèmes. Il est donc essentiel de mettre en place des mesures de sécurité robustes pour protéger les informations sensibles. Si le filtrage du trafic entrant fait l'objet d'une attention soutenue, l'importance du filtrage egress ne doit pas être sous-estimée. Le filtrage egress permet aux organisations d'encadrer les communications réseau sortantes et de garantir que seules des connexions autorisées et sécurisées sont établies.
L'une des principales techniques de filtrage egress repose sur le nom de domaine pleinement qualifié (FQDN). Cette approche offre aux administrateurs un contrôle précis du trafic sortant à partir des noms de domaine. Combinée à la Firewall Policy de Google Cloud Platform (GCP), elle apporte aux organisations un niveau remarquable de sécurité et de maîtrise de leurs points de sortie réseau.
Dans cet article, nous vous accompagnons pas à pas dans la mise en place du filtrage egress par FQDN sur GCP à l'aide des objets FQDN dans les règles de la firewall policy. La Firewall Policy est une fonctionnalité distincte du cloud firewall et propose nettement plus de possibilités que les règles de pare-feu VPC.
L'objet FQDN dans les règles de firewall policy est actuellement en preview : le support GCP ne fournit ni SLA ni engagement de support technique pour cette fonctionnalité.
Qu'est-ce qu'une Firewall Policy ?
La Firewall Policy de Google Cloud Platform (GCP) est une fonctionnalité de sécurité réseau qui permet de définir et d'appliquer des règles de pare-feu centralisées pour vos instances de machines virtuelles (VM) et vos réseaux VPC (Virtual Private Cloud).
Elle propose une approche unifiée et évolutive de la gestion du trafic réseau : contrôle des communications entrantes et sortantes, filtrage du trafic selon différents critères et renforcement de la sécurité globale.
Avec la Firewall Policy, vous pouvez définir des règles fines précisant les types de trafic autorisés ou refusés selon des critères tels que les plages d'IP, les ports, les protocoles et même les noms de domaine pleinement qualifiés (FQDN). Vous établissez ainsi un périmètre réseau sécurisé et protégez vos ressources cloud contre les accès non autorisés et les activités malveillantes.
Principales fonctionnalités et avantages de la Firewall Policy GCP :
- Gestion centralisée : pilotez et configurez les règles de pare-feu sur plusieurs projets, régions et réseaux VPC depuis une interface unique, ce qui simplifie la gestion des politiques de sécurité réseau.
- Définitions de règles flexibles : la Cloud Firewall Policy permet de définir des règles selon les adresses IP, les plages, les ports, les protocoles et les FQDN. Cette souplesse offre un contrôle granulaire du trafic entrant et sortant et permet de définir des politiques de sécurité très ciblées.
- Mises à jour dynamiques : modifiez les règles de pare-feu en temps réel pour suivre l'évolution des exigences de sécurité réseau, sans perturber le trafic existant.
- Intégration avec les services Google Cloud : la Cloud Firewall Policy s'intègre nativement aux autres services Google Cloud — réseaux VPC, load balancers, instances VM — pour assurer des contrôles de sécurité cohérents sur l'ensemble de votre infrastructure.
- Logging et monitoring : la Cloud Firewall Policy fournit des capacités détaillées de logging et de monitoring pour gagner en visibilité sur le trafic réseau, analyser les événements de sécurité et résoudre efficacement les incidents.
Architecture de référence

Exemple de configuration
Étapes de mise en œuvre de l'architecture de référence :
- Configurer Private Google Access
- Cloud NAT pour l'accès Internet
- Configurer les règles de firewall policy
Configurer Private Google Access
Private Google Access permet aux ressources d'un réseau Virtual Private Cloud (VPC) d'accéder aux services Google via des adresses IP privées, sans connectivité Internet externe.
Il faut également configurer Private Google Access avec le domaine private.googleapis.com ou restricted.googleapis.com afin que les requêtes vers les API Google soient routables uniquement à l'intérieur de Google Cloud.
Private Google Access s'active sous-réseau par sous-réseau. Activez-le sur un sous-réseau existant et mettez à jour les variables.
gcloud config set project $PROJECT_ID
gcloud compute networks subnets update $SUBNET_NAME \--region=$REGION \--enable-private-ip-google-access
Pour cette configuration, il faut créer des zones Cloud DNS pour private.googleapis.com. Utilisez restricted.googleapis.com si vous utilisez VPC Service Controls. Consultez les options de domaine pour plus de détails.
Créez une zone DNS privée pour googleapis.com :
gcloud dns managed-zones create googleapis-com \--dns-name=googleapis.com. \--description="googleapis-com domain for PGA" \--visibility=private \--networks=$NETWORK_NAME
Créez un enregistrement A pour private.googleapis.com pointant vers les adresses IP suivantes : 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"Créez un enregistrement CNAME pour *.googleapis.com pointant vers le domaine que vous avez configuré : private.googleapis.com.
gcloud dns record-sets create "*.googleapis.com." \--type="CNAME" \--ttl="300" \--rrdatas="private.googleapis.com." \--zone="googleapis-com"
Certaines API et certains services Google sont accessibles via des noms de domaine supplémentaires, notamment *.gcr.io, *.gstatic.com, *.pkg.dev et pki.goog.
Consultez le tableau des domaines et plages d'adresses IP dans les options de domaine pour vérifier si les services associés à ces domaines sont accessibles via private.googleapis.com ou restricted.googleapis.com. Par exemple, si vous utilisez Google Kubernetes Engine (GKE), il faut également configurer les zones privées *.gcr.io et *.pkg.dev dans Cloud DNS.
Configurer Cloud NAT
Cloud NAT est un service géré, distribué et défini par logiciel, qui permet aux ressources dépourvues d'adresse IP externe d'établir des connexions sortantes vers Internet. Cloud NAT est recommandé à la place de la passerelle Internet par défaut pour mieux maîtriser le trafic sortant.
Créez un Cloud Router dans la région souhaitée.
gcloud compute routers create cloud-firewall-policy-demo-cloud-nat \ --network=$NETWORK_NAME \ --region=$REGIONCréez la passerelle 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
Configurer les règles de firewall policy
Les firewall policies se déclinent en trois variantes :
- Les firewall policies hiérarchiques permettent de créer et d'appliquer une firewall policy cohérente à l'échelle de votre organisation. Vous pouvez les attribuer à l'organisation entière ou à des dossiers individuels.
- Les firewall policies réseau globales permettent de mettre à jour en lot toutes les règles de pare-feu en les regroupant dans un même objet de politique, les règles s'appliquant alors à toutes les régions.
- Les firewall policies réseau régionales permettent de créer et d'appliquer une firewall policy cohérente sur tous les sous-réseaux d'une région de votre réseau VPC.
Créez une firewall policy réseau globale pour cette configuration.
gcloud compute network-firewall-policies create global-demo-firewall-policy \--globalCréez une nouvelle association entre la firewall policy et le réseau cible.
gcloud compute network-firewall-policies associations create \--firewall-policy=global-demo-firewall-policy \--network=$NETWORK_NAME --global-firewall-policy
Les règles de pare-feu par défaut font partie de la politique.

Association du réseau à la politique.
Toutes les ressources nécessaires sont en place pour appliquer le filtrage egress par FQDN à l'aide des objets FQDN dans les règles de firewall policy. Étape suivante : ajouter les règles requises à la firewall policy.
Aucune restriction n'est pour l'instant appliquée au trafic egress, et les instances du réseau disposent d'un accès Internet illimité.


Pour cette configuration, nous n'autoriserons le trafic sortant que vers www.example.com et l'adresse IP publique attribuée à private.googleapis.com, et bloquerons tout autre trafic Internet.
Créez une règle d'autorisation ingress par défaut. L'accès entrant est autorisé sans restriction ; ajustez la règle selon vos besoins.
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-policyCréez une règle de pare-feu pour autoriser la communication avec les plages d'IP privées. Veillez à ce que la règle couvre toute autre plage privée personnalisée utilisée dans votre environnement, afin de ne pas perturber la communication entre les instances.
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-policyCréez une règle de firewall policy pour autoriser les requêtes sortantes vers les IP publiques de private.googleapis.com ; ces IP ne sont routables qu'à l'intérieur 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-policyCréez une règle de firewall policy pour autoriser les requêtes sortantes vers 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-policyCréez une règle de refus egress par défaut. Assurez-vous d'avoir préalablement défini les règles d'autorisation pour les domaines et plages d'IP requis avant de créer la règle de refus.
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-policyListe consolidée des règles de la firewall policy.

L'application des règles peut prendre jusqu'à 30 secondes. Testez ensuite la connectivité réseau depuis l'instance GCE ou les pods GKE. Les requêtes sortantes ne sont autorisées que vers les domaines et plages d'IP définis dans les règles de la firewall policy.

Résultats des tests après application des règles de firewall policy.
Cet exemple montre comment exploiter les objets FQDN dans les règles de Firewall Policy pour le filtrage egress. Une méthode particulièrement efficace pour renforcer la sécurité réseau et maîtriser les points de sortie.
Pour en savoir plus sur la Firewall Policy, consultez la page du produit.