Utilisation d'Azure Bastion pour un accès sécurisé aux machines virtuelles

Utilisation d'Azure Bastion pour un accès sécurisé aux machines virtuelles

01/04/2025

Cet article technique et pédagogique vise à guider les analystes de sécurité, les administrateurs informatiques et les ingénieurs système dans la mise en œuvre et la configuration d'Azure Bastion pour un accès sécurisé aux machines virtuelles (VM) dans Azure. Dans un environnement cloud, la sécurité des accès aux VM est essentielle pour protéger les ressources et les données. Traditionnellement, l'accès aux machines virtuelles via RDP (Remote Desktop Protocol) ou SSH (Secure Shell) nécessitait d'exposer les ports publics à Internet, ce qui augmentait considérablement la surface d'attaque. Azure Bastion offre une solution robuste et sécurisée pour éliminer cette exposition en fournissant un accès sécurisé sans avoir besoin de VPN ou d'adresses IP publiques [1].

Présentation

La migration des infrastructures vers le cloud a apporté de nombreux avantages en termes d'évolutivité et de flexibilité. Cependant, la sécurité reste une préoccupation majeure. L'accès aux machines virtuelles est un point critique, car elles sont souvent au cœur de nombreuses applications et services. Exposer les ports RDP (3389) ou SSH (22) directement à Internet est une pratique de sécurité peu judicieuse, car cela en fait des cibles faciles pour les attaques par force brute et autres exploits [2].

Azure Bastion est un service Platform as a Service (PaaS) entièrement géré que vous provisionnez dans votre réseau virtuel. Il vous permet de vous connecter aux machines virtuelles de votre réseau virtuel directement depuis le portail Azure, en utilisant RDP et SSH, sans avoir besoin d'adresses IP publiques sur les machines virtuelles, d'agents installés sur les machines virtuelles ou de clients/configurations spéciales sur votre machine locale. Bastion agit comme un proxy sécurisé, acheminant le trafic RDP/SSH via une connexion sécurisée TLS (Transport Layer Security) vers le navigateur de l'utilisateur, protégeant ainsi les machines virtuelles d'une exposition directe à Internet [3].

Ce guide pratique couvrira les conditions préalables, comment provisionner et configurer Azure Bastion, comment se connecter aux machines virtuelles Windows et Linux à l'aide de RDP et SSH, comment gérer les sessions et comment tester et valider l'accès sécurisé. Des instructions étape par étape, des exemples pratiques et des explications concises seront fournis afin que le lecteur puisse implémenter, tester et valider ces fonctionnalités. De plus, des conseils de sécurité, des contrôles de conformité et des bonnes pratiques seront abordés pour garantir un accès à distance sûr et efficace à vos machines virtuelles, de manière autonome, professionnelle et fiable.

Pourquoi Azure Bastion est-il crucial pour l'accès aux machines virtuelles ?

  • Sécurité améliorée : élimine le besoin d'adresses IP publiques sur les machines virtuelles, les protégeant ainsi contre les attaques directes provenant d'Internet. L'accès se fait via TLS via le navigateur.
  • Accès simplifié : se connecte aux machines virtuelles directement depuis le portail Azure, sans avoir besoin de clients RDP/SSH natifs ou de VPN.
  • Zero Trust : s'aligne sur les principes de Zero Trust, garantissant que l'accès est toujours vérifié et autorisé, quel que soit l'emplacement de l'utilisateur.
  • Audit et surveillance : vous permet de surveiller et de gérer les sessions, avec l'option d'enregistrement de session (disponible sur la référence SKU Premium) à des fins d'audit et de conformité.
  • Coût et complexité réduits : en tant que service PaaS entièrement géré, il élimine le besoin de gérer vos propres jumpbox ou VPN complexes.
  • Protection contre l'analyse des ports : les machines virtuelles n'ont pas d'adresse IP publique, ce qui les rend invisibles aux scanners de ports et aux robots malveillants sur Internet.

Prérequis

