WIKI
AZ-104 Administrator

10 — Load Balancing & Edge Security

16 min de lecture Mis à jour le 23 juin 2026
Sur cette page

Distribuer le trafic + sécuriser les accès au périmètre Azure :

  • Load Balancing : LB (L4), App Gateway (L7 régional), Front Door (L7 global), Traffic Manager (DNS global)
  • Edge Security : Azure Firewall (filtre L3-L7), Azure Bastion (RDP/SSH sans Public IP)

A. Décider : quel service de load balancing ?#

Azure LB App Gateway Front Door Traffic Manager
Layer L4 (TCP/UDP) L7 (HTTP/S) L7 (HTTP/S) DNS (L7 logique)
Scope Régional Régional Global Global
WAF ❌ ✅ (v2) ✅ (Premium) ❌
SSL termination ❌ ✅ ✅ ❌
URL path routing ❌ ✅ ✅ ❌
CDN / caching ❌ ❌ ✅ ❌
Failover speed Instant (LB) Instant Instant (anycast) Lent (TTL DNS)

Règle d'or AZ-104 : multi-region + L7 + WAF + CDN → Front Door. Single-region L7 → App Gateway. Trafic non-HTTP (DB, IoT, gaming) → LB. Active-passive simple cross-region → Traffic Manager.


B. Azure Load Balancer#

L4 (TCP/UDP), distribue le trafic vers un backend pool (VMs, VMSS, NICs). Très haute perf, faible latence.

Types#

Public LB Internal LB (ILB)
Frontend Public IP Private IP (dans un VNet)
Use case Exposer un service à internet Load balance interne (tier app vers DB, etc.)

SKUs#

SKU Statut Note
Standard Actif (recommandé) AZ support, HA Ports, default deny outbound, secured by NSG
Basic 🚨 Retiré 30 sept 2025 Plus de création possible. Migrer vers Standard

Le SKU du LB doit matcher celui de la Public IP + des VMs en backend.

Backend pool — règles à connaître (piège exam)#

Pour attacher une VM au backend pool d'un Standard LB :

  • ✅ La VM peut être en état Stopped (Deallocated ou Running)
  • ✅ La VM peut ne pas avoir de Public IP (le LB sert de frontend)
  • ⚠️ Si la VM a une Public IP, son SKU doit matcher celui du LB (Public IP Standard ↔ LB Standard, Basic ↔ Basic)
  • → Pour résoudre un mismatch : upgrade la Public IP en Standard, OU retire la Public IP de la VM (la VM peut être attachée sans Public IP)

Composants#

Composant Rôle
Frontend IP IP publique ou privée d'entrée (1+ par LB)
Backend pool NICs ou IPs de VMs/VMSS qui reçoivent le trafic
Health probe TCP / HTTP(S) → tester la santé des backends, sortir les unhealthy
Load balancing rule Mapping Frontend:Port → Backend:Port (avec session persistence, idle timeout)
Inbound NAT rule Forwarding Frontend:Port → 1 backend spécifique:Port (ex SSH/RDP par instance)
Outbound rule Définir le SNAT outbound des backends

Outbound (piège classique)#

  • Standard LB bloque outbound par défaut → besoin d'outbound rule OU NAT Gateway sur le subnet.
  • 🚨 Default outbound access des nouveaux VNets retiré après 31 mars 2026 → MS pousse NAT Gateway comme méthode standard.

Algorithmes de distribution#

  • 5-tuple hash (default) : src IP + src port + dst IP + dst port + protocol → distribue.
  • Source IP affinity (2-tuple ou 3-tuple) : sticky session par IP source.
  • HA Ports (Standard only) : load-balance tous les ports simultanément (utilisé pour NVA actives-actives).

Distribution mode (session persistence)#

  • None : default
  • Client IP : 2-tuple (src IP + dst IP)
  • Client IP + Protocol : 3-tuple

C. Application Gateway#

