Module 3 : Réseau Azure
Virtual Network (VNet)
Le VNet est le bloc de base du réseau Azure :
+----------------------------------------------------------+
| ARCHITECTURE RESEAU |
+----------------------------------------------------------+
| |
| VNet: vnet-folab-dev (10.0.0.0/16) |
| | |
| +-- Subnet: snet-data (10.0.1.0/24) |
| | +-- Synapse Private Endpoints |
| | +-- Storage Private Endpoints |
| | |
| +-- Subnet: snet-app (10.0.2.0/24) |
| | +-- VMs, App Services |
| | |
| +-- Subnet: snet-mgmt (10.0.3.0/24) |
| +-- Bastion, Jump boxes |
| |
+----------------------------------------------------------+
Créer un VNet (PowerShell)
# Créer un VNet avec plusieurs subnets
az network vnet create --name vnet-folab-dev --resource-group rg-folab-dev --location westeurope --address-prefix 10.0.0.0/16 --subnet-name snet-data --subnet-prefix 10.0.1.0/24
# Ajouter des subnets supplémentaires
az network vnet subnet create --name snet-app --vnet-name vnet-folab-dev --resource-group rg-folab-dev --address-prefix 10.0.2.0/24
az network vnet subnet create --name snet-mgmt --vnet-name vnet-folab-dev --resource-group rg-folab-dev --address-prefix 10.0.3.0/24
Version Bash (cliquez pour afficher)
# Créer un VNet avec plusieurs subnets
az network vnet create \
--name vnet-folab-dev \
--resource-group rg-folab-dev \
--location westeurope \
--address-prefix 10.0.0.0/16 \
--subnet-name snet-data \
--subnet-prefix 10.0.1.0/24
# Ajouter des subnets supplémentaires
az network vnet subnet create \
--name snet-app \
--vnet-name vnet-folab-dev \
--resource-group rg-folab-dev \
--address-prefix 10.0.2.0/24
az network vnet subnet create \
--name snet-mgmt \
--vnet-name vnet-folab-dev \
--resource-group rg-folab-dev \
--address-prefix 10.0.3.0/24
Network Security Groups (NSG)
NSG = Firewall au niveau subnet/NIC
- Règles Inbound et Outbound
- Priorité (100-4096, plus bas = plus prioritaire)
- Allow ou Deny
# Créer un NSG (PowerShell)
az network nsg create --name nsg-data --resource-group rg-folab-dev --location westeurope
# Ajouter une règle pour autoriser HTTPS
az network nsg rule create --nsg-name nsg-data --resource-group rg-folab-dev --name Allow-HTTPS --priority 100 --direction Inbound --access Allow --protocol Tcp --destination-port-ranges 443
# Associer le NSG au subnet
az network vnet subnet update --name snet-data --vnet-name vnet-folab-dev --resource-group rg-folab-dev --network-security-group nsg-data
Version Bash (cliquez pour afficher)
# Créer un NSG
az network nsg create \
--name nsg-data \
--resource-group rg-folab-dev \
--location westeurope
# Ajouter une règle pour autoriser HTTPS
az network nsg rule create \
--nsg-name nsg-data \
--resource-group rg-folab-dev \
--name Allow-HTTPS \
--priority 100 \
--direction Inbound \
--access Allow \
--protocol Tcp \
--destination-port-ranges 443
# Associer le NSG au subnet
az network vnet subnet update \
--name snet-data \
--vnet-name vnet-folab-dev \
--resource-group rg-folab-dev \
--network-security-group nsg-data
Private Endpoints
Permettent d'accéder aux services Azure via une IP privée dans votre VNet :
+----------------------------------------------------------+
| PRIVATE ENDPOINTS |
+----------------------------------------------------------+
| |
| Votre VNet Azure Service |
| +-------------+ +------------------+ |
| | snet-data | Private Link | Storage Account | |
| | | <------------> | (pas d'IP pub) | |
| | PE: 10.0.1.5| +------------------+ |
| +-------------+ |
| |
+----------------------------------------------------------+
# Créer un Private Endpoint pour un Storage Account (PowerShell)
az network private-endpoint create --name pe-storage-folab --resource-group rg-folab-dev --vnet-name vnet-folab-dev --subnet snet-data --private-connection-resource-id "/subscriptions/.../storageAccounts/stfolabdev" --group-id blob --connection-name pec-storage-blob
# Créer la zone DNS privée
az network private-dns zone create --name privatelink.blob.core.windows.net --resource-group rg-folab-dev
# Lier la zone DNS au VNet
az network private-dns link vnet create --name link-storage --resource-group rg-folab-dev --zone-name privatelink.blob.core.windows.net --virtual-network vnet-folab-dev --registration-enabled false
Version Bash (cliquez pour afficher)
# Créer un Private Endpoint pour un Storage Account
az network private-endpoint create \
--name pe-storage-folab \
--resource-group rg-folab-dev \
--vnet-name vnet-folab-dev \
--subnet snet-data \
--private-connection-resource-id "/subscriptions/.../storageAccounts/stfolabdev" \
--group-id blob \
--connection-name pec-storage-blob
# Créer la zone DNS privée
az network private-dns zone create \
--name privatelink.blob.core.windows.net \
--resource-group rg-folab-dev
# Lier la zone DNS au VNet
az network private-dns link vnet create \
--name link-storage \
--resource-group rg-folab-dev \
--zone-name privatelink.blob.core.windows.net \
--virtual-network vnet-folab-dev \
--registration-enabled false
Service Endpoints vs Private Endpoints
| Aspect | Service Endpoint | Private Endpoint |
|---|---|---|
| IP | IP publique Azure | IP privée dans VNet |
| Routage | Via backbone Azure | Via VNet (Private Link) |
| DNS | DNS public | DNS privé requis |
| Sécurité | Bonne | Maximale (zero trust) |
| Cout | Gratuit | Payant |
VNet Peering (PowerShell)
Connecter deux VNets entre eux :
# Peering entre deux VNets
az network vnet peering create --name peer-dev-to-prod --resource-group rg-folab-dev --vnet-name vnet-folab-dev --remote-vnet /subscriptions/.../vnet-folab-prod --allow-vnet-access
# Peering inverse (nécessaire des deux côtés)
az network vnet peering create --name peer-prod-to-dev --resource-group rg-folab-prod --vnet-name vnet-folab-prod --remote-vnet /subscriptions/.../vnet-folab-dev --allow-vnet-access
Version Bash (cliquez pour afficher)
# Peering entre deux VNets
az network vnet peering create \
--name peer-dev-to-prod \
--resource-group rg-folab-dev \
--vnet-name vnet-folab-dev \
--remote-vnet /subscriptions/.../vnet-folab-prod \
--allow-vnet-access
# Peering inverse (nécessaire des deux côtés)
az network vnet peering create \
--name peer-prod-to-dev \
--resource-group rg-folab-prod \
--vnet-name vnet-folab-prod \
--remote-vnet /subscriptions/.../vnet-folab-dev \
--allow-vnet-access
Azure Bastion
Bastion permet de se connecter en RDP/SSH aux VMs sans exposer de port public.
# Créer le subnet dédié a Bastion (nom obligatoire) (PowerShell)
az network vnet subnet create --name AzureBastionSubnet --vnet-name vnet-folab-dev --resource-group rg-folab-dev --address-prefix 10.0.255.0/27
# Créer une IP publique pour Bastion
az network public-ip create --name pip-bastion --resource-group rg-folab-dev --sku Standard
# Créer le Bastion
az network bastion create --name bastion-folab --resource-group rg-folab-dev --vnet-name vnet-folab-dev --public-ip-address pip-bastion
Version Bash (cliquez pour afficher)
# Créer le subnet dédié a Bastion (nom obligatoire)
az network vnet subnet create \
--name AzureBastionSubnet \
--vnet-name vnet-folab-dev \
--resource-group rg-folab-dev \
--address-prefix 10.0.255.0/27
# Créer une IP publique pour Bastion
az network public-ip create \
--name pip-bastion \
--resource-group rg-folab-dev \
--sku Standard
# Créer le Bastion
az network bastion create \
--name bastion-folab \
--resource-group rg-folab-dev \
--vnet-name vnet-folab-dev \
--public-ip-address pip-bastion