Snippets

Snippet KQL : qualifier un refus Azure Firewall sur sortie privée

Une requête courte pour séparer refus applicatif, refus réseau et résolution DNS proxy avant d'ajouter une règle trop large.

18 juin 2026 azurefirewallegressdnskqllogsnetworkingrunbookmonitoring

Quand une charge privée ne sort plus vers une dépendance, commence par qualifier la couche de refus dans Azure Firewall avant d’élargir les règles.

kusto azure-firewall-private-egress-denials.kql
let Window = 2h;
let SourcePrefix = "10.42.";
let Target = "api.partner.example.com";
AzureDiagnostics
| where TimeGenerated > ago(Window)
| where ResourceProvider == "MICROSOFT.NETWORK"
| where Category in ("AzureFirewallApplicationRule", "AzureFirewallNetworkRule", "AzureFirewallDnsProxy")
| where msg_s has Target or SourceIP_s startswith SourcePrefix or Fqdn_s has Target
| project TimeGenerated,
        Category,
        SourceIP_s,
        SourcePort_s,
        Fqdn_s,
        DestinationIp_s,
        DestinationPort_s,
        Protocol_s,
        Action_s,
        RuleCollection_s,
        Rule_s,
        msg_s
| order by TimeGenerated desc

Lecture rapide : un refus DNS proxy renvoie vers suffixe, resolver ou cible DNS ; un refus ApplicationRule se traite par FQDN et protocole ; un refus NetworkRule doit être justifié par IP, port et route source, pas par une ouverture générique.