L7 (HTTP/HTTPS/HTTP/2/WebSockets) régional, dans ton VNet. Routing avancé + WAF.

SKUs#

SKU Statut Note
Standard / WAF v1 🚨 Retraite 28 avril 2026 Migrer vers v2
Standard v2 Recommandé Auto-scale, AZ, header rewrite, faster provisioning
WAF v2 Recommandé sécu Standard v2 + WAF (OWASP Core Rule Set, custom rules, bot manager)

Architecture#

Client → Frontend IP (Public/Private)
          ↓
        Listener (HTTP/HTTPS, port, host header) — termine SSL ici
          ↓
        Routing rule (Basic ou Path-based)
          ↓
        Backend HTTP setting (port, protocol, timeout, probe)
          ↓
        Backend pool (VMs, VMSS, App Service, IPs, FQDNs)

Composants clés#

  • Listener : ce qu'écoute l'AGW (port, protocol, host header pour multi-site).
  • Backend pool : VMs / VMSS / App Service / IPs / FQDN.
  • HTTP settings : comment l'AGW parle au backend (port, probe, cookie affinity, override host header).
  • Rules :
    • Basic : 1 listener → 1 backend pool
    • Path-based : /api/* → pool A, /images/* → pool B
  • Probes : custom (path, intervalle, threshold) — checker la santé.
  • Rewrite rules : modifier headers/URL en flight.

Features importantes#

  • SSL termination : décharge SSL côté AGW, trafic HTTP en interne (ou re-encrypt SSL en backend).
  • End-to-end SSL : SSL re-chiffré vers le backend.
  • WebSocket / HTTP/2 : supportés.
  • Multi-site hosting : un seul AGW pour app1.com, app2.com (via host header).
  • Autoscaling v2 : min/max instances, instances facturées par capacity unit (CU).
  • Subnet dédié dans le VNet (réservé à l'AGW, /27 minimum).
  • AGIC (App Gateway Ingress Controller) pour AKS.

💡 App Gateway mode interne (ILB-like L7) : App Gateway peut avoir un Frontend IP privé (au lieu de public) → fonctionne comme un ILB L7 pour des apps LOB accessibles uniquement depuis VNet, VNets peerés, ou on-prem (via VPN/ER).

Use case typique : LB du trafic on-prem multi-sites (S2S VPN) vers backend VMSS Azure avec routing L7 + SSL termination, sans exposer publiquement. Pour ce scénario → App Gateway interne OU Internal LB (L7 vs L4 selon besoin).

WAF v2#

  • OWASP Core Rule Set (3.2 / 3.1 / 3.0) — règles préconfigurées contre injection SQL, XSS, etc.
  • Custom rules : whitelist IP, geo-block, rate limit (preview).
  • Bot Manager : block bad bots.
  • Modes : Detection (log only) ou Prevention (block).

D. Azure Front Door#

L7 global (anycast, edge MS dans 100+ POPs). Fait : load balancing global + CDN + WAF global + SSL offload.

SKUs#

SKU Description
Standard LB global + CDN + custom domain + SSL
Premium Standard + WAF Premium + Private Link (vers backend privés) + Bot Manager + Microsoft-managed rules
Classic Legacy, en sunset

Use cases#

  • App multi-region : route les utilisateurs vers le backend régional le plus proche.
  • Static + dynamic content acceleration.
  • Failover global (region down → bascule vers la suivante).
  • WAF global au plus proche de l'attaquant (avant que la requête atteigne le backend).

Routing methods#

Méthode Description
Latency Backend le plus rapide (default)
Priority Active-passive (backup pool)
Weighted A/B testing, blue/green
Session affinity Stick cookie sur backend

Architecture#

  • Endpoint : URL globale <name>.azurefd.net (ou custom domain).
  • Origin group : pool de backends (App Service, VM, Storage static site, AGW, IP arbitraire).
  • Origin : un backend individuel (avec health probe, priority, weight).
  • Route : matche un pattern (/api/*) → origin group.
  • Backend privé (App Service avec PE, Storage avec PE, ILB) accessible depuis Front Door sans l'exposer publiquement.
  • Approval workflow.

Pour AZ-104 : retenir Front Door = global + WAF + CDN. Souvent utilisé devant App Gateway pour combo edge + régional.


E. Traffic Manager#

DNS-based load balancer global. Renvoie l'IP du backend le plus approprié à chaque résolution DNS.

Routing methods#

Méthode Use case
Priority Failover : 1 primary, N backups
Weighted Distribution % entre endpoints
Performance Latence la plus faible (region la plus proche)
Geographic Géo-routing strict (ex: France → backend FR uniquement)
MultiValue Renvoie plusieurs IPs (client choisit)
Subnet Mapping subnets → endpoints

Limites par rapport à Front Door#

  • Failover lent (dépend du TTL DNS, default 60s+).
  • Pas de SSL termination, pas de WAF, pas de CDN.
  • Le client va directement au backend (pas de proxy au milieu).

Quand préférer Traffic Manager à Front Door#

  • Trafic non-HTTP (TCP/UDP).
  • Backend hors Azure (sites on-prem, autres clouds).
  • Geographic routing strict (compliance).

F. Azure Firewall#

Pare-feu stateful L3-L7 managé, avec haute dispo intégrée. Souvent utilisé en hub dans une architecture hub-and-spoke pour filtrer le trafic egress + east-west.

SKUs#

SKU Use case Features
Basic SMB / dev L3-L7, throughput limité (~250 Mbps), pas de IDPS
Standard Prod générale L3-L7, threat intelligence, FQDN tags, DNAT/SNAT
Premium Sécu avancée Standard + TLS Inspection, IDPS, URL filtering, web categories

Composants#

  • Firewall policy (recommandé) : ressource séparée qui contient les règles, héritable (parent → enfant).
  • Rule collections dans la policy :
    • DNAT rules : forwarding inbound (Public IP firewall → IP privée backend)
    • Network rules : L3-L4 (IP / Port / Protocol)
    • Application rules : L7 (FQDN, FQDN tags, web categories en Premium)
  • Priority dans collections : 100-65000.
  • Default action : Deny.

FQDN Tags (Standard+)#

Préconfigurés MS (similaire aux Service Tags NSG mais L7) :

  • WindowsUpdate, WindowsDiagnostics, MicrosoftActiveProtectionService, AppServiceEnvironment, AzureKubernetesService, etc.

Threat Intelligence (Standard+)#

  • Block / alert sur des IPs/domains malveillants connus (feed MS).
  • Modes : Off, Alert only, Alert and deny.

TLS Inspection (Premium uniquement)#

  • Décrypte HTTPS sortant, inspecte, re-chiffre.
  • Nécessite : KV avec un certificat root + Managed Identity du firewall.

Subnet#

  • Dédié : AzureFirewallSubnet (/26 minimum, pas de NSG dessus).
  • Pour Forced Tunneling (Standard+) : AzureFirewallManagementSubnet additionnel.

Vs NSG#

NSG Azure Firewall
Layer L3-L4 L3-L7
Scope NIC ou Subnet Subnet (via UDR)
Stateful ✅ ✅
FQDN filtering ❌ ✅
TLS Inspection ❌ ✅ (Premium)
Logging centralisé Pas natif Oui (Log Analytics)
Coût Gratuit $$$

Combo classique : NSG sur subnets pour le micro-segmentation interne + Azure Firewall en hub pour le trafic nord-sud.


G. Azure Bastion#

RDP / SSH vers tes VMs Azure depuis le portail web, sans Public IP sur les VMs et sans VPN. Sécurise drastiquement l'accès admin.

Architecture#

  • Service déployé dans un VNet (subnet dédié AzureBastionSubnet, /26 minimum).
  • Tu te connectes via le portail Azure → Bastion ouvre une session SSL/HTML5 vers la VM en privé.
  • VM accessible via Bastion sur tous les VNets peerés.

SKUs#

SKU Instances Capacité par instance Features clés
Developer Partagé MS 1 conn max Gratuit, partagé, pas de scaling. Dev/test only
Basic 2 instances fixes ~20 RDP / ~40 SSH RDP/SSH via portail uniquement, pas de host scaling
Standard 2 à 50 (host scaling) ~20 RDP / ~40 SSH par instance Basic + native client (az network bastion), shareable links, IP-based, custom ports, file transfer SCP/RDP
Premium 2-50 Idem Standard Standard + session recording (compliance), private-only deployment

🚨 Piège exam : pour accommoder >40 users RDP simultanés il faut :

  1. Upgrade SKU Basic → Standard (étape first ; sans ça pas de scaling possible)
  2. Increase instance count (ex 5 instances × 20 RDP = 100 simultanés)

⚠️ Upgrade Basic → Standard est IRRÉVERSIBLE (pas de downgrade possible). Réfléchir avant.

Calcul rapide : ~20 RDP ou ~40 SSH par instance → si 90 users RDP → besoin 5 instances minimum (5×20=100 RDP).

Sécurité#

  • VMs cibles n'ont pas besoin de Public IP → réduction surface d'attaque.
  • NSG sur la VM bloque RDP/SSH depuis Internet → seul Bastion (depuis AzureBastionSubnet) y accède.
  • Auth = Entra ID (avec RBAC) ou local user de la VM.

Subnet#

  • AzureBastionSubnet (nom obligatoire, /26 minimum).
  • Pas de NSG strict requis (Bastion gère sa propre sécurité), mais possible avec règles spécifiques MS.

🏢 Scénarios d'entreprise (CAF/WAF)#

Scenario 1 : E-commerce mono-région avec checkout sécurisé#

Contexte business : un retailer FR (~2M visites/mois) a un site Magento sur VMSS, paiement via prestataire externe. Il faut un pare-feu web (le paiement est la cible n°1), gérer le SSL au même endroit, et envoyer /checkout/* vers des VM dédiées plus puissantes. Choix architectural : App Gateway WAF v2 en frontal + un Internal LB (Standard) entre l'app et les bases de lecture. Pas de Front Door : une seule région, pas besoin de CDN. Architecture / pattern :

  • AGW WAF v2 public en mode Prevention (OWASP CRS 3.2). Il route /checkout/* vers le pool premium, le reste vers le pool standard.
  • SSL ré-encrypté jusqu'au backend (bout en bout, exigé par PCI DSS).
  • Sonde de santé sur /health (pas /, qui répond 200 même si la base est tombée).
  • Derrière, un ILB Standard répartit les lectures vers les réplicas SQL (port 1433). Trade-offs assumés :
  • Gain : WAF L7 + path routing + SSL bout en bout sur un seul point, conforme PCI DSS.
  • Perte : AGW WAF v2 + subnet dédié plus coûteux et complexe qu'un simple LB pour une app mono-région. Pièges à éviter :
  • AGW doit avoir son propre subnet vide, /27 minimum, sans NSG qui bloque les ports de management Microsoft (65200-65535 en v2).
  • Oublier de passer le WAF en Prevention : en Detection il ne fait que logger, il ne bloque rien.
  • AGW v2 exige une IP publique Standard (Basic refusée).

📐 Réf. CAF — Load balancing decision tree + WAF (App delivery) : App Gateway WAF_v2 (L7 régional + path routing + SSL e2e) est le choix CAF pour une app web régionale avec WAF. Lien

Scenario 2 : Gaming studio — backend matchmaking UDP#

Contexte business : un studio de jeu mobile a ses serveurs de matchmaking en UDP (ports 30000-30100), 50K joueurs en même temps. Il faut un maximum de débit et une latence très faible. Pas de HTTP ni de SSL côté LB. Choix architectural : un Public Standard LB (niveau 4, TCP/UDP, gère des millions de flux), HA Ports si un pare-feu maison tourne en actif-actif, et une règle outbound explicite + NAT Gateway pour gérer le gros volume de SNAT. Architecture / pattern :

  • LB Standard avec une IP publique Standard en frontal et un pool VMSS de 50+ serveurs de jeu.
  • Règle UDP avec affinité par IP source (2-tuple) : un joueur reste sur le même serveur toute sa partie.
  • Sonde de santé en TCP sur le port 30099 (l'UDP n'a pas de sonde native) : l'app expose ce point TCP exprès.
  • NAT Gateway sur le subnet pour la télémétrie sortante (vers Application Insights, etc.). Trade-offs assumés :
  • Gain : débit L4 massif à faible latence pour l'UDP, SNAT maîtrisé via NAT Gateway.
  • Perte : pas de routing L7 ni de WAF au niveau LB, et la sonde UDP doit être simulée en TCP. Pièges à éviter :
  • Le Basic LB est retiré depuis le 30 sept 2025 : un vieux script qui ne précise pas le SKU prend Basic par défaut, à migrer avant.
  • Le Standard LB bloque le trafic sortant par défaut : sans règle outbound ni NAT Gateway, les VMs ne peuvent même pas résoudre un DNS (panne silencieuse).
  • Front Door est inutile ici (pas d'UDP). Pour du DR cross-région : Traffic Manager (basé DNS, compatible UDP car il route l'IP de destination).

📐 Réf. CAF — Load balancing decision (non-HTTP) : pour du TCP/UDP haut débit, le Standard LB (L4) est le choix CAF ; pour le global non-HTTP, Traffic Manager (DNS) ou Cross-Region LB (proxy L4). Lien

Scenario 3 : Application LOB interne (banking, accès on-prem uniquement)#

Contexte business : une banque régionale a une app intranet (RH, paie). Elle doit être joignable uniquement depuis le réseau de l'entreprise via ExpressRoute. Il faut du routing niveau 7 + WAF (conformité), sans aucune exposition sur Internet. Choix architectural : un App Gateway interne (IP frontale privée) + Azure Bastion Standard pour administrer les VMs backend (les VMs n'ont jamais d'IP publique). Architecture / pattern :

  • AGW v2 WAF avec une IP frontale privée dans son subnet dédié (/27).
  • Via ExpressRoute, les postes on-prem atteignent cette IP privée.
  • WAF en Prevention même en interne : un attaquant déjà dans le réseau passe aussi par là (défense en profondeur).
  • Bastion Standard (2 à 5 instances) dans AzureBastionSubnet /26 pour administrer les VMs sans IP publique, avec audit Entra ID. Trade-offs assumés :
  • Gain : zéro exposition Internet (frontend privé + VMs sans IP publique), conforme à l'audit d'isolation.
  • Perte : accès limité au réseau d'entreprise (ExpressRoute requis) et Bastion Standard en coût fixe. Pièges à éviter :
  • Penser qu'« interne = pas besoin de WAF » : un poste compromis sur le réseau contourne tout le reste.
  • Le passage Bastion Basic → Standard est irréversible : prendre Standard dès le départ si plus de 40 sessions RDP simultanées sont prévues.
  • AGW interne + DNS : il faut une Private DNS Zone pour résoudre app.corp.local vers l'IP privée de l'AGW, sinon les clients on-prem ne le trouvent pas.

📐 Réf. WAF — Security (private app delivery) + Bastion : App Gateway interne (frontend privé) + WAF + Azure Bastion (zéro IP publique sur les VMs) appliquent la défense en profondeur Well-Architected pour les apps internes. Lien


DEMO — chemins portail#

Standard Load Balancer#

  1. Load balancers > Create > SKU: Standard, Type: Public/Internal
  2. Frontend IP : nouvelle Public IP Standard ou IP privée
  3. Backend pool : add VMs / VMSS
  4. Health probe : TCP/HTTP path
  5. LB rule : frontend port → backend port (avec persistence, idle timeout)
  6. Outbound : créer outbound rule OU attacher NAT GW au subnet backend

Inbound NAT rule (RDP/SSH par VM via LB)#

  1. LB > Inbound NAT rules > Add
  2. Service Custom, frontend port unique (ex 50001), target VM, target port 3389
  3. Tester mstsc <lb-ip>:50001

Application Gateway v2#

  1. Application Gateways > Create > Tier: Standard v2 ou WAF v2
  2. Onglet Configuration :
    • Frontend IP (Public et/ou Private)
    • Backend pool : VMs/VMSS/App Service/IP
    • Routing rule : Listener (HTTP/HTTPS) → Backend pool + HTTP settings
    • HTTP settings : port backend, probe, cookie affinity
  3. Subnet dédié dans le VNet (/27 minimum, vide)
  4. Pour WAF v2 : WAF policy — choisir mode Detection ou Prevention, OWASP CRS

App Gateway — path-based routing#

  1. Créer plusieurs backend pools (api-pool, images-pool)
  2. Listeners > Add : 1 listener HTTPS port 443
  3. Rules > Add path-based rule :
    • /api/* → api-pool
    • /images/* → images-pool
    • default → main-pool

Front Door Standard/Premium#

  1. Front Door and CDN profiles > Create > Custom create
  2. Endpoint : <name>.azurefd.net
  3. Origin group : add origins (ex App Service, AGW, Storage static site)
  4. Routes : pattern /* → origin group, caching on/off, compression
  5. Custom domain : ajouter le domaine + valider via TXT record + bind cert
  6. WAF Premium : créer une WAF policy Front Door + attacher à l'endpoint

Traffic Manager#

  1. Traffic Manager profiles > Create
  2. Choisir routing method (Priority, Weighted, Performance, Geographic, etc.)
  3. Add endpoints : Azure (App Service, Public IP, Cloud Service) ou External (FQDN)
  4. Health monitoring : protocol, port, path, interval
  5. Tester avec nslookup <profile>.trafficmanager.net

Azure Firewall#

  1. Subnet : créer AzureFirewallSubnet (/26) dans le VNet hub
  2. Firewalls > Create > SKU: Basic/Standard/Premium
  3. Choisir Firewall Policy (créer une nouvelle)
  4. Rule collections dans la policy :
    • DNAT : Public IP:8080 → 10.1.0.4:80
    • Network : 10.0.0.0/8 → Internet ports 443 Allow
    • Application : *.windowsupdate.com Allow ou FQDN tag WindowsUpdate
  5. UDR sur les subnets spokes : 0.0.0.0/0 → Next hop = Virtual Appliance, IP du firewall

Azure Firewall Premium — TLS Inspection#

  1. Créer un Key Vault avec certificat root + Managed Identity
  2. Firewall Policy > TLS inspection > Enable → choisir le KV + cert
  3. Ajouter une Application Rule Collection avec TLS inspection enabled

Azure Bastion#

  1. Subnet : créer AzureBastionSubnet (/26 exact name, /26 minimum) dans le VNet
  2. Bastions > Create > SKU: Developer/Basic/Standard/Premium
  3. Public IP Standard (auto)
  4. Pour Standard+ : choisir scale units (2-50), file transfer
  5. Connexion : VM > Connect > Bastion → user/password ou SSH key (ou Entra ID si Standard+)

Bastion + Entra ID auth (Standard+)#

  1. VM Linux : installer Entra ID login extension
  2. RBAC : assigner Virtual Machine Administrator Login ou Virtual Machine User Login
  3. Connect via Bastion → choisir Entra ID
Sur cette page
Échap

Tape au moins 2 lettres. Plusieurs mots : tous doivent apparaître.