Introduction
Azure Virtual Network (VNet) constitue le pilier réseau de toute architecture cloud Azure. Au niveau avancé, il ne s'agit plus simplement de créer un réseau, mais d'orchestrer peering, contrôles de sécurité granulaires, endpoints privés et routage personnalisé pour des environnements multi-régions et hybrides. Ce tutoriel vous guide pas à pas dans la construction d'une infrastructure réseau robuste, sécurisée et observable, en utilisant Terraform pour l'infrastructure as code et PowerShell pour les opérations avancées.
Prérequis
- Compte Azure avec droits Owner ou Network Contributor
- Terraform 1.9+ et Azure CLI 2.60+
- Connaissances solides en réseaux IP, NSG et Private Link
- PowerShell 7+ avec module Az.Network
- Accès à deux régions Azure (ex: France Central et West Europe)
Initialisation du projet Terraform
terraform {
required_version = ">= 1.9"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name = "rg-vnet-advanced-2026"
location = "France Central"
}Ce bloc initialise le provider Azure et crée le Resource Group de base. Il garantit la reproductibilité et la gestion d'état Terraform pour l'ensemble du VNet avancé.
Création du VNet principal et subnets
resource "azurerm_virtual_network" "main" {
name = "vnet-advanced-2026"
address_space = ["10.0.0.0/16"]
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
subnet {
name = "subnet-app"
address_prefixes = ["10.0.1.0/24"]
}
subnet {
name = "subnet-db"
address_prefixes = ["10.0.2.0/24"]
}
}Définit le VNet avec deux subnets. Les subnets seront ensuite sécurisés par des NSG et utilisés pour le peering et les Private Endpoints.
Configuration des Network Security Groups
resource "azurerm_network_security_group" "nsg_app" {
name = "nsg-app"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
security_rule {
name = "AllowHttps"
priority = 100
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "443"
source_address_prefix = "10.0.0.0/8"
destination_address_prefix = "*"
}
}NSG avancé avec règle stricte limitant le trafic HTTPS aux plages internes. Toujours associer le NSG au subnet via azurerm_subnet_network_security_group_association.
Mise en place du VNet Peering
resource "azurerm_virtual_network_peering" "peer_fr_we" {
name = "peer-france-to-we"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.main.name
remote_virtual_network_id = azurerm_virtual_network.secondary.id
allow_virtual_network_access = true
allow_forwarded_traffic = true
}Active le peering entre deux VNets dans des régions différentes avec le transit de trafic activé pour supporter les architectures hub-and-spoke.
Déploiement d'un Private Endpoint
resource "azurerm_private_endpoint" "pe_storage" {
name = "pe-storage-2026"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
subnet_id = azurerm_virtual_network.main.subnet.*.id[0]
private_service_connection {
name = "psc-storage"
private_connection_resource_id = azurerm_storage_account.example.id
is_manual_connection = false
subresource_names = ["blob"]
}
}Crée un Private Endpoint pour accéder à un compte de stockage sans exposition publique, essentiel pour la conformité et la sécurité des données.
Bonnes pratiques
- Utilisez des plages d'adressage non chevauchantes pour tous les VNets
- Activez le chiffrement du trafic entre VNets via Private Link
- Centralisez les NSG dans un hub et utilisez Azure Firewall pour le filtrage avancé
- Documentez les flux réseau avec Azure Network Watcher
- Activez les diagnostics et logs vers Log Analytics
Erreurs courantes à éviter
- Oublier d'activer allow_forwarded_traffic sur le peering
- Associer un NSG directement à une NIC au lieu du subnet
- Utiliser des adresses IP publiques sur des ressources censées être privées
- Négliger les règles de routage personnalisé (UDR) pour le trafic sortant
Pour aller plus loin
Approfondissez vos compétences Azure avec nos formations Learni sur l'architecture réseau cloud et la sécurité avancée.