Exercice – Configurer l’accès réseau
Dans cet exercice, vous configurez l’accès à la machine virtuelle (VM) que vous avez créée plus tôt dans ce module.
Important
Le bac à sable Microsoft Learn doit encore être en cours d’exécution. Si l'environnement de test a expiré, vous devrez refaire l'exercice précédent (Exercice – Créer une machine virtuelle Azure).
Pour vous assurer que la machine virtuelle créée précédemment est toujours en cours d’exécution, utilisez la commande suivante :
az vm list
Si vous recevez une réponse vide []
, vous devez à nouveau effectuer le premier exercice de ce module. Si le résultat répertorie votre machine virtuelle actuelle et ses paramètres, vous pouvez continuer.
Pour l’heure, la machine virtuelle que vous avez créée et sur laquelle vous avez installé Nginx n’est pas accessible via Internet. Vous créez un groupe de sécurité réseau qui modifie cette situation en autorisant l’accès HTTP entrant sur le port 80.
Tâche 1 : Accéder à votre serveur web
Dans cette procédure, vous obtenez l’adresse IP de votre machine virtuelle et tentez d’accéder à la page d’accueil de votre serveur web.
Exécutez la commande
az vm list-ip-addresses
suivante pour obtenir l’adresse IP de votre machine virtuelle et stockez le résultat en tant que variable Bash :IPADDRESS="$(az vm list-ip-addresses \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name my-vm \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"
Exécutez la commande
curl
suivante pour télécharger la page d'accueil de votre serveur web :curl --connect-timeout 5 http://$IPADDRESS
L’argument
--connect-timeout
permet de permettre jusqu'à cinq secondes pour que la connexion se produise. Après cinq secondes, vous voyez un message d’erreur indiquant que le délai de connexion a expiré :curl: (28) Connection timed out after 5001 milliseconds
Ce message signifie que la machine virtuelle n’était pas accessible dans le délai imparti.
En guise d’étape facultative, essayez d’accéder au serveur web à partir d’un navigateur :
Exécutez la commande suivante pour afficher l'adresse IP de votre VM dans la console :
echo $IPADDRESS
Vous voyez une adresse IP, par exemple 23.102.42.235.
Copiez l’adresse IP que vous voyez dans le presse-papiers.
Ouvrez un nouvel onglet de navigateur et accédez à votre serveur web. Après quelques instants, vous constatez que la connexion ne se produit pas. Si vous attendez que le navigateur s’arrête, vous obtenez un résultat semblable à celui-ci :
Gardez cet onglet de navigateur ouvert pour plus tard.
Tâche 2 : Lister les règles de groupe de sécurité réseau actuelles
Votre serveur web n’était pas accessible. Pour en déterminer la raison, nous allons examiner vos règles actuelles de groupe de sécurité réseau.
Exécutez la commande
az network nsg list
suivante pour lister les groupes de sécurité réseau associés à votre machine virtuelle :az network nsg list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --query '[].name' \ --output tsv
Vous obtenez cette sortie :
my-vmNSG
Chaque machine virtuelle sur Azure est associée à au moins un groupe de sécurité réseau. Dans ce cas, Azure a créé pour vous un groupe de sécurité réseau appelé my-vmNSG.
Exécutez la commande
az network nsg rule list
suivante pour lister les règles associées au groupe de sécurité réseau nommé my-vmNSG :az network nsg rule list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG
Vous voyez un grand bloc de texte au format JSON dans la sortie. À l’étape suivante, vous exécuterez une commande similaire qui facilitera la lecture de cette sortie.
Exécutez la commande
az network nsg rule list
une deuxième fois. Cette fois, utilisez l’argument--query
pour récupérer uniquement le nom, la priorité, les ports affectés et l’accès (Autoriser ou Refuser) pour chaque règle. L’argument--output
formate la sortie sous forme de table pour en faciliter la lecture.az network nsg rule list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG \ --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \ --output table
Vous obtenez cette sortie :
Name Priority Port Access ----------------- ---------- ------ -------- default-allow-ssh 1000 22 Allow
Vous voyez la règle par défaut, default-allow-ssh. Cette règle autorise les connexions entrantes via le port 22 (SSH). SSH (Secure Shell) est un protocole utilisé sur sous Linux pour permettre aux administrateurs d'accéder au système à distance. La priorité de cette règle est 1000. Les règles sont traitées par ordre de priorité, avec les numéros les plus bas traités avant les numéros les plus élevés.
Par défaut, le groupe de sécurité réseau d’une VM Linux autorise l’accès au réseau uniquement via le port 22. Ce port permet aux administrateurs d’accéder au système. Vous devez également autoriser les connexions entrantes sur le port 80, ce qui permet l'accès sur HTTP.
Tâche 3 : Créer la règle de sécurité du réseau
Ici, vous créez une règle de sécurité de réseau qui autorise l’accès entrant sur le port 80 (HTTP).
Exécutez la commande
az network nsg rule create
suivante pour créer une règle appelée allow-http qui autorise l’accès entrant sur le port 80 :az network nsg rule create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG \ --name allow-http \ --protocol tcp \ --priority 100 \ --destination-port-range 80 \ --access Allow
À des fins d’apprentissage, définissez ici la priorité sur 100. Dans ce cas, la priorité n’a pas d’importance. Vous devriez tenir compte de la priorité si vous aviez des plages de ports qui se chevauchent.
Pour vérifier la configuration, exécutez
az network nsg rule list
pour afficher la liste mise à jour des règles :az network nsg rule list \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --nsg-name my-vmNSG \ --query '[].{Name:name, Priority:priority, Port:destinationPortRange, Access:access}' \ --output table
Vous voyez la règle default-allow-ssh et votre nouvelle règle, allow-http :
Name Priority Port Access ----------------- ---------- ------ -------- default-allow-ssh 1000 22 Allow allow-http 100 80 Allow
Tâche 4 : Accéder à nouveau à votre serveur web
Maintenant que vous avez configuré l’accès réseau sur le port 80, essayons d’accéder une seconde fois au serveur web.
Remarque
Une fois le groupe de sécurité réseau mis à jour, la propagation des règles mises à jour peut prendre un certain temps. Réessayez l’étape suivante, en marquant des pauses entre les différentes tentatives, jusqu’à parvenir aux résultats souhaités.
Exécutez la même commande
curl
que vous avez exécutée précédemment :curl --connect-timeout 5 http://$IPADDRESS
Vous obtenez cette réponse :
<html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html>
Une étape facultative consiste à actualiser l’onglet de votre navigateur pour pointer vers votre serveur web. La page d’accueil s’affiche :
Bon travail. Dans la pratique, vous pouvez créer un groupe de sécurité réseau autonome incluant les règles d’accès réseau entrantes et sortantes dont vous avez besoin. Si vous avez plusieurs machines virtuelles qui remplissent le même objectif, vous pouvez affecter ce groupe de sécurité réseau à chaque machine virtuelle au moment de sa création. Cette technique vous permet de contrôler l’accès réseau à plusieurs machines virtuelles sous un seul ensemble central de règles.
Nettoyage
Le bac à sable nettoie automatiquement vos ressources une fois que vous avez terminé ce module.
Il est important de vérifier à la fin d'un projet si les ressources que vous avez créées sont toujours nécessaires. Les ressources en fonctionnement peuvent engendrer des coûts supplémentaires. Vous pouvez supprimer les ressources une par une, ou choisir de supprimer le groupe de ressources afin de supprimer l’ensemble des ressources.