Sur Azure, un flux entrant traverse deux NSG : celui du sous-réseau, puis celui de la carte réseau. Il doit être autorisé par les deux. Dans chaque NSG, les règles sont lues par priorité croissante et la première qui correspond décide.
Le script d'audit a ajouté Deny-Internet-Audit (priorité 100, source Internet, tous ports) dans
nsg-snet-web. Elle passe avant Allow-HTTPS-Internet (200) : le flux est jeté avant même d'atteindre
la carte réseau. D'où le timeout (un NSG ne renvoie pas de refus, il ignore le paquet).
Les autres pistes sont fausses : le NSG de la carte autorise bien 443, run-command montre nginx actif
et en écoute, et le DNS pointe toujours vers l'IP statique 20.199.48.73.
Incident résolu
Analyse et correction
Correction : restreindre la règle fautive à ce que l'audit voulait vraiment bloquer (l'administration),
az network nsg rule update -g rg-zitouna-prod --nsg-name nsg-snet-web -n Deny-Internet-Audit --destination-port-ranges 22 3389,
ou la supprimer avec az network nsg rule delete.
Vérification : az network watcher test-ip-flow … renvoie Allow (règle Allow-HTTPS-Internet),
puis curl -I https://api.zitouna-express.ma/health répond 200.
Pour que cela ne recommence pas :
- faire passer les scripts d'audit en mode rapport (Azure Policy en effet
Audit) avant tout modeDeny; - décrire les NSG en infrastructure as code (Bicep/Terraform) relue en revue ;
- lancer
test-ip-flowsur les flux critiques après chaque changement réseau ; - une alerte Azure Monitor sur
securityRules/writedans les groupes de production.