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