Architecture hub-spoke et DNS privé, conformité avancée, scale sets et haute disponibilité, déploiement par modèles et diagnostic.
Le hub centralise les services partagés (pare-feu, passerelle VPN/ExpressRoute, DNS, Bastion) ; les spokes hébergent les charges applicatives. L’appairage (peering) relie les VNet en privé via le backbone Microsoft, sans Internet, avec une faible latence. L’appairage est bilatéral : il faut créer les deux sens. L’option use-remote-gateways permet à un spoke d’utiliser la passerelle du hub.
# VNet hub + spoke puis appairage dans les deux sens
az network vnet create --resource-group RG-Net --name VNet-Hub --address-prefix 10.100.0.0/16 --subnet-name Subnet-Shared --subnet-prefix 10.100.1.0/24
az network vnet create --resource-group RG-Net --name VNet-Spoke --address-prefix 10.101.0.0/16 --subnet-name Subnet-App --subnet-prefix 10.101.1.0/24
az network vnet peering create --name Hub-To-Spoke --resource-group RG-Net --vnet-name VNet-Hub --remote-vnet VNet-Spoke --allow-vnet-access
az network vnet peering create --name Spoke-To-Hub --resource-group RG-Net --vnet-name VNet-Spoke --remote-vnet VNet-Hub --allow-vnet-access
az network vnet peering list --resource-group RG-Net --vnet-name VNet-Hub -o table
La zone DNS privée (ex. contoso.local) liée au VNet résout les noms en adresses privées pour toutes les ressources du réseau. Avec registration-enabled, les VM s’enregistrent automatiquement. Un enregistrement A associe chaque serveur à son adresse privée.
az network private-dns zone create --resource-group RG-Net --name contoso.local
az network private-dns link vnet create --resource-group RG-Net --zone-name contoso.local --name Link-Hub --virtual-network VNet-Hub --registration-enabled false
az network private-dns record-set a add-record --resource-group RG-Net --zone-name contoso.local --record-set-name srv-app --ipv4-address 10.101.1.4
| Composant | Rôle | Point de vigilance |
|---|---|---|
| Peering | Liaison privée inter-VNet | Créer les deux sens |
| GatewaySubnet | Accueille la passerelle | Nom exact, /27 minimum |
| Zone DNS privée | Résolution interne | Lier au VNet |
| 168.63.129.16 | DNS et santé de plateforme | Ne jamais bloquer |
Vérifiez l'appairage dans les deux sens avec az network vnet peering list, activez le transit de passerelle des deux côtés pour la communication entre spokes, puis contrôlez la liaison de la zone contoso.local au VNet et l'enregistrement A vers 10.101.1.4.
Une définition décrit la règle et son effet : audit (signale), deny (bloque), append (ajoute), deployIfNotExists (déploie si absent). L’affectation lie la définition à une étendue ; les exemptions excluent temporairement une ressource. Les initiatives regroupent plusieurs définitions (ex. socle de sécurité). La remédiation corrige les ressources non conformes via une identité managée.
# Affecter une initiative de sécurité à l'abonnement puis vérifier la conformité
az policy assignment create --name "socle-securite" --policy "ASC Default" --scope /subscriptions/xxx
az policy state summarize --scope /subscriptions/xxx -o table
Une stratégie d’accès conditionnel combine des conditions (utilisateurs, applications, plateformes, localisations, risque) et des contrôles (exiger la MFA, un appareil conforme, accepter les conditions). PIM transforme les rôles sensibles en accès éligibles : activation justifiée, limitée dans le temps, avec approbation et révision d’accès.
| Effet Policy | Comportement | Cas typique |
|---|---|---|
| Audit | Signale sans bloquer | Pilote avant durcissement |
| Deny | Bloque la création | Interdire les IP publiques |
| DeployIfNotExists | Déploie si absent | Installer l’agent de supervision |
Démarrez en effet audit pour mesurer l'impact avec az policy state summarize, basculez en deny pour interdire réellement, et convertissez Propriétaire en rôle éligible PIM avec activation justifiée, approbation et comptes d'urgence conservés hors stratégie.
Le scale set maintient N instances identiques derrière un équilibreur de charge et ajuste leur nombre selon des règles de mise à l’échelle (CPU moyen, longueur de file). La mise à niveau automatique du système d’exploitation remplace progressivement les instances par la dernière image, par vagues avec sondes d’intégrité. Les zones de disponibilité répartissent les instances sur des datacenters distincts.
# Scale set 2 instances avec mise à l'échelle automatique sur le CPU
az vmss create --resource-group RG-Compute --name ScaleSet-Web --image Ubuntu2204 --vm-sku Standard_B2s --instance-count 2 --load-balancer NatLB --upgrade-policy-mode Automatic
az monitor autoscale create --resource-group RG-Compute --resource ScaleSet-Web --resource-type Microsoft.Compute/virtualMachineScaleSets --min-count 2 --max-count 6 --count 2
az monitor autoscale rule create --resource-group RG-Compute --autoscale-name ScaleSet-Web --condition "Percentage CPU > 70 avg 5m" --scale out 2
La galerie Azure Compute Gallery versionne les images généralisées et les réplique entre régions pour des déploiements rapides et homogènes. Le cycle est : préparer la VM source, la généraliser (sysprep sous Windows, waagent -deprovision sous Linux), la désallouer, puis créer la version d’image.
# Galerie + définition + version d'image (diffusion multi-régions)
az sig create --resource-group RG-Compute --gallery-name Galerie-Entreprise
az sig image-definition create --resource-group RG-Compute --gallery-name Galerie-Entreprise --gallery-image-definition Image-Web --publisher Horizon5 --offer Web --sku 22_04 --os-type Linux
az sig image-version create --resource-group RG-Compute --gallery-name Galerie-Entreprise --gallery-image-definition Image-Web --gallery-image-version 1.0.0 --target-regions francecentral=1 westeurope=1 --managed-image /subscriptions/xxx/resourceGroups/RG-Compute/providers/Microsoft.Compute/images/Image-Web
| Mécanisme | Protège contre | Portée |
|---|---|---|
| Availability set | Panne rack + maintenance | Datacenter |
| Zone de disponibilité | Perte d’un datacenter | Région |
| Scale set + LB | Charge + panne d’instance | Région (zones) |
| Site Recovery | Perte d’une région | Multi-régions |
Un scale set zone-redondant de deux à six instances avec règle à 70 pour cent de CPU sur cinq minutes et sondes d'intégrité, déployé depuis une version de galerie répliquée : la charge déclenche le scale-out et la zone survivante absorbe la perte du datacenter.
Le déploiement par modèle décrit l’état désiré en JSON (ARM) ou Bicep (syntaxe simplifiée) : idempotence, paramétrage par environnement, historique et restauration. az deployment group create applique le modèle à un groupe de ressources ; le mode Incremental ajoute sans supprimer, le mode Complete supprime ce qui n’est plus déclaré.
# Déploiement d'un modèle avec paramètres, puis vérification
az deployment group create --resource-group RG-App --template-file azuredeploy.json --parameters appName=app-horizon5 sku=B1 --mode Incremental
az deployment group list --resource-group RG-App -o table
az deployment group show --resource-group RG-App --name azuredeploy --query properties.provisioningState
az vm run-command exécute un script via l’agent Azure, sans SSH ni RDP : idéal quand le NSG bloque l’accès ou que la VM semble figée. Azure Bastion fournit un rebond RDP/SSH via le portail en TLS, sans IP publique sur les VM. La capture réseau (Network Watcher) et les journaux de flux NSG expliquent les refus de trafic.
# Diagnostic : état de l'agent, disque, carte réseau
az vm run-command invoke --resource-group RG-Compute --name VM-Web01 --command-id RunShellScript --scripts "df -h"
az network nic show --resource-group RG-Net --name NIC-VM-Web01
az network watcher flow-log configure --resource-group RG-Net --nsg NSG-Web --storage-account sthorizon5app --enabled true --format JSON --log-version 2
| Symptôme | Vérifier en premier | Commande |
|---|---|---|
| VM injoignable | État d’alimentation + NSG | az vm show / règles NSG |
| Échec de déploiement | Détail de l’opération | az deployment group show |
| Accès refusé (RBAC) | Attributions + étendue | az role assignment list |
| Nom non résolu | Lien zone privée au VNet | private-dns link vnet show |
Vérifiez l'état d'alimentation avec az vm show, contournez SSH par az vm run-command invoke et Bastion, contrôlez les règles NSG et les journaux de flux, puis relisez l'échec avec az deployment group show avant de redéployer en Incremental.