L’exemple de cet article vous montre comment un groupe de sécurité réseau mal configuré peut vous empêcher d’utiliser Azure Bastion pour vous connecter à une machine virtuelle.
Les étapes de cet article exécutent les applets de commande Azure PowerShell de manière interactive dans Azure Cloud Shell. Pour exécuter les commandes dans le Cloud Shell, sélectionnez Ouvrir Cloud Shell dans le coin supérieur droit d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell pour l’exécuter. Vous pouvez également exécuter le Cloud Shell à partir du Portail Azure.
Vous pouvez également installer Azure PowerShell localement pour exécuter les applets de commande. Cet article nécessite le module Az PowerShell. Pour plus d’informations, consultez Comment installer Azure PowerShell. Pour trouver la version installée, exécutez Get-InstalledModule -Name Az. Si vous exécutez PowerShell localement, connectez-vous à Azure avec la cmdlet Connect-AzAccount.
Dans les étapes de cet article, vous exécutez les commandes Azure CLI de manière interactive dans Azure Cloud Shell. Pour exécuter les commandes dans le Cloud Shell, sélectionnez Ouvrir Cloud Shell dans le coin supérieur droit d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell afin de l’exécuter. Vous pouvez démarrer Azure Cloud Shell depuis le Portail Azure.
Vous pouvez également installer Azure CLI localement afin d’exécuter les commandes. Si vous exécutez Azure CLI localement, connectez-vous à Azure à l’aide de la commande az login.
Créer un réseau virtuel et un hôte bastion
Dans cette section, vous créez un réseau virtuel avec deux sous-réseaux et un hôte Azure Bastion. Le premier sous-réseau est utilisé pour la machine virtuelle, le second pour l’hôte Bastion. Vous créez également un groupe de sécurité réseau et l’appliquez au premier sous-réseau.
Dans la zone de recherche située en haut du portail, entrez réseaux virtuels. Sélectionnez Réseaux virtuels dans les résultats de la recherche.
Sélectionnez + Créer. Dans l’option Créer un réseau virtuel, entrez ou sélectionnez les valeurs suivantes sous l’onglet Informations de base :
Paramètre
Valeur
Détails du projet
Abonnement
Sélectionnez votre abonnement Azure.
Groupe de ressources
Sélectionnez Créer nouveau. Entrez myResourceGroup dans le champ Nom. Sélectionnez OK.
Détails de l’instance
Nom du réseau virtuel
Entrez myVNet.
Région
Sélectionnez (États-Unis) USA Est.
Sélectionnez l’onglet Sécurité ou le bouton Suivant situé au bas de la page.
Sous Azure Bastion, sélectionnez Activer Azure Bastion, puis acceptez les valeurs par défaut :
Paramètre
Valeur
Nom d’hôte Azure Bastion
myVNet-Bastion.
Adresse IP publique Azure Bastion
(Nouveau) myVNet-bastion-publicIpAddress.
Sélectionnez l’onglet Adresses IP ou le bouton Suivant au bas de la page.
Acceptez l’espace d’adressage IP par défaut 10.0.0.0/16 et modifiez le sous-réseau par défaut en sélectionnant l’icône de crayon. Sur la page Modifier le sous-réseau, entrez les valeurs suivantes :
Paramètre
Valeur
Détails du sous-réseau
Nom
Entrez mySubnet.
Sécurité
Un groupe de sécurité réseau
Sélectionnez Créer nouveau. Entrez mySubnet-nsg dans le champ Nom. Sélectionnez OK.
Sélectionnez Vérifier + créer.
Passez en revue les paramètres, puis sélectionnez Créer.
Créer un groupe de ressources avec New-AzResourceGroup. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.
# Create a resource group.
New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus'
Créez une configuration de sous-réseau pour le sous-réseau de la machine virtuelle et le sous-réseau de l’hôte Bastion à l’aide de la commande New-AzVirtualNetworkSubnetConfig.
Créez la ressource d’adresse IP publique requise pour l’hôte Bastion à l’aide de la commande New-AzPublicIpAddress.
# Create a public IP address for Azure Bastion.
New-AzPublicIpAddress -ResourceGroupName 'myResourceGroup' -Name 'myBastionIp' -Location 'eastus' -AllocationMethod 'Static' -Sku 'Standard'
Créez l’hôte Bastion à l’aide de la commande New-AzBastion.
Créez un groupe de ressources à l’aide de la commande az group create. Un groupe de ressources Azure est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.
# Create a resource group.
az group create --name 'myResourceGroup' --location 'eastus'
Créez un groupe de sécurité réseau par défaut à l’aide de la commande az network nsg create.
# Create a network security group.
az network nsg create --name 'mySubnet-nsg' --resource-group 'myResourceGroup' --location 'eastus'
La tarification horaire commence à partir du moment où l’hôte Bastion est déployé, quelle que soit l’utilisation des données sortantes. Pour plus d’informations, voir la tarification. Nous vous recommandons de supprimer cette ressource quand vous n’en avez plus besoin.
Création d'une machine virtuelle
Dans cette section, vous créez une machine virtuelle et un groupe de sécurité réseau appliqué à son interface réseau.
Créez une machine virtuelle à l’aide de la commande New-AzVM. Quand vous y êtes invité, entrez un nom d’utilisateur et un mot de passe.
# Create a virtual machine using the latest Windows Server 2022 image.
New-AzVm -ResourceGroupName 'myResourceGroup' -Name 'myVM' -Location 'eastus' -VirtualNetworkName 'myVNet' -SubnetName 'mySubnet' -SecurityGroupName 'myVM-nsg' -ImageName 'MicrosoftWindowsServer:WindowsServer:2022-Datacenter-azure-edition:latest'
Créez un groupe de sécurité réseau par défaut à l’aide de la commande az network nsg create.
# Create a default network security group.
az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Créez une machine virtuelle à l’aide de az vm create. Quand vous y êtes invité, entrez un nom d’utilisateur et un mot de passe.
# Create a virtual machine using the latest Windows Server 2022 image.
az vm create --resource-group 'myResourceGroup' --name 'myVM' --location 'eastus' --vnet-name 'myVNet' --subnet 'mySubnet' --public-ip-address '' --nsg 'myVM-nsg' --image 'Win2022AzureEditionCore'
Ajouter une règle de sécurité au groupe de sécurité réseau
Dans cette section, vous ajoutez une règle de sécurité au groupe de sécurité réseau associé à l’interface réseau de myVM. La règle refuse tout trafic entrant en provenance du réseau virtuel.
Dans la zone de recherche située en haut du portail, entrez groupes de sécurité réseau. Dans les résultats de la recherche, sélectionnez Groupes de sécurité réseau.
Dans la liste des groupes de sécurité réseau, sélectionnez myVM-nsg.
Sous Paramètres, sélectionnez Règles de sécurité de trafic entrant.
Sélectionnez Ajouter. Sous l’onglet Mise en réseau, entrez ou sélectionnez les valeurs suivantes :
Paramètre
Valeur
Source
Sélectionnez Balise du service.
Balise du service source
Sélectionnez VirtualNetwork.
Source port ranges
Entrez *.
Destination
sélectionnez N'importe laquelle.
Service
Sélectionnez Personnalisé.
Plages de ports de destination
Entrez *.
Protocol
sélectionnez N'importe laquelle.
Action
Sélectionner Rejeter.
Priorité
Entrez 1000.
Nom
Entrez DenyVnetInBound.
Sélectionnez Ajouter.
Utilisez la commande Add-AzNetworkSecurityRuleConfig pour créer une règle de sécurité qui refuse le trafic en provenance du réseau virtuel. Utilisez ensuite la commande Set-AzNetworkSecurityGroup pour mettre à jour le groupe de sécurité réseau avec la nouvelle règle de sécurité.
# Place the network security group configuration into a variable.
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup'
# Create a security rule that denies inbound traffic from the virtual network service tag.
Add-AzNetworkSecurityRuleConfig -Name 'DenyVnetInBound' -NetworkSecurityGroup $networkSecurityGroup `
-Access 'Deny' -Protocol '*' -Direction 'Inbound' -Priority '1000' `
-SourceAddressPrefix 'virtualNetwork' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '*'
# Updates the network security group.
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
Utilisez la commande az network nsg rule create pour ajouter au groupe de sécurité réseau une règle de sécurité qui refuse le trafic en provenance du réseau virtuel.
# Add to the network security group a security rule that denies inbound traffic from the virtual network service tag.
az network nsg rule create --name 'DenyVnetInBound' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '1000' \
--access 'Deny' --protocol '*' --direction 'Inbound' --source-address-prefixes 'virtualNetwork' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
Notes
L’étiquette de service VirtualNetwork représente l’espace d’adressage du réseau virtuel, tous les espaces d’adressage locaux connectés, les réseaux virtuels appairés ou connectés à une passerelle de réseau virtuel, l’adresse IP virtuelle de l’hôte et les préfixes d’adresse utilisés sur les itinéraires définies par l’utilisateur. Pour plus d'informations, consultez l’article relatif aux étiquettes de service.
Vérifier les règles de sécurité appliquées au trafic d’une machine virtuelle
Utilisez les diagnostics NSG pour vérifier les règles de sécurité appliquées au trafic provenant du sous-réseau Bastion vers la machine virtuelle.
Dans la zone de recherche en haut du portail, recherchez et sélectionnez Network Watcher.
Sous Outils de diagnostic réseau, sélectionnez Diagnostics NSG.
Sur la page Diagnostics NSG, entrez ou sélectionnez les valeurs suivantes :
Paramètre
Valeur
Ressource cible
Type de ressource cible
Sélectionnez Machine virtuelle.
Machine virtuelle
Sélectionnez la machine virtuelle myVM.
Détails du trafic
Protocol
Sélectionnez TCP. Les autres options disponibles sont les suivantes : N’importe lequel, UDP et ICMP.
Sens
Sélectionnez Entrant. L’autre option disponible est la suivante : Sortant.
Type de source
Sélectionnez Adresse IPv4/CIDR. L’autre option disponible est la suivante : Étiquette de service.
Adresse IPv4/CIDR
Entrez 10.0.1.0/26, qui correspond à la plage d’adresses IP du sous-réseau Bastion. Les valeurs acceptables sont les suivantes : adresse IP unique, adresses IP multiples, préfixe IP unique, préfixes IP multiples.
Adresse IP de destination
Conservez la valeur par défaut 10.0.0.4, qui correspond à l’adresse IP de myVM.
Port de destination
Entrez * pour inclure tous les ports.
Sélectionnez Exécuter les diagnostics de groupe de sécurité réseau pour lancer le test. Une fois que les diagnostics NSG ont terminé de vérifier toutes les règles de sécurité, ils affichent le résultat.
Le résultat montre que trois règles de sécurité ont été évaluées pour la connexion entrante à partir du sous-réseau Bastion :
GlobalRules : cette règle d’administration de la sécurité est appliquée au niveau du réseau virtuel à l’aide d’Azure Virtual Network Manager. La règle autorise le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
mySubnet-nsg : ce groupe de sécurité réseau est appliqué au niveau du sous-réseau (sous-réseau de la machine virtuelle). La règle autorise le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
myVM-nsg : ce groupe de sécurité réseau est appliqué au niveau de l’interface réseau (NIC). La règle refuse le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
Sélectionnez l’option Afficher les détails en regard de myVM-nsg pour afficher les détails des règles de sécurité de ce groupe de sécurité réseau et identifier la règle qui refuse le trafic.
Dans le groupe de sécurité réseau myVM-nsg, la règle de sécurité DenyVnetInBound refuse tout trafic provenant de l’espace d’adressage de l’étiquette de service VirtualNetwork vers la machine virtuelle. L’hôte Bastion utilise des adresses IP de la plage d’adresses 10.0.1.0/26, incluse dans l’étiquette de service VirtualNetwork, pour se connecter à la machine virtuelle. Par conséquent, la connexion à partir de l’hôte Bastion est refusée par la règle de sécurité DenyVnetInBound.
Le résultat montre que trois règles de sécurité ont été évaluées pour la connexion entrante à partir du sous-réseau Bastion :
GlobalRules : cette règle d’administration de la sécurité est appliquée au niveau du réseau virtuel à l’aide d’Azure Virtual Network Manager. La règle autorise le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
mySubnet-nsg : ce groupe de sécurité réseau est appliqué au niveau du sous-réseau (sous-réseau de la machine virtuelle). La règle autorise le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
myVM-nsg : ce groupe de sécurité réseau est appliqué au niveau de l’interface réseau (NIC). La règle refuse le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
Dans le groupe de sécurité réseau myVM-nsg, la règle de sécurité DenyVnetInBound refuse tout trafic provenant de l’espace d’adressage de l’étiquette de service VirtualNetwork vers la machine virtuelle. L’hôte Bastion utilise des adresses IP de 10.0.1.0/26, qui sont incluses dans l’étiquette de service VirtualNetwork, pour se connecter à la machine virtuelle. Par conséquent, la connexion à partir de l’hôte Bastion est refusée par la règle de sécurité DenyVnetInBound.
Le résultat montre que trois règles de sécurité ont été évaluées pour la connexion entrante à partir du sous-réseau Bastion :
GlobalRules : cette règle d’administration de la sécurité est appliquée au niveau du réseau virtuel à l’aide d’Azure Virtual Network Manager. La règle autorise le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
mySubnet-nsg : ce groupe de sécurité réseau est appliqué au niveau du sous-réseau (sous-réseau de la machine virtuelle). La règle autorise le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
myVM-nsg : ce groupe de sécurité réseau est appliqué au niveau de l’interface réseau (NIC). La règle refuse le trafic TCP entrant du sous-réseau Bastion vers la machine virtuelle.
Dans le groupe de sécurité réseau myVM-nsg, la règle de sécurité DenyVnetInBound refuse tout trafic provenant de l’espace d’adressage de l’étiquette de service VirtualNetwork vers la machine virtuelle. L’hôte Bastion utilise des adresses IP de 10.0.1.0/26, qui sont incluses dans l’étiquette de service VirtualNetwork, pour se connecter à la machine virtuelle. Par conséquent, la connexion à partir de l’hôte Bastion est refusée par la règle de sécurité DenyVnetInBound.
Ajouter une règle de sécurité pour autoriser le trafic provenant du sous-réseau Bastion
Pour la connexion à myVM à l’aide d’Azure Bastion, le trafic provenant du sous-réseau Bastion doit être autorisé par le groupe de sécurité réseau. Pour autoriser le trafic provenant de la plage d’adresses 10.0.1.0/26, ajoutez une règle de sécurité avec une priorité plus élevée (numéro de priorité inférieur) que la règle DenyVnetInBound ou modifiez cette dernière pour autoriser le trafic provenant du sous-réseau Bastion.
Vous pouvez ajouter la règle de sécurité au groupe de sécurité réseau à partir de la page Network Watcher qui affichait les détails de la règle de sécurité refusant le trafic vers la machine virtuelle.
Pour ajouter la règle de sécurité à partir de Network Watcher, sélectionnez + Ajouter une règle de sécurité, puis entrez ou sélectionnez les valeurs suivantes :
Paramètre
Valeur
Source
Sélectionnez Adresses IP.
Plages d’adresses IP/CIDR sources
Entrez 10.0.1.0/26, qui correspond à la plage d’adresses IP du sous-réseau Bastion.
Source port ranges
Entrez *.
Destination
sélectionnez N'importe laquelle.
Service
Sélectionnez Personnalisé.
Plages de ports de destination
Entrez *.
Protocol
sélectionnez N'importe laquelle.
Action
Sélectionnez Autoriser.
Priorité
Entrez 900, qui donne une priorité plus élevée que 1000, qui est utilisée pour la règle DenyVnetInBound.
Nom
Entrez AllowBastionConnections.
Sélectionnez Revérifier pour réexécuter la session de diagnostics. La session de diagnostics devrait à présent indiquer que le trafic provenant du sous-réseau Bastion est autorisé.
La règle de sécurité AllowBastionConnections autorise le trafic vers la machine virtuelle à partir de n’importe quelle adresse IP dans 10.0.1.0/26. Étant donné que l’hôte Bastion utilise des adresses IP de 10.0.1.0/26, sa connexion à la machine virtuelle est autorisée par la règle de sécurité AllowBastionConnections.
Utilisez la commande Add-AzNetworkSecurityRuleConfig pour créer une règle de sécurité qui autorise le trafic en provenance du sous-réseau Bastion. Utilisez ensuite la commande Set-AzNetworkSecurityGroup pour mettre à jour le groupe de sécurité réseau avec la nouvelle règle de sécurité.
# Place the network security group configuration into a variable.
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup'
# Create a security rule.
Add-AzNetworkSecurityRuleConfig -Name 'AllowBastionConnections' -NetworkSecurityGroup $networkSecurityGroup -Priority '900' -Access 'Allow' `
-Protocol '*' -Direction 'Inbound' -SourceAddressPrefix '10.0.1.0/26' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '*'
# Updates the network security group.
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
La règle de sécurité AllowBastionConnections autorise le trafic vers la machine virtuelle à partir de n’importe quelle adresse IP dans 10.0.1.0/26. Étant donné que l’hôte Bastion utilise des adresses IP de 10.0.1.0/26, sa connexion à la machine virtuelle est autorisée par la règle de sécurité AllowBastionConnections.
Utilisez la commande az network nsg rule create pour ajouter au groupe de sécurité réseau une règle de sécurité qui autorise le trafic en provenance du sous-réseau Bastion.
# Add a security rule to the network security group.
az network nsg rule create --name 'AllowBastionConnections' --resource-group 'myResourceGroup' --nsg-name 'myVM-nsg' --priority '900' \
--access 'Allow' --protocol '*' --direction 'Inbound' --source-address-prefixes '10.0.1.0/26' --source-port-ranges '*' \
--destination-address-prefixes '*' --destination-port-ranges '*'
La règle de sécurité AllowBastionConnections autorise le trafic vers la machine virtuelle à partir de n’importe quelle adresse IP dans 10.0.1.0/26. Étant donné que l’hôte Bastion utilise des adresses IP de 10.0.1.0/26, sa connexion à la machine virtuelle est autorisée par la règle de sécurité AllowBastionConnections.
Nettoyer les ressources
Quand vous n’avez plus besoin du groupe de ressources, supprimez-le, ainsi que toutes les ressources qu’il contient :