Dans cet article, vous allez apprendre à utiliser les diagnostics de groupe de sécurité réseau (NSG) d’Azure Network Watcher pour vérifier et résoudre les problèmes liés aux règles de sécurité appliquées à votre trafic Azure via les groupes de sécurité réseau et Azure Virtual Network Manager. Les diagnostics NSG vérifient si le trafic est autorisé ou refusé par les règles de sécurité appliquées.
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.
Prérequis
Compte Azure avec un abonnement actif.
Créez un compte gratuitement.
Azure Cloud Shell ou Azure PowerShell.
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.
Compte Azure avec un abonnement actif.
Créez un compte gratuitement.
Azure Cloud Shell ou Azure CLI.
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 un groupe de sécurité réseau par défaut à l’aide de la commande New-AzNetworkSecurityGroup.
# Create a network security group.
$networkSecurityGroup = New-AzNetworkSecurityGroup -Name 'mySubnet-nsg' -ResourceGroupName '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.
# Create subnets configuration.
$firstSubnet = New-AzVirtualNetworkSubnetConfig -Name 'mySubnet' -AddressPrefix '10.0.0.0/24' -NetworkSecurityGroup $networkSecurityGroup
$secondSubnet = New-AzVirtualNetworkSubnetConfig -Name 'AzureBastionSubnet' -AddressPrefix '10.0.1.0/26'
Créez un réseau virtuel à l’aide de la commande New-AzVirtualNetwork.
# Create a virtual network.
$vnet = New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $firstSubnet, $secondSubnet
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.
# Create an Azure Bastion host.
New-AzBastion -ResourceGroupName 'myResourceGroup' -Name 'myVNet-Bastion' -PublicIpAddressRgName 'myResourceGroup' -PublicIpAddressName 'myBastionIp' -VirtualNetwork $vnet
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'
Créez un réseau virtuel avec la commande az network vnet create.
az network vnet create --resource-group 'myResourceGroup' --name 'myVNet' --subnet-name 'mySubnet' --subnet-prefixes 10.0.0.0/24 --network-security-group 'mySubnet-nsg'
Créez un sous-réseau pour Azure Bastion à l’aide de la commande az network vnet subnet create.
# Create AzureBastionSubnet.
az network vnet subnet create --name 'AzureBastionSubnet' --resource-group 'myResourceGroup' --vnet-name 'myVNet' --address-prefixes '10.0.1.0/26'
Créez une adresse IP publique pour l’hôte bastion à l’aide de la commande az network public-ip create.
# Create a public IP address resource.
az network public-ip create --resource-group 'myResourceGroup' --name 'myBastionIp' --sku Standard
Créez un hôte Bastion à l’aide de la commande az network bastion create.
az network bastion create --name 'myVNet-Bastion' --public-ip-address 'myBastionIp' --resource-group 'myResourceGroup' --vnet-name 'myVNet'
Important
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.
Dans la zone de recherche située en haut du portail, entrez machines virtuelles. Sélectionnez Machines virtuelles dans les résultats de la recherche.
Sélectionnez + Créer, puis Machine virtuelle Azure.
Dans Créer une machine virtuelle, entrez ou sélectionnez les valeurs suivantes sous l’onglet Fonctions base :
Paramètre |
Valeur |
Détails du projet |
|
Abonnement |
Sélectionnez votre abonnement Azure. |
Groupe de ressources |
Sélectionnez myResourceGroup. |
Détails de l’instance |
|
Nom de la machine virtuelle |
Entrez myVM. |
Région |
Sélectionnez (États-Unis) USA Est. |
Options de disponibilité |
Sélectionnez Aucune redondance d’infrastructure requise. |
Type de sécurité |
Sélectionnez Standard. |
Image |
Sélectionnez Centre de données Windows Server 2022 : Édition Azure - x64 Gen2. |
Taille |
Choisissez une taille ou conservez le paramètre par défaut. |
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. |
Sélectionnez l'onglet Mise en réseau ou choisissez Suivant : Disques, puis Suivant : Mise en réseau.
Sous l’onglet Mise en réseau, sélectionnez les valeurs suivantes :
Paramètre |
Valeur |
Interface réseau |
|
Réseau virtuel |
Sélectionnez myVNet. |
Subnet |
Sélectionnez la valeur par défaut. |
Adresse IP publique |
Sélectionnez Aucun. |
Groupe de sécurité réseau de la carte réseau |
Sélectionnez De base. |
Aucun port d’entrée public |
Sélectionnez Aucun. |
Sélectionnez Revoir + créer.
Passez en revue les paramètres, puis sélectionnez Créer.
Créez un groupe de sécurité réseau par défaut à l’aide de la commande New-AzNetworkSecurityGroup.
# Create a default network security group.
New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location eastus
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.
Utilisez la commande Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic pour démarrer la session de diagnostics NSG.
# Create a profile for the diagnostic session.
$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction Inbound -Protocol Tcp -Source 10.0.1.0/26 -Destination 10.0.0.4 -DestinationPort *
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -Name 'myVM' -ResourceGroupName 'myResourceGroup'
# Start the the NSG diagnostics session.
Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location 'eastus' -TargetResourceId $vm.Id -Profile $profile | Format-List
Une sortie similaire à la sortie suivante est renvoyée :
Results : {Microsoft.Azure.Commands.Network.Models.PSNetworkConfigurationDiagnosticResult}
ResultsText : [
{
"Profile": {
"Direction": "Inbound",
"Protocol": "Tcp",
"Source": "10.0.1.0/26",
"Destination": "10.0.0.4",
"DestinationPort": "*"
},
"NetworkSecurityGroupResult": {
"SecurityRuleAccessResult": "Deny",
"EvaluatedNetworkSecurityGroups": [
{
"NetworkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"MatchedRule": {
"RuleName": "VirtualNetwork",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "VirtualNetwork",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"MatchedRule": {
"RuleName": "DefaultRule_AllowVnetInBound",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "DefaultRule_AllowVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"MatchedRule": {
"RuleName": "UserRule_DenyVnetInBound",
"Action": "Deny"
},
"RulesEvaluationResult": [
{
"Name": "UserRule_DenyVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
}
]
}
}
]
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.
Utilisez la commande az network watcher run-configuration-diagnostic pour démarrer la session de diagnostics NSG.
# Start the the NSG diagnostics session.
az network watcher run-configuration-diagnostic --resource 'myVM' --resource-group 'myResourceGroup' --resource-type 'virtualMachines' --direction 'Inbound' --protocol 'TCP' --source '10.0.1.0/26' --destination '10.0.0.4' --port '*'
Une sortie similaire à la sortie suivante est renvoyée :
{
"results": [
{
"networkSecurityGroupResult": {
"evaluatedNetworkSecurityGroups": [
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
"matchedRule": {
"action": "Allow",
"ruleName": "VirtualNetwork"
},
"networkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "VirtualNetwork",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
"matchedRule": {
"action": "Allow",
"ruleName": "DefaultRule_AllowVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "DefaultRule_AllowVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myvm36",
"matchedRule": {
"action": "Deny",
"ruleName": "UserRule_DenyVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "UserRule_DenyVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
}
],
"securityRuleAccessResult": "Deny"
},
"profile": {
"destination": "10.0.0.4",
"destinationPort": "*",
"direction": "Inbound",
"protocol": "TCP",
"source": "10.0.1.0/26"
}
}
]
}
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
Utilisez la commande Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic pour effectuer une revérification dans une nouvelle session de diagnostics NSG.
# Create a profile for the diagnostic session.
$profile = New-AzNetworkWatcherNetworkConfigurationDiagnosticProfile -Direction 'Inbound' -Protocol 'Tcp' -Source '10.0.1.0/26' -Destination '10.0.0.4' -DestinationPort '*'
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -Name 'myVM' -ResourceGroupName 'myResourceGroup'
# Start the diagnostic session.
Invoke-AzNetworkWatcherNetworkConfigurationDiagnostic -Location 'eastus' -TargetResourceId $vm.Id -Profile $profile | Format-List
Une sortie similaire à la sortie suivante est renvoyée :
Results : {Microsoft.Azure.Commands.Network.Models.PSNetworkConfigurationDiagnosticResult}
ResultsText : [
{
"Profile": {
"Direction": "Inbound",
"Protocol": "Tcp",
"Source": "10.0.1.0/26",
"Destination": "10.0.0.4",
"DestinationPort": "*"
},
"NetworkSecurityGroupResult": {
"SecurityRuleAccessResult": "Allow",
"EvaluatedNetworkSecurityGroups": [
{
"NetworkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"MatchedRule": {
"RuleName": "VirtualNetwork",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "VirtualNetwork",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"MatchedRule": {
"RuleName": "DefaultRule_AllowVnetInBound",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "DefaultRule_AllowVnetInBound",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
},
{
"NetworkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"MatchedRule": {
"RuleName": "UserRule_AllowBastionConnections",
"Action": "Allow"
},
"RulesEvaluationResult": [
{
"Name": "UserRule_AllowBastionConnections",
"ProtocolMatched": true,
"SourceMatched": true,
"SourcePortMatched": true,
"DestinationMatched": true,
"DestinationPortMatched": true
}
]
}
]
}
}
]
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 '*'
Utilisez la commande az network watcher run-configuration-diagnostic pour effectuer une revérification dans une nouvelle session de diagnostics NSG.
# Start the the NSG diagnostics session.
az network watcher run-configuration-diagnostic --resource 'myVM' --resource-group 'myResourceGroup' --resource-type 'virtualMachines' --direction 'Inbound' --protocol 'TCP' --source '10.0.1.0/26' --destination '10.0.0.4' --port '*'
Une sortie similaire à la sortie suivante est renvoyée :
{
"results": [
{
"networkSecurityGroupResult": {
"evaluatedNetworkSecurityGroups": [
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
"matchedRule": {
"action": "Allow",
"ruleName": "VirtualNetwork"
},
"networkSecurityGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkAdmin/providers/Microsoft.Network/networkManagers/GlobalRules",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "VirtualNetwork",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet/subnets/mySubnet",
"matchedRule": {
"action": "Allow",
"ruleName": "DefaultRule_AllowVnetInBound"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mySubnet-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "DefaultRule_AllowVnetInBound",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
},
{
"appliedTo": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myvm36",
"matchedRule": {
"action": "Allow",
"ruleName": "UserRule_AllowBastionConnections"
},
"networkSecurityGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myVM-nsg",
"rulesEvaluationResult": [
{
"destinationMatched": true,
"destinationPortMatched": true,
"name": "UserRule_AllowBastionConnections",
"protocolMatched": true,
"sourceMatched": true,
"sourcePortMatched": true
}
]
}
],
"securityRuleAccessResult": "Allow"
},
"profile": {
"destination": "10.0.0.4",
"destinationPort": "*",
"direction": "Inbound",
"protocol": "TCP",
"source": "10.0.1.0/26"
}
}
]
}
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 :
Dans la zone de recherche située en haut du portail, entrez myResourceGroup. Sélectionnez myResourceGroup dans les résultats de la recherche.
Sélectionnez Supprimer le groupe de ressources.
Dans Supprimer un groupe de ressources, entrez myResourceGroup, puis sélectionnez Supprimer.
Sélectionnez Supprimer pour confirmer la suppression du groupe de ressources et de toutes ses ressources.
Utilisez Remove-AzResourceGroup pour supprimer le groupe de ressources ainsi que toutes les ressources qu’il contient.
# Delete the resource group and all the resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force
Utilisez az group delete pour supprimer le groupe de ressources, ainsi que toutes les ressources qu’il contient.
# Delete the resource group and all the resources it contains.
az group delete --name 'myResourceGroup' --yes --no-wait
Contenu connexe