Les journaux du service de filtrage d'URL vous permettent d'auditer, de vérifier et d'analyser le filtrage du trafic basé sur les URL dans votre réseau.
Lorsque le pare-feu Cloud nouvelle génération effectue un filtrage basé sur les URL sur le trafic pour lequel l'inspection de couche 7 est activée, il génère une entrée de journal pour chaque connexion, avec des informations détaillées sur la connexion. Cloud NGFW génère une entrée de journal lorsque la règle de pare-feu avec inspection de couche 7 est activée, que Cloud Logging soit activé ou non.
Pour afficher et examiner les journaux de filtrage d'URL, recherchez le journal networksecurity.googleapis.com/firewall_url_filter
dans l'explorateur de journaux.
Cette page décrit le format et la structure des journaux de filtrage d'URL que Cloud NGFW génère pour chaque connexion lorsqu'il autorise ou refuse le trafic.
Format du journal de filtrage des URL
Cloud NGFW crée une entrée d'enregistrement de journal dans Cloud Logging pour chaque connexion soumise au filtrage d'URL afin de surveiller le trafic vers ou depuis une instance de machine virtuelle (VM) dans une zone spécifique. Les enregistrements de journal sont inclus dans le champ de charge utile JSON d'un objet LogEntry.
Le format "multi-champs" de certains champs affiche plusieurs données dans un même champ. Par exemple, le champ connection
est au format Connection
, qui contient l'adresse IP et le port du serveur, l'adresse IP et le port du client, ainsi que le numéro de protocole, dans un seul champ.
Le tableau suivant décrit le format des champs du journal de filtrage d'URL.
Champ | Type | Description |
---|---|---|
connection
|
Connection
|
Quintuple décrivant les paramètres de connexion associés au trafic autorisé ou refusé en fonction des informations d'indication de nom de serveur (SNI) et de domaine. |
interceptInstance
|
InterceptInstance
|
Détails de l'instance de VM où le trafic est autorisé ou refusé en fonction des informations sur le domaine et le SNI. |
detectionTime
|
string
|
Heure (UTC) à laquelle le point de terminaison de pare-feu détecte une correspondance pour les informations de domaine et de SNI. |
uriMatched
|
string
|
Domaine pour lequel le point de terminaison de pare-feu a détecté une correspondance. |
interceptVpc
|
VpcDetails
|
Informations sur le réseau de cloud privé virtuel (VPC) associé à l'instance de VM dans laquelle le trafic est autorisé ou refusé en fonction des informations sur le domaine et le SNI. |
ruleIndex
|
integer
|
Index ou numéro de commande du filtre d'URL pour lequel le point de terminaison du pare-feu a détecté une correspondance. |
direction
|
string
|
Sens du trafic (CLIENT_TO_SERVER ou SERVER_TO_CLIENT ) pour lequel le point de terminaison de pare-feu a détecté une correspondance.
|
securityProfileGroupDetails
|
SecurityProfileGroupDetails
|
Détails du groupe de profils de sécurité appliqué au trafic intercepté. |
denyType
|
string
|
Type d'informations utilisé par le point de terminaison de pare-feu pour refuser un trafic.
|
action
|
string
|
Action (allow ou deny ) effectuée sur le trafic filtré en fonction des informations sur le domaine et le SNI. Le profil de sécurité définit cette action. Pour en savoir plus sur l'action configurée, consultez Profil de sécurité de filtrage des URL.
|
applicationLayerDetails
|
ApplicationLayerDetails
|
Informations détaillées sur le traitement de la couche Application. |
sessionLayerDetails
|
SessionLayerDetails
|
Détails liés au traitement de la couche session. |
Format du champ Connection
Le tableau suivant décrit le format du champ Connection
.
Champ | Type | Description |
---|---|---|
clientIp
|
string
|
Adresse IP du client. Si le client est une VM Compute Engine, clientIp est l'adresse IP interne principale ou une adresse dans une plage d'adresses IP d'alias de l'interface réseau de la VM. L'adresse IP externe n'est pas affichée. Les journaux affichent l'adresse IP de l'instance de VM telle qu'observée dans l'en-tête IP, de la même manière que le vidage TCP sur l'instance de VM.
|
clientPort
|
integer
|
Numéro de port client. |
serverIp
|
string
|
Adresse IP du serveur. Si le serveur est une VM Compute Engine, serverIp est l'adresse IP interne principale ou une adresse comprise dans une plage d'adresses IP d'alias de l'interface réseau de la VM. L'adresse IP externe ne s'affiche pas, même si elle a été utilisée pour établir la connexion.
|
serverPort
|
integer
|
Numéro de port du serveur. |
protocol
|
string
|
Protocole IP de la connexion. |
Format du champ InterceptInstance
Le tableau suivant décrit le format du champ InterceptInstance
.
Champ | Type | Description |
---|---|---|
zone
|
string
|
Nom de la zone où se trouve l'instance de VM associée au trafic intercepté. |
vm
|
string
|
Nom de l'instance de VM associée au trafic intercepté. |
projectId
|
string
|
Nom du projet Google Cloud associé au trafic intercepté. |
Format du champ VpcDetails
Le tableau suivant décrit le format du champ VpcDetails
.
Champ | Type | Description |
---|---|---|
vpc
|
string
|
Nom du réseau VPC associé au trafic intercepté. |
projectId
|
string
|
Nom du projet Google Cloud associé au réseau VPC. |
Format du champ SecurityProfileGroupDetails
Le tableau suivant décrit le format du champ SecurityProfileGroupDetails
.
Champ | Type | Description |
---|---|---|
securityProfileGroupId
|
string
|
Nom du groupe de profils de sécurité appliqué au trafic. |
organizationId
|
string
|
ID de l'organisation à laquelle appartient l'instance de VM. |
Format du champ ApplicationLayerDetails
Le tableau suivant décrit le format du champ ApplicationLayerDetails
.
Champ | Type | Description |
---|---|---|
protocol
|
string
|
Version du protocole utilisé par le point de terminaison du pare-feu au niveau de la couche application.
|
uri
|
string
|
Informations sur le domaine et le sous-domaine que le point de terminaison de pare-feu lit à partir du trafic. |
Format du champ SessionLayerDetails
Le tableau suivant décrit le format du champ SessionLayerDetails
.
Champ | Type | Description |
---|---|---|
sni
|
string
|
Indication du nom du serveur (SNI) que le point de terminaison de pare-feu lit à partir du trafic. |
protocolVersion
|
string
|
Version du protocole utilisée par le point de terminaison de pare-feu au niveau de la session.
|
Corrélation du journal de filtrage des URL avec un journal de pare-feu
Lorsqu'une règle de pare-feu évalue le trafic, Cloud NGFW enregistre une entrée de journalisation des règles de pare-feu. Cette entrée inclut des champs tels que l'adresse IP source, l'adresse IP de destination et l'heure d'inspection du trafic. Pour afficher ces journaux de règles de pare-feu, consultez Afficher les journaux.
Si la journalisation est activée pour une règle de stratégie de pare-feu avec inspection de couche 7, Cloud NGFW enregistre d'abord l'entrée de journalisation des règles de pare-feu pour le trafic évalué. Il envoie ensuite le trafic au point de terminaison de pare-feu pour l'inspection de couche 7.
Le point de terminaison du pare-feu analyse le trafic à l'aide de son domaine et de son SNI, et crée un journal de filtrage d'URL distinct pour la connexion. Ce journal de filtrage d'URL inclut des champs tels que le nom de domaine, la source du trafic et la destination du trafic.
Pour afficher les journaux de filtrage d'URL, recherchez le journal networksecurity.googleapis.com/firewall_url_filter
dans l'explorateur de journaux.
Vous pouvez comparer les champs du journal des règles de pare-feu et du journal du filtrage d'URL pour identifier la connexion qui a déclenché le filtrage d'URL et prendre les mesures appropriées pour résoudre le problème.
Par exemple, vous avez configuré une règle de stratégie de pare-feu avec les paramètres suivants :
- Adresse IP source :
192.0.2.0
- Port source :
47644
- Adresse IP de destination :
192.0.2.1
- Port de destination :
80
- Journalisation :
Enabled
Pour afficher les journaux de filtrage d'URL associés à cette règle, accédez à la page Explorateur de journaux. Dans le volet Requête, collez la requête suivante dans le champ de l'éditeur de requête.
resource.type="networksecurity.googleapis.com/FirewallEndpoint" jsonPayload.source_ip_address="192.0.2.0" jsonPayload.source_port="47644" jsonPayload.destination_ip_address="192.0.2.1" jsonPayload.destination_port="80"
La section Résultats de la requête affiche le journal de filtrage des URL suivant :
{ "insertId": "akxp8uf5f0fuv", "jsonPayload": { "connection": { "serverPort": 80, "clientPort": 47644, "protocol": "TCP", "clientIp": "192.0.2.0", "serverIp": "192.0.2.1" }, "interceptInstance": { "zone": "us-central1-c", "vm": "aied-test-dont-delete", "projectId": "project_001" }, "detectionTime": "2025-06-02T19:09:27.802711668Z", "uriMatched": "", "interceptVpc": { "projectId": "project_001", "vpc": "default" }, "ruleIndex": 0, "direction": "CLIENT_TO_SERVER", "@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.URLFilterLog", "securityProfileGroupDetails": { "securityProfileGroupId": "project_001/spg/my-spg-id", "organizationId": "organization_001" }, "denyType": "HOST", "action": "DENY", "applicationLayerDetails": { "protocol": "HTTP1", "uri": "server.fwp.com" }, "sessionLayerDetails": { "sni": "", "protocolVersion": "PROTOCOL_VERSION_UNSPECIFIED" } }, "resource": { "type": "networksecurity.googleapis.com/FirewallEndpoint", "labels": { "location": "us-central1-c", "resource_container": "organizations/organization_001", "id": "pg-ni-latencyayzl8peq" } }, "timestamp": "2025-06-02T19:09:35.452299517Z", "logName": "projects/project_001/logs/networksecurity.googleapis.com%2Ffirewall_url_filter", "receiveTimestamp": "2025-06-02T19:09:35.452299517Z" }
De même, pour afficher les journaux de pare-feu associés à cette règle, accédez à la page Explorateur de journaux. Dans le volet Requête, collez la requête suivante dans le champ de l'éditeur de requête.
jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP" jsonPayload.connection.src_ip="192.0.2.0" jsonPayload.connection.src_port="47644" jsonPayload.connection.dest_ip="192.0.2.1" jsonPayload.connection.dest_port="80"
La section Résultats de la requête affiche le journal de pare-feu suivant :
{ insertId: "qn82vdg109q3r9" jsonPayload: { connection: { } dest_ip: "192.0.2.1" dest_port: 80 protocol: 6 src_ip: "192.0.2.0" src_port: 47644 disposition: "INTERCEPTED" ►instance: {4} ▸ remote_instance: {4} ▸ remote_vpc: {3} rule_details: { action: "APPLY_SECURITY_PROFILE_GROUP" apply_security_profile_fallback_action: "UNSPECIFIED" direction: "INGRESS" ▸ ip_port_info: [1] ▼ priority: 6000 reference: "network: fwplus-vpc/firewallPolicy: fwplus-fwpolicy" source_range: [ 1 0: "192.0.2.0/24" target_secure_tag: [ 0: "tagValues/281479199099651" ] } vpc: { project_id: "project_001" subnetwork_name: "fwplus-us-central1-subnet" vpc_name: "fwplus-vpc" } } logName: "projects/project_001/logs/compute.googleapis.com%2Ffirewall", receiveTimestamp: "2023-11-28T19:08:46.749244092Z" resource: {2} timestamp: "2023-11-28T19:08:40.207465099Z" }
Les requêtes de journaux de filtrage d'URL et de journaux de pare-feu vous permettent de visualiser la corrélation entre eux. Le tableau suivant mappe les champs du journal du pare-feu avec les champs correspondants du journal du filtrage d'URL.
Champ du journal de pare-feu | Champ de journal de filtrage des URL | Description |
---|---|---|
src_ip
|
clientIp
|
L'adresse IP source du journal du pare-feu est mise en corrélation avec l'adresse IP du client dans le journal de filtrage des URL pour identifier l'origine du trafic filtré. |
src_port
|
clientPort
|
Le port source du journal du pare-feu est mis en corrélation avec le port client du journal de filtrage d'URL pour identifier le port source utilisé par le trafic filtré. |
dest_ip
|
serverIp
|
L'adresse IP de destination dans le journal du pare-feu est corrélée à l'adresse IP du serveur dans le journal de filtrage des URL pour identifier la cible du trafic filtré. |
dest_port
|
serverPort
|
Le port de destination du journal du pare-feu est corrélé au port du serveur dans le journal de filtrage des URL pour identifier le port de destination utilisé par le trafic filtré. |