Pour implémenter Azure Bastion, vous aurez besoin des éléments suivants :

  1. Abonnement Azure actif : un abonnement Azure pour créer et gérer des ressources.
  2. Accès administrateur : un compte avec le rôle de « Propriétaire » ou « Contributeur » sur l'abonnement ou le groupe de ressources où se trouvent les machines virtuelles.
  3. Réseau virtuel Azure (VNet) : un réseau virtuel existant qui contient les machines virtuelles auxquelles vous souhaitez vous connecter.
  4. Sous-réseau dédié pour Azure Bastion : un sous-réseau au sein de votre réseau virtuel portant le nom « AzureBastionSubnet » et un préfixe d'au moins « /27 » (ex : « 10.0.2.0/27 »). Ce sous-réseau est exclusif à Bastion et ne peut pas être utilisé pour d'autres ressources [4].
  5. Machines virtuelles (VM) : machines virtuelles Windows ou Linux existantes dans le même réseau virtuel (ou réseaux virtuels appairés) auquel vous souhaitez vous connecter.

Étape par étape : configuration d'Azure Bastion

Provisionnons Azure Bastion et utilisons-le pour nous connecter à une machine virtuelle.

1. Création du sous-réseau AzureBastionSubnet

Avantet déployez Bastion, vous devez créer un sous-réseau dédié.

  1. Ouvrez votre navigateur et accédez au portail Azure : « https://portal.azure.com ».
  2. Connectez-vous avec un compte disposant des autorisations nécessaires.
  3. Dans le champ de recherche supérieur, tapez « Réseaux virtuels » et sélectionnez-le parmi les résultats.
  4. Sélectionnez le réseau virtuel où se trouvent vos VM.
  5. Dans le volet de navigation de gauche, sous « Paramètres », sélectionnez Sous-réseaux.
  6. Cliquez sur « +Sous-réseau ».

  7. Ajouter un sous-réseau :

    • Nom : saisissez « AzureBastionSubnet » (ce nom est obligatoire).
    • Plage d'adresses de sous-réseau : fournissez une plage d'adresses avec un préfixe d'au moins « /27 » (par exemple « 10.0.2.0/27 »).
    • Laissez les autres paramètres par défaut.
  8. Cliquez sur Enregistrer.

    • Explication : Le AzureBastionSubnet est l'endroit où le service Azure Bastion sera déployé. Il est crucial que le nom soit exactement « AzureBastionSubnet » afin que le service puisse être correctement provisionné.

2. Provisionnement d'Azure Bastion

Maintenant que le sous-réseau est prêt, nous pouvons déployer le service Bastion.

  1. Dans le portail Azure, dans le champ de recherche supérieur, tapez « Bastion » et sélectionnez-le dans les résultats.
  2. Cliquez sur « + Créer ».

  3. Bases :

    • Abonnement : Sélectionnez votre abonnement.
    • Groupe de ressources : sélectionnez le même groupe de ressources que votre réseau virtuel.
    • Nom : donnez un nom à votre instance Bastion (par exemple myBastionHost).
    • Région : sélectionnez la même région que votre réseau virtuel.
    • Niveau : sélectionnez « Basique » (pour RDP/SSH de base) ou « Standard » (pour des fonctionnalités supplémentaires telles que l'enregistrement de session, le partage de liens, etc.). Pour ce guide, nous utiliserons « Basic ».
  4. Réseau virtuel :

    • Réseau virtuel : sélectionnez le réseau virtuel sur lequel vous avez créé le « AzureBastionSubnet ».
    • Sous-réseau : Le AzureBastionSubnet sera sélectionné automatiquement.
    • Adresse IP publique : cliquez sur « Créer un nouveau ». Donnez un nom à l'adresse IP publique (par exemple myBastionPublicIP). Cette adresse IP publique est destinée au service Bastion et n'est pas exposée à vos VM.
  5. Cliquez sur « Réviser + créer », puis sur Créer.

    • Explication : le provisionnement d'Azure Bastion peut prendre 5 à 10 minutes. Une fois déployé, il sera prêt à être utilisé pour accéder à vos VM.

3. Connexion à une VM Windows via RDP

Connectons-nous à une VM Windows sans exposer son port RDP.

  1. Dans le portail Azure, accédez à votre VM Windows.
  2. Dans le volet de navigation de gauche, sélectionnez Connecter.
  3. Sélectionnez Bastion.
  4. Saisissez les informations d'identification et le mot de passe de votre utilisateur de machine virtuelle Windows.
  5. Cliquez sur Connecter.

    • Action attendue : un nouvel onglet de navigateur s'ouvrira et vous verrez le bureau de votre machine virtuelle Windows. La connexion est entièrement basée sur HTML5 dans le navigateur.

4. Connexion à une VM Linux via SSH

Connectons-nous à une VM Linux sans exposer son port SSH.

  1. Dans le portail Azure, accédez à votre VM Linux.
  2. Dans le volet de navigation de gauche, sélectionnez Connecter.
  3. Sélectionnez Bastion.
  4. Choisissez le « Type d'authentification » : « Nom d'utilisateur et mot de passe » ou « Clé privée SSH ».
    • Si « Nom d'utilisateur et mot de passe », entrez vos informations d'identification de VM Linux.
    • Si SSH Private Key, téléchargez votre fichier de clé privée (.pem ou .ppk).
  5. Cliquez sur Connecter.

    • Action attendue : un nouvel onglet de navigateur s'ouvrira et vous verrez le terminal de votre VM Linux, vous permettant d'exécuter des commandes SSH.

Validation et tests

Il est crucial de valider que l’accès via Azure Bastion fonctionne comme prévu et que les machines virtuelles ne sont pas accessibles par d’autres moyens.

1. Vérification de la connectivité du bastion

  1. Scénario : essayez d'accéder à vos machines virtuelles Windows et Linux à l'aide d'Azure Bastion, conformément aux étapes 3 et 4 ci-dessus.
  2. Action attendue : les connexions RDP et SSH doivent être établies avec succès via le navigateur.
  3. Vérification :
    • Confirmez que vous pouvez interagir avec le bureau de la VM Windows et exécuter des commandes dans le terminal de la VM Linux.

2. Vérification de l'inaccessibilité directe des VM

  1. Scénario : essayez d'accéder à vos VM directement depuis Internet à l'aide d'un client RDP ou SSH, en pointant vers l'adresse IP publique de la VM (le cas échéant) ou l'adresse IP privée (si vous êtes en dehors du réseau virtuel).
  2. Action attendue : les tentatives de connexion directe devraient échouer car les ports RDP/SSH ne doivent pas être exposés publiquement.
  3. Vérification : *Si vos machines virtuelles ont des adresses IP publiques, vérifiez les règles du groupe de sécurité réseau (NSG) associées à l'interface réseau ou au sous-réseau de la machine virtuelle. Assurez-vous que les ports 3389 (RDP) et 22 (SSH) ne sont pas ouverts à « Any » ou « Internet ».
    • Idéalement, les machines virtuelles accessibles via Bastion ne devraient pas avoir d'adresses IP publiques associées.

3. Surveillance de session Bastion (SKU standard)

Si vous avez provisionné Bastion avec la référence SKU Standard, vous pouvez surveiller les sessions actives.

  1. Dans le portail Azure, accédez à votre ressource Azure Bastion (myBastionHost).
  2. Dans le volet de navigation de gauche, sous « Surveillance », sélectionnez Sessions.
  3. Vous verrez une liste des sessions RDP et SSH actives, y compris l'utilisateur, l'adresse IP source et la VM de destination.

Conseils de sécurité et bonnes pratiques

  • Supprimer les adresses IP publiques des machines virtuelles : après avoir configuré Azure Bastion, supprimez toutes les adresses IP publiques de vos machines virtuelles. C'est le principal avantage de sécurité de Bastion.
  • Configurer les NSG de manière appropriée : assurez-vous que les groupes de sécurité réseau (NSG) de vos sous-réseaux de VM et « AzureBastionSubnet » sont correctement configurés pour autoriser uniquement le trafic nécessaire. Bastion a besoin d'accéder aux ports RDP/SSH privés des VM, mais les VM n'ont pas besoin d'un accès public entrant.
  • Principe du moindre privilège : attribuez uniquement les autorisations nécessaires pour que les utilisateurs puissent se connecter aux machines virtuelles via Bastion. Azure RBAC peut être utilisé pour contrôler qui peut utiliser Bastion.
  • Authentification forte : utilisez toujours une authentification forte pour vos informations d'identification de VM. Combinez-le avec Azure AD pour l'authentification et, si possible, l'accès conditionnel pour exiger MFA pour l'accès au portail Azure, qui à son tour contrôle l'accès à Bastion.
  • Enregistrement de session (SKU Premium) : pour les environnements qui nécessitent une conformité et un audit stricts, envisagez d'utiliser le SKU Azure Bastion Premium pour enregistrer les sessions RDP et SSH. Cela fournit un enregistrement visuel de ce qui a été fait sur les machines virtuelles.
  • Surveillance des journaux : surveillez les journaux d'activité Azure pour Bastion et les journaux de sécurité de vos machines virtuelles afin de détecter les activités suspectes ou les tentatives d'accès non autorisées.
  • Mises à jour et correctifs : gardez vos machines virtuelles à jour avec les derniers correctifs de sécurité pour atténuer les vulnérabilités internes.

Dépannage courant

  • Je ne vois pas l'option Bastion lorsque j'essaie de me connecter à la VM :
    • Vérifiez qu'Azure Bastion a été provisionné dans le même réseau virtuel (ou réseau virtuel appairé) que la machine virtuelle.
    • Assurez-vous que AzureBastionSubnet existe et possède le préfixe d'adresse correct (/27 ou supérieur).
    • Vérifiez si Bastion est à l'état « En cours d'exécution » dans le portail Azure.
  • Erreur de connexion RDP/SSH via Bastion :
    • Identifiants non valides : vérifiez que les informations d'identification de l'utilisateur et du mot de passe (ou la clé SSH) sont correctes pour la VM.
    • Problèmes NSG : confirmez que le NSG du sous-réseau de la VM autorise le trafic entrant sur les ports 3389 (RDP) ou 22 (SSH) de « AzureBastionSubnet ».
    • Pare-feu VM : Vérifiez que le pare-feu interne de la VM ne bloque pas les connexions RDP/SSH.
    • Le service RDP/SSH n'est pas en cours d'exécution : assurez-vous que le service RDP (pour Windows) ou SSH (pour Linux) est en cours d'exécution sur la VM.
  • Performances lentes ou déconnexions :
    • Vérifiez la bande passante de votre connexion Internet. Bastion diffuse la vidéo de la session sur votre navigateur.
    • Pensez à utiliser les SKU Standard ou Premium de Bastion, qui offrent de meilleures performances et des fonctionnalités supplémentaires.
    • Vérifiez l'utilisation élevée du processeur ou de la mémoire sur la VM cible, ce qui peut affecter les performances de la session.
  • Je ne parviens pas à accéder aux ressources internes de la VM via Bastion :
    • Azure Bastion fournit la connectivité à la VM. Une fois connecté à la VM, l'accès aux autres ressources internes du réseau virtuel dépendra des propres configurations réseau de la VM et des règles NSG applicables.

Conclusion

Azure Bastion est un composant essentiel pour la sécurité des environnements cloud, offrant une méthode sécurisée et simplifiée pour accéder aux machines virtuelles. En éliminant l’exposition directe des ports RDP/SSH à Internet, cela réduit considérablement la surface d’attaque et renforce la posture de sécurité globale. Une mise en œuvre minutieuse, l'intégration des meilleures pratiques de sécurité et une surveillance continue sont essentielles pour maximiser les avantages de Bastion. Avec ce gGrâce à cette approche pratique, les professionnels de la sécurité et les administrateurs informatiques seront bien équipés pour configurer, valider et gérer Azure Bastion, garantissant ainsi que l'accès à leurs machines virtuelles est toujours sécurisé et conforme.


Références :

[1] Microsoft Apprendre. Qu'est-ce qu'Azure Bastion ?. Disponible sur : https://learn.microsoft.com/pt-br/azure/bastion/bastion-overview [2] Microsoft Apprendre. Considérations de conception et de planification pour l'utilisation d'Azure Bastion pour permettre un accès à distance sécurisé aux machines virtuelles dans Azure. Disponible sur : https://learn.microsoft.com/pt-br/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-virtual-machine-remote-access [3] Microsoft Apprendre. Connectez-vous à une machine virtuelle Windows à l'aide de RDP - Azure Bastion. Disponible sur : https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-rdp-windows [4] Microsoft Apprendre. Configurer un hôte Bastion. Disponible sur : https://learn.microsoft.com/pt-br/azure/bastion/tutorial-create-host-portal [5] Microsoft Apprendre. Connectez-vous à une machine virtuelle Linux à l'aide de SSH - Azure Bastion. Disponible sur : https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-ssh-linux [6] Microsoft Apprendre. Surveillance et gestion des sessions Azure Bastion. Disponible sur : https://learn.microsoft.com/pt-br/azure/bastion/session-monitoring [7] Microsoft Apprendre. Configurer l'enregistrement de la session Bastion. Disponible sur : https://learn.microsoft.com/pt-br/azure/bastion/session-recording