Vous pouvez utiliser un groupe de sécurité réseau pour filtrer le trafic réseau sortant et entrant respectivement à destination et en provenance de ressources Azure dans un réseau virtuel Azure.
Les groupes de sécurité réseau contiennent des règles de sécurité qui filtrent le trafic réseau par adresse IP, port et protocole. Quand un groupe de sécurité réseau est associé à un sous-réseau, des règles de sécurité sont appliquées aux ressources déployées dans ce sous-réseau.
Dans ce tutoriel, vous allez apprendre à :
- Créer un groupe de sécurité réseau et les règles associées
- Créer des groupes de sécurité d’application
- Créer un réseau virtuel et associer un groupe de sécurité réseau à un sous-réseau
- Déployer des machines virtuelles et associer leurs interfaces réseau aux groupes de sécurité d’application
Prérequis
Azure Cloud Shell
Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.
Pour démarrer Azure Cloud Shell :
Choix |
Exemple/Lien |
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. |
|
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. |
|
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. |
|
Pour utiliser Azure Cloud Shell :
Démarrez Cloud Shell.
Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.
Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.
Sélectionnez Entrée pour exécuter le code ou la commande.
Si vous choisissez d’installer et d’utiliser PowerShell en local, vous devez exécuter le module Azure PowerShell version 1.0.0 ou ultérieure pour les besoins de cet article. Exécutez Get-Module -ListAvailable Az
pour rechercher la version installée. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. Si vous exécutez PowerShell en local, vous devez également exécuter Connect-AzAccount
pour créer une connexion avec Azure.
Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Cet article nécessite la version 2.0.28 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.
La procédure suivante crée un réseau virtuel avec un sous-réseau ressource.
Dans le portail, recherchez et sélectionnez Réseaux virtuels.
Dans la page Réseaux virtuels, sélectionnez + Créer.
Sous l’onglet Général de la page Créer un réseau virtuel, entrez ou sélectionnez les informations suivantes :
Paramètre |
Valeur |
Détails du projet |
|
Abonnement |
Sélectionnez votre abonnement. |
groupe de ressources |
Sélectionnez Créer nouveau.
Entrez test-rg dans Nom.
Sélectionnez OK. |
Détails de l’instance |
|
Nom |
Entrez vnet-1. |
Région |
Sélectionnez USA Est. |
Sélectionnez Suivant pour passer à l’onglet Sécurité.
Sélectionnez Suivant pour passer à l’onglet adresses IP.
Dans la zone Espace d’adressage sous Sous-réseaux, sélectionnez le sous-réseau par défaut.
Sur la volet Modifier un sous-réseau, saisissez ou sélectionnez les informations suivantes :
Paramètre |
Valeur |
Détails du sous-réseau |
|
Modèle de sous-réseau |
Conservez la valeur Par défaut. |
Nom |
Entrez subnet-1. |
Adresse de début |
Laissez la valeur par défaut sur 10.0.0.0. |
Taille du sous-réseau |
Laissez la valeur par défaut sur /24(256 adresses). |
Cliquez sur Enregistrer.
Sélectionnez Vérifier + créer au bas de l’écran. Une fois la validation réussie, sélectionnez Créer.
Tout d’abord, créez un groupe de ressources pour toutes les ressources créées dans cet article avec New-AzResourceGroup. L’exemple suivant crée un groupe de ressources à l’emplacement westus2 :
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Créez un réseau virtuel avec New-AzVirtualNetwork. L’exemple suivant crée un réseau virtuel nommévnet-1 :
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Créez une configuration de sous-réseau avec New-AzVirtualNetworkSubnetConfig, puis écrivez la configuration du sous-réseau dans le réseau virtuel avec Set-AzVirtualNetwork. L’exemple suivant ajoute un sous-réseau nommé subnet-1 au réseau virtuel et l’associe au groupe de sécurité réseau nsg-1 :
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Tout d’abord, créez un groupe de ressources pour toutes les ressources créées dans cet article avec az group create. L’exemple suivant crée un groupe de ressources à l’emplacement westus2 :
az group create \
--name test-rg \
--location westus2
Créez un réseau virtuel avec la commande az network vnet create. L’exemple suivant crée un réseau virtuel nommévnet-1 :
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefixes 10.0.0.0/16
Ajoutez un sous-réseau au réseau virtuel avec la commande az network vnet subnet create. L’exemple suivant ajoute un sous-réseau nommé subnet-1 au réseau virtuel et l’associe au groupe de sécurité réseau nsg-1 :
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24
Créer des groupes de sécurité d’application
Un groupe de sécurité d’application vous permet de regrouper des serveurs dont les fonctions sont similaires, comme des serveurs Web.
Dans la zone de recherche située en haut du portail, entrez Groupe de sécurité application. Dans les résultats de la recherche, sélectionnez Groupes de sécurité d’application.
Sélectionnez + Créer.
Dans Créer un groupe de sécurité d’application, sous l’onglet De base, entrez ou sélectionnez les informations suivantes :
Paramètre |
Valeur |
Détails du projet |
|
Abonnement |
Sélectionnez votre abonnement. |
groupe de ressources |
Sélectionnez test-rg. |
Détails de l’instance |
|
Nom |
Entrez asg-web. |
Région |
Sélectionnez USA Est. |
Sélectionnez Revoir + créer.
Sélectionnez + Créer.
Répétez les étapes précédentes en spécifiant les valeurs suivantes :
Paramètre |
Valeur |
Détails du projet |
|
Abonnement |
Sélectionnez votre abonnement. |
groupe de ressources |
Sélectionnez test-rg. |
Détails de l’instance |
|
Nom |
Entrez asg-mgmt. |
Région |
Sélectionnez USA Est. |
Sélectionnez Revoir + créer.
Sélectionnez Créer.
Créez un groupe de sécurité d’application avec New-AzApplicationSecurityGroup. Un groupe de sécurité d’application vous permet de regrouper des serveurs avec des exigences de filtrage de port similaires. L’exemple suivant crée deux groupes de sécurité d’application.
$web = @{
ResourceGroupName = "test-rg"
Name = "asg-web"
Location = "westus2"
}
$webAsg = New-AzApplicationSecurityGroup @web
$mgmt = @{
ResourceGroupName = "test-rg"
Name = "asg-mgmt"
Location = "westus2"
}
$mgmtAsg = New-AzApplicationSecurityGroup @mgmt
Créez un groupe de sécurité d’application avec la commande az network asg create. Un groupe de sécurité d’application vous permet de regrouper des serveurs avec des exigences de filtrage de port similaires. L’exemple suivant crée deux groupes de sécurité d’application.
az network asg create \
--resource-group test-rg \
--name asg-web \
--location westus2
az network asg create \
--resource-group test-rg \
--name asg-mgmt \
--location westus2
Créer un groupe de sécurité réseau
Un groupe de sécurité réseau (NSG) sécurise le trafic réseau dans votre réseau virtuel.
Dans la zone de recherche située en haut du portail, entrez Groupe de sécurité réseau. Dans les résultats de la recherche, sélectionnez Groupe de sécurité réseau.
Remarque
Dans les résultats de recherche pour Groupes de sécurité réseau, vous pouvez voir Groupes de sécurité réseau (classique). Sélectionnez Groupes de sécurité réseau.
Sélectionnez + Créer.
Dans Créer un groupe de sécurité réseau, sous l’onglet De base, entrez ou sélectionnez les informations suivantes :
Paramètre |
Valeur |
Détails du projet |
|
Abonnement |
Sélectionnez votre abonnement. |
groupe de ressources |
Sélectionnez test-rg. |
Détails de l’instance |
|
Nom |
Entrez nsg-1. |
Emplacement |
Sélectionnez USA Est. |
Sélectionnez Revoir + créer.
Sélectionnez Créer.
Créez un groupe de sécurité réseau avec New-AzNetworkSecurityGroup. L’exemple suivant crée un groupe de sécurité réseau nommé nsg-1 :
$nsgParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "nsg-1"
}
$nsg = New-AzNetworkSecurityGroup @nsgParams
Créez un groupe de sécurité réseau avec la commande az network nsg create. L’exemple suivant crée un groupe de sécurité réseau nommé nsg-1 :
# Create a network security group
az network nsg create \
--resource-group test-rg \
--name nsg-1
Associer le groupe de sécurité réseau au sous-réseau
Dans cette section, vous allez associer le groupe de sécurité réseau au sous-réseau du réseau virtuel que vous avez créé.
Dans la zone de recherche située en haut du portail, entrez Groupe de sécurité réseau. Dans les résultats de la recherche, sélectionnez Groupe de sécurité réseau.
Sélectionnez nsg-1.
Dans la section Paramètres de nsg-1, sélectionnez Sous-réseaux.
Dans la page Sous-réseaux, sélectionnez + Associer :
Sous Associer un sous-réseau, pour Réseau virtuel, sélectionnez vnet-1 (test-rg).
Pour Sous-réseau, sélectionnez subnet-1, puis OK.
Utilisez la commande Get-AzVirtualNetwork pour récupérer l’objet de réseau virtuel, puis utilisez la commande Set-AzVirtualNetworkSubnetConfig pour associer le groupe de sécurité réseau au sous-réseau. L’exemple suivant récupère l’objet de réseau virtuel et met à jour la configuration du sous-réseau pour associer le groupe de sécurité réseau :
# Retrieve the virtual network
$vnet = Get-AzVirtualNetwork -Name "vnet-1" -ResourceGroupName "test-rg"
# Update the subnet configuration to associate the network security group
$subnetConfigParams = @{
VirtualNetwork = $vnet
Name = "subnet-1"
AddressPrefix = $vnet.Subnets[0].AddressPrefix
NetworkSecurityGroup = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
# Update the virtual network with the new subnet configuration
$vnet | Set-AzVirtualNetwork
Utilisez la commande az network vnet subnet update pour associer le groupe de sécurité réseau au sous-réseau. L’exemple suivant associe le groupe de sécurité réseau nsg-1 au sous-réseau subnet-1 :
az network vnet subnet update \
--resource-group test-rg \
--vnet-name vnet-1 \
--name subnet-1 \
--network-security-group nsg-1
Créer des règles de sécurité
Dans la section Paramètres de nsg-1, sélectionnez Règles de sécurité de trafic entrant.
Dans la page Règles de sécurité de trafic entrant, sélectionnez + Ajouter.
Créez une règle de sécurité qui autorise les ports 80 et 443 dans le groupe de sécurité d’application asg-web. À la page Ajouter une règle de sécurité de trafic entrant, entrez ou sélectionnez les informations suivantes :
Paramètre |
Valeur |
Origine |
Conservez la valeur par défaut Tous. |
Plages de ports sources |
Conservez la valeur par défaut de (*). |
Destination |
Sélectionnez Groupe de sécurité d’application. |
Groupes de sécurité d’application de destination |
Sélectionnez asg-web. |
Service |
Conservez la valeur par défaut Personnalisé. |
Plages de ports de destination |
Entrez 80,443. |
Protocole |
Sélectionnez TCP. |
Action |
Conservez la valeur par défaut Autoriser. |
Priorité |
Conservez la valeur par défaut 100. |
Nom |
Entrez allow-web-all. |
Sélectionnez Ajouter.
Effectuez les étapes précédentes avec les informations suivantes :
Paramètre |
Valeur |
Origine |
Conservez la valeur par défaut Tous. |
Plages de ports sources |
Conservez la valeur par défaut de (*). |
Destination |
Sélectionnez Groupe de sécurité d’application. |
Groupe de sécurité d’application de destination |
Sélectionnez asg-mgmt. |
Service |
Sélectionnez RDP. |
Action |
Conservez la valeur par défaut Autoriser. |
Priorité |
Conservez la valeur par défaut 110. |
Nom |
Entrez allow-rdp-all. |
Sélectionnez Ajouter.
Attention
Dans cet article, le protocole RDP (port 3389) est exposé à Internet pour la machine virtuelle affectée au groupe de sécurité d’application asg-mgmt.
Pour les environnements de production, au lieu d’exposer le port 3389 sur Internet, il est recommandé de vous connecter aux ressources Azure à gérer via un réseau VPN ou Azure Bastion.
Pour plus d'informations sur Azure Bastion, consultez Présentation d'Azure Bastion.
Créez une règle de sécurité avec New-AzNetworkSecurityRuleConfig. L’exemple suivant crée une règle qui autorise le trafic entrant à partir d’Internet vers le groupe de sécurité d’application asg-web sur les ports 80 et 443 :
$webAsgParams = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$webAsg = Get-AzApplicationSecurityGroup @webAsgParams
$webRuleParams = @{
Name = "Allow-Web-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 100
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $webAsg.id
DestinationPortRange = 80,443
}
$webRule = New-AzNetworkSecurityRuleConfig @webRuleParams
L’exemple suivant crée une règle qui autorise le trafic entrant à partir d’Internet vers le groupe de sécurité d’application asg-mgmt sur le port 3389 :
$mgmtAsgParams = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$mgmtAsg = Get-AzApplicationSecurityGroup @mgmtAsgParams
$mgmtRuleParams = @{
Name = "Allow-RDP-All"
Access = "Allow"
Protocol = "Tcp"
Direction = "Inbound"
Priority = 110
SourceAddressPrefix = "Internet"
SourcePortRange = "*"
DestinationApplicationSecurityGroupId = $mgmtAsg.id
DestinationPortRange = 3389
}
$mgmtRule = New-AzNetworkSecurityRuleConfig @mgmtRuleParams
Utilisez la commande Get-AzNetworkSecurityGroup pour récupérer le groupe de sécurité réseau existant, puis ajoutez les nouvelles règles avec l’opérateur +=
. Enfin, utilisez la commande Set-AzNetworkSecurityGroup pour mettre à jour le groupe de sécurité réseau :
# Retrieve the existing network security group
$nsg = Get-AzNetworkSecurityGroup -Name "nsg-1" -ResourceGroupName "test-rg"
# Add the new rules to the security group
$nsg.SecurityRules += $webRule
$nsg.SecurityRules += $mgmtRule
# Update the network security group with the new rules
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
Attention
Dans cet article, le protocole RDP (port 3389) est exposé à Internet pour la machine virtuelle affectée au groupe de sécurité d’application asg-mgmt.
Pour les environnements de production, au lieu d’exposer le port 3389 sur Internet, il est recommandé de vous connecter aux ressources Azure à gérer via un réseau VPN ou Azure Bastion.
Pour plus d'informations sur Azure Bastion, consultez Présentation d'Azure Bastion.
Créez une règle de sécurité avec az network nsg rule create. L’exemple suivant crée une règle qui autorise le trafic entrant à partir d’Internet vers le groupe de sécurité d’application asg-web sur les ports 80 et 443 :
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-Web-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 100 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-web" \
--destination-port-range 80 443
L’exemple suivant crée une règle qui autorise le trafic entrant à partir d’Internet vers le groupe de sécurité d’application asg-mgmt sur le port 22 :
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-SSH-All \
--access Allow \
--protocol Tcp \
--direction Inbound \
--priority 110 \
--source-address-prefix Internet \
--source-port-range "*" \
--destination-asgs "asg-mgmt" \
--destination-port-range 22
Attention
Dans cet article, le protocole SSH (port 22) est exposé à Internet pour la machine virtuelle affectée au groupe de sécurité d’application asg-mgmt.
Pour les environnements de production, au lieu d’exposer le port 22 sur Internet, il est recommandé de vous connecter aux ressources Azure à gérer via un réseau VPN, une connexion réseau privée ou Azure Bastion.
Pour plus d'informations sur Azure Bastion, consultez Présentation d'Azure Bastion.
Créer des machines virtuelles
Créez deux machines virtuelles dans le réseau virtuel.
Dans le portail, recherchez et sélectionnez Machines virtuelles.
Dans Machines virtuelles, sélectionnez + Créer, puis Machine virtuelle Azure.
Dans Créer une machine virtuelle, entrez ou sélectionnez les informations suivantes sous l’onglet Informations de base :
Paramètre |
Valeur |
Détails du projet |
|
Abonnement |
Sélectionnez votre abonnement. |
groupe de ressources |
Sélectionnez test-rg. |
Détails de l’instance |
|
Nom de la machine virtuelle |
Entrez vm-web. |
Région |
Sélectionnez (États-Unis) USA Est 2. |
Options de disponibilité |
Conservez la valeur par défaut Aucune redondance d’infrastructure requise. |
Type de sécurité |
Sélectionnez Standard. |
Image |
Sélectionnez Windows Server 2022 Datacenter - x64 Gen2. |
Instance Azure Spot |
Conservez la valeur par défaut (case non cochée). |
Taille |
Sélectionnez une taille. |
Compte administrateur |
|
Nom d’utilisateur |
Entrez un nom d’utilisateur. |
Mot de passe |
Entrez un mot de passe. |
Confirmer le mot de passe |
Retapez le mot de passe. |
Règles des ports d’entrée |
|
Sélectionner des ports d’entrée |
Sélectionnez Aucun. |
Sélectionnez Suivant : Disques, puis Suivant : Réseaux.
Sous l’onglet Mise en réseau, entrez ou sélectionnez les informations suivantes :
Paramètre |
Valeur |
Interface réseau |
|
Réseau virtuel |
Sélectionnez vnet-1. |
Sous-réseau |
Sélectionnez subnet-1 (10.0.0.0/24). |
Adresse IP publique |
Conservez la valeur par défaut indiquant une nouvelle IP publique. |
Groupe de sécurité réseau de la carte réseau |
Sélectionnez Aucun. |
Sélectionnez l’onglet Vérifier + créer, ou sélectionnez le bouton bleu Vérifier + créer situé au bas de la page.
Sélectionnez Créer. Le déploiement de la machine virtuelle peut prendre quelques minutes.
Répétez les étapes précédentes pour créer une deuxième machine virtuelle nommée vm-mgmt.
Avant de créer les machines virtuelles, récupérez l’objet de réseau virtuel avec le sous-réseau à l’aide de la commande Get-AzVirtualNetwork :
$virtualNetworkParams = @{
Name = "vnet-1"
ResourceGroupName = "test-rg"
}
$virtualNetwork = Get-AzVirtualNetwork @virtualNetworkParams
Créez une adresse IP publique pour chaque machine virtuelle avec New-AzPublicIpAddress :
$publicIpWebParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-web"
}
$publicIpWeb = New-AzPublicIpAddress @publicIpWebParams
$publicIpMgmtParams = @{
AllocationMethod = "Static"
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "public-ip-vm-mgmt"
}
$publicIpMgmt = New-AzPublicIpAddress @publicIpMgmtParams
Créez deux interfaces réseau avec New-AzNetworkInterfaceet attribuez une adresse IP publique à l’interface réseau. L’exemple suivant crée une interface réseau, associe l’adresse IP publique public-ip-vm-web à celle-ci.
$webNicParams = @{
Location = "westus2"
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpWeb.Id
}
$webNic = New-AzNetworkInterface @webNicParams
L’exemple suivant crée une interface réseau, associe l’adresse IP publique public-ip-mgmt à celle-ci.
$mgmtNicParams = @{
Location = "westus2"
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
SubnetId = $virtualNetwork.Subnets[0].Id
PublicIpAddressId = $publicIpMgmt.Id
}
$mgmtNic = New-AzNetworkInterface @mgmtNicParams
Créez deux machines virtuelles dans le réseau virtuel pour pouvoir valider le filtrage du trafic à une étape ultérieure.
Créez une configuration de machine virtuelle avec New-AzVMConfig, puis créez la machine virtuelle avec New-AzVM. L’exemple suivant crée une machine virtuelle qui sert de serveur web. L’option -AsJob
crée la machine virtuelle en arrière-plan. Vous pouvez donc passer à l’étape suivante :
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-web"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-web"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$webVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $webNic.Id
$webVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $webVmConfig
}
New-AzVM @webVmParams -AsJob
Créez une machine virtuelle comme un serveur d’administration :
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
$webVmConfigParams = @{
VMName = "vm-mgmt"
VMSize = "Standard_DS1_V2"
}
$vmOSParams = @{
ComputerName = "vm-mgmt"
Credential = $cred
}
$vmImageParams = @{
PublisherName = "MicrosoftWindowsServer"
Offer = "WindowsServer"
Skus = "2022-Datacenter"
Version = "latest"
}
$mgmtVmConfig = New-AzVMConfig @webVmConfigParams | Set-AzVMOperatingSystem -Windows @vmOSParams | Set-AzVMSourceImage @vmImageParams | Add-AzVMNetworkInterface -Id $mgmtNic.Id
$mgmtVmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VM = $mgmtVmConfig
}
New-AzVM @mgmtVmParams
La création de la machine virtuelle prend quelques minutes. Ne passez pas à l’étape suivante avant qu’Azure ait terminé la création de la machine virtuelle.
Créez deux machines virtuelles dans le réseau virtuel pour pouvoir valider le filtrage du trafic à une étape ultérieure.
Créez une machine virtuelle avec la commande az vm create. L’exemple suivant crée une machine virtuelle qui sert de serveur web. L’option --nsg ""
est spécifiée pour empêcher la création par Azure d’un groupe de sécurité réseau par défaut pour l’interface réseau créée par Azure lorsqu’il crée la machine virtuelle. La commande vous invite à créer un mot de passe pour la machine virtuelle. Les clés SSH ne sont pas utilisées dans cet exemple pour faciliter les étapes ultérieures de cet article. Dans un environnement de production, utilisez des clés SSH à des fins de sécurité.
az vm create \
--resource-group test-rg \
--name vm-web \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--authentication-type password \
--assign-identity
La création de la machine virtuelle ne nécessite que quelques minutes. Une fois la machine virtuelle créée, une sortie similaire à l’exemple suivant est renvoyée :
{
"fqdns": "",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/vm-web",
"location": "westus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "203.0.113.24",
"resourceGroup": "test-rg"
}
Créez une machine virtuelle avec la commande az vm create. L’exemple suivant crée une machine virtuelle qui sert de serveur d’administration.
L’exemple suivant crée une machine virtuelle et ajoute un compte d’utilisateur. Le paramètre --generate-ssh-keys
fait en sorte que le CLI recherche une clé ssh disponible dans ~/.ssh
. Si une clé est trouvée, cette clé est utilisée. Sinon, une clé est générée et stockée dans ~/.ssh
. Enfin, nous déployons l’image Ubuntu 22.04
la plus récente.
az vm create \
--resource-group test-rg \
--name vm-mgmt \
--image Ubuntu2204 \
--vnet-name vnet-1 \
--subnet subnet-1 \
--nsg "" \
--admin-username azureuser \
--generate-ssh-keys \
--assign-identity
La création de la machine virtuelle ne nécessite que quelques minutes. Ne passez pas à l’étape suivante avant qu’Azure ait terminé la création de la machine virtuelle.
Associer des interfaces réseau à un groupe de sécurité d’application
Quand vous avez créé les machines virtuelles, Azure a créé une interface réseau pour chacune d’elles et l’a attachée à celle-ci.
Ajoutez l’interface réseau de chaque machine virtuelle à l’un des groupes de sécurité d’application que vous avez créés précédemment :
Dans la zone de recherche située en haut du portail, entrez Machine virtuelle. Sélectionnez Machines virtuelles dans les résultats de la recherche, puis vm-web.
Sélectionnez Groupes de sécurité d’application dans la section Mise en réseau de vm-web.
Sélectionnez Ajouter des groupes de sécurité d’application, puis sous l’onglet Ajouter des groupes de sécurité d’application, choisissez asg-web. Enfin, sélectionnez Ajouter.
Répétez les étapes précédentes pour vm-mgmt, en sélectionnant asg-mgmt sous l’onglet Ajouter des groupes de sécurité d’application.
Utilisez la commande Get-AzNetworkInterface pour récupérer l’interface réseau de la machine virtuelle, puis utilisez la commande Get-AzApplicationSecurityGroup pour récupérer le groupe de sécurité d’application. Enfin, utilisez la commande Set-AzNetworkInterface pour associer le groupe de sécurité d’application à l’interface réseau. L’exemple suivant associe le groupe de sécurité d’application asg-web à l’interface réseau vm-web-nic :
$params1 = @{
Name = "vm-web-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-web"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Répétez la commande pour associer le groupe de sécurité d’application asg-mgmt à l’interface réseau vm-mgmt-nic .
$params1 = @{
Name = "vm-mgmt-nic"
ResourceGroupName = "test-rg"
}
$nic = Get-AzNetworkInterface @params1
$params2 = @{
Name = "asg-mgmt"
ResourceGroupName = "test-rg"
}
$asg = Get-AzApplicationSecurityGroup @params2
$nic.IpConfigurations[0].ApplicationSecurityGroups = @($asg)
$params3 = @{
NetworkInterface = $nic
}
Set-AzNetworkInterface @params3
Utilisez la commande az network nic update pour associer l’interface réseau au groupe de sécurité d’application. L’exemple suivant associe le groupe de sécurité d’application asg-web à l’interface réseau vm-web-nic :
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-web --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-web \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-web
Répétez la commande pour associer le groupe de sécurité d’application asg-mgmt à l’interface réseau vm-mgmt-nic .
# Retrieve the network interface name associated with the virtual machine
nic_name=$(az vm show --resource-group test-rg --name vm-mgmt --query 'networkProfile.networkInterfaces[0].id' -o tsv | xargs basename)
# Associate the application security group with the network interface
az network nic ip-config update \
--name ipconfigvm-mgmt \
--nic-name $nic_name \
--resource-group test-rg \
--application-security-groups asg-mgmt
Tester les filtres de trafic
Dans la zone de recherche située en haut du portail, entrez Machine virtuelle. Sélectionnez Machines virtuelles dans les résultats de la recherche.
Sélectionnez vm-mgmt.
Sur la page Vue d’ensemble, sélectionnez le bouton Se connecter, puis RDP natif.
Sélectionnez Télécharger le fichier RDP.
Ouvrez le fichier RDP téléchargé et sélectionnez Connecter. Entrez le nom d’utilisateur et le mot de passe spécifiés lors de la création de la machine virtuelle.
Cliquez sur OK.
Vous pouvez éventuellement recevoir un avertissement lié au certificat pendant le processus de connexion. Si vous recevez l’avertissement, sélectionnez Oui ou Continuer pour poursuivre le processus de connexion.
La connexion aboutit parce que le trafic entrant en provenance d’Internet à destination du groupe de sécurité d’application asg-mgmt est autorisé via le port 3389.
L’interface réseau de vm-mgmt est associée au groupe de sécurité d’application asg-mgmt et autorise la connexion.
Ouvrez une session PowerShell sur vm-mgmt. Connectez-vous à vm-web à l’aide des éléments suivants :
mstsc /v:vm-web
La connexion RDP de vm-mgmt à vm-web aboutit parce que des machines virtuelles dans le même réseau peuvent communiquer entre elles sur n’importe quel port par défaut.
Vous ne pouvez pas créer de connexion RDP à la machine virtuelle vm-web à partir d’Internet. La règle de sécurité de asg-web empêche les connexions entrantes en provenance d’Internet sur le port 3389. Par défaut, le trafic entrant en provenance d’Internet est refusé pour toutes les ressources.
Pour installer Microsoft IIS sur la machine virtuelle vm-web, entrez la commande suivante à partir d’une session PowerShell sur la machine virtuelle vm-web :
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Une fois l’installation d’IIS effectuée, déconnectez-vous de la machine virtuelle vm-web. Cela vous laisse uniquement la connexion Bureau à distance de la machine virtuelle vm-mgmt.
Déconnectez-vous de la machine virtuelle vm-mgmt.
Dans la zone de recherche du portail, recherchez vm-web.
Dans la page Vue d’ensemble de vm-web, notez l’adresse IP publique de votre machine virtuelle. L’adresse indiquée dans l’exemple suivant est 203.0.113.103. Votre adresse est différente :
Pour vérifier si vous pouvez accéder au serveur web vm-web depuis Internet, ouvrez un navigateur Internet sur votre ordinateur et accédez à http://<public-ip-address-from-previous-step>
.
Vous voyez cette page par défaut IIS parce que le trafic entrant en provenance d’Internet à destination du groupe de sécurité d’application asg-web est autorisé via le port 80.
L’interface réseau attachée à vm-web est associée au groupe de sécurité d’application asg-web et autorise la connexion.
Utilisez Get-AzPublicIpAddress pour retourner l’adresse IP publique d’une machine virtuelle. L’exemple suivant renvoie l’adresse IP publique de la machine virtuelle vm-mgmt :
$params = @{
Name = "public-ip-vm-mgmt"
ResourceGroupName = "test-rg"
}
$publicIP = Get-AzPublicIpAddress @params | Select IpAddress
Utilisez la commande suivante pour créer une session Bureau à distance avec la machine virtuelle vm-mgmt à partir de votre ordinateur local.
mstsc /v:$publicIP
Entrez le nom d’utilisateur et le mot de passe spécifiés lors de la création de la machine virtuelle (il se peut que vous deviez choisir Plus de choix, puis Utiliser un compte différent pour spécifier les informations d’identification que vous avez entrées lors de la création de la machine virtuelle), puis sélectionnez OK. Un avertissement de certificat peut s’afficher pendant le processus de connexion. SélectionnezOui pour poursuivre le processus de connexion.
La connexion aboutit. Le port 3389 est autorisé comme port entrant depuis Internet vers le groupe de sécurité d’application asg-mgmt. L’interface réseau attachée à la machine virtuelle vm-mgmt se trouve dans ce groupe.
Utilisez la commande suivante pour créer une connexion Bureau à distance vers la machine virtuelle vm-web à partir de la machine virtuelle vm-mgmt, avec la commande suivante, à partir de PowerShell :
mstsc /v:vm-web
La connexion réussit car une règle de sécurité par défaut au sein de chaque groupe de sécurité réseau autorise le trafic par tous les ports entre toutes les adresses IP au sein d’un réseau virtuel. Vous ne pouvez pas créer une connexion Bureau à distance à la machine virtuelle vm-web depuis Internet, car la règle de sécurité pour asg-web n’autorise pas les données entrantes venant d’Internet sur le port 3389.
Utilisez la commande suivante pour installer Microsoft IIS sur la machine virtuelle vm-web à partir de PowerShell :
Install-WindowsFeature -name Web-Server -IncludeManagementTools
Une fois l’installation d’IIS terminée, déconnectez-vous de la machine virtuelle vm-web. Cela vous laisse uniquement la connexion Bureau à distance de la machine virtuelle vm-mgmt. Pour afficher l’écran d’accueil d’IIS, ouvrez un navigateur web et accédez à http://vm-web.
Déconnectez-vous de la machine virtuelle vm-mgmt.
Sur votre ordinateur, entrez la commande suivante à partir de PowerShell pour récupérer l’adresse IP publique du serveur vm-web :
$params = @{
Name = "public-ip-vm-web"
ResourceGroupName = "test-rg"
}
Get-AzPublicIpAddress @params | Select IpAddress
Pour confirmer que vous pouvez accéder au serveur web vm-web sans être dans Azure, ouvrez un navigateur web sur votre ordinateur et accédez à http://<public-ip-address-from-previous-step>
. La connexion aboutit. Le port 80 est autorisé pour le trafic entrant à partir d’Internet vers le groupe de sécurité d’application asg-web. L’interface réseau attachée à la machine virtuelle vm-web se trouve dans ce groupe.
En utilisant un client SSH de votre choix, connectez-vous aux machines virtuelles créées précédemment. Par exemple, vous pouvez utiliser la commande suivante à partir d’une interface de ligne de commande comme Sous-système Windows pour Linux pour créer une session SSH avec la machine virtuelle vm-mgmt. Vous pouvez vous connecter aux machines virtuelles en utilisant vos informations d’identification Microsoft Entra ID, ou utiliser la clé SSH que vous avez utilisée pour créer les machines virtuelles. Dans l’exemple suivant, nous utilisons la clé SSH pour nous connecter à la machine virtuelle de gestion, puis à la machine virtuelle web à partir de la machine virtuelle de gestion avec un mot de passe.
Pour plus d’informations sur la connexion SSH à une machine virtuelle Linux et la connexion avec Microsoft Entra ID, consultez Se connecter à une machine virtuelle Linux dans Azure en utilisant Microsoft Entra ID et OpenSSH.
Stocker l’adresse IP d’une machine virtuelle pour une connexion SSH
Exécutez la commande suivante pour stocker l’adresse IP de la machine virtuelle en tant que variable d’environnement :
export IP_ADDRESS=$(az vm show --show-details --resource-group test-rg --name vm-mgmt --query publicIps --output tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS
La connexion aboutit, car l’interface réseau attachée à la machine virtuelle vm-mgmt se trouve dans le groupe de sécurité d’application asg-mgmt, qui autorise le trafic entrant sur le port 22 à partir d’Internet.
Utilisez la commande suivante pour établir une connexion SSH à la machine virtuelle vm-web à partir de la machine virtuelle vm-mgmt :
ssh -o StrictHostKeyChecking=no azureuser@vm-web
La connexion réussit car une règle de sécurité par défaut au sein de chaque groupe de sécurité réseau autorise le trafic par tous les ports entre toutes les adresses IP au sein d’un réseau virtuel. Vous ne pouvez pas établir une connexion SSH à la machine virtuelle vm-web à partir d’Internet, car la règle de sécurité pour asg-web n’autorise pas le trafic entrant sur le port 22 à partir d’Internet.
Utilisez les commandes suivantes pour installer le serveur web nginx sur la machine virtuelle vm-web :
# Update package source
sudo apt-get -y update
# Install NGINX
sudo apt-get -y install nginx
La machine virtuelle vm-web autorise la récupération de nginx par le trafic sortant vers Internet, car une règle de sécurité par défaut autorise tout le trafic sortant vers Internet. Quittez la session SSH vm-web, ce qui vous laisse à l’invite de commandes username@vm-mgmt:~$
de la machine virtuelle vm-mgmt. Pour récupérer l’écran d’accueil nginx à partir de la machine virtuelle vm-web, entrez la commande suivante :
curl vm-web
Déconnectez-vous de la machine virtuelle vm-mgmt. Pour confirmer que vous pouvez accéder au serveur web vm-web hors Azure, entrez curl <publicIpAddress>
à partir de votre propre ordinateur. La connexion aboutit, car le groupe de sécurité d’application asg-web, dans lequel se trouve l’interface réseau attachée à la machine virtuelle vm-web, autorise le trafic entrant sur le port 80 à partir d’Internet.
Lorsque vous avez terminé d’utiliser les ressources que vous avez créées, vous pouvez supprimer le groupe de ressources et toutes les ressources qu’il contient.
Depuis le portail Azure, recherchez et sélectionnez Groupes de ressources.
Dans la page Groupes de ressources, sélectionnez le groupe de ressources test-rg.
Dans la page test-rg, sélectionnez Supprimer le groupe de ressources.
Entrez test-rg dans Entrez le nom du groupe de ressources pour confirmer la suppression, puis sélectionnez Supprimer.
Quand vous n’avez plus besoin d’un groupe de ressources, vous pouvez utiliser Remove-AzResourceGroup pour le supprimer ainsi que toutes les ressources qu’il contient :
$params = @{
Name = "test-rg"
Force = $true
}
Remove-AzResourceGroup @params
Quand vous n’avez plus besoin d’un groupe de ressources, utilisez az group delete pour le supprimer, ainsi que toutes les ressources qu’il contient.
az group delete \
--name test-rg \
--yes \
--no-wait
Étapes suivantes
Dans ce tutoriel, vous allez :
- Vous avez créé un groupe de sécurité réseau, et vous l’avez associé à un sous-réseau de réseau virtuel.
- Vous avez créé des groupes de sécurité d’application pour le web et la gestion.
- Créez deux machines virtuelles et associez leurs interfaces réseau aux groupes de sécurité d’application.
- Vous avez testé le filtrage réseau du groupe de sécurité d’application.
Pour en savoir plus sur les groupes de sécurité réseau, consultez Vue d’ensemble d’un groupe de sécurité réseau et Gérer un groupe de sécurité réseau.
Azure achemine par défaut le trafic entre les sous-réseaux. À la place, vous pouvez choisir par exemple d’acheminer le trafic entre les sous-réseaux via une machine virtuelle, agissant comme un pare-feu.
Pour apprendre à créer une table de routage, passez au didacticiel suivant.