Dans un précédent article, je vous avais présenté en 2019 l’arrivée d’une nouvelle fonctionnalité de Azure, à savoir Bastion. Azure Bastion vous permet de vous connecter au SSH et/ou RDP à vos serveurs Linux et/ou Windows sans avoir à ouvrir les ports sur Internet c’est-à-dire sans avoir besoin de créer de « endpoint« .
Utilisation de Azure Bastion
Le principe est simple… Une fois que vous avez déployé ce composant vous pouvez vous connecter et administrer vos différents serveurs directement via l’interface web embarquée du portail Azure. Il n’y a donc pas non plus besoin d’un outil externe tel que Remote Desktop, PuTTY… ou d’autres alternatives.
En termes de sécurité, c’est donc idéal car cela signifie que les personnes qui vont gérer vos serveurs devront d’abord se connecter au portail Azure. Ce qui signifie que vous pourrez en amont également protéger et restreindre ces accès via des Conditional Access par exemple. 🙂
Le principe de déploiement est très simple. Vous devez créer un composant Azure Bastion et l’associer à un Subnet bien spécifique. C’est le seul pré-requis : vous devez disposer d’un subnet qui porte le nom de AzureBastionSubnet (respectez la convention de nommage). Si vous n’en avez pas déjà un, celui-ci sera créé lors de la génération de votre objet Azure Bastion – mais vous pouvez également le créer préalablement.
Une fois que c’est fait, vous pourrez alors accéder à vos machines virtuelles directement depuis l’interface web du portail Azure. Le principe est très simple, vous sélectionnez la VM désirée dans l’interface du portail, puis sur le bouton tout en haut Connect vous aurez la possibilité d’utiliser l’option Bastion.
Une fois que vous avez cliqué sur cette option, vous pourrez alors saisir les identifiants à présenter à la machine virtuelle. Point intéressant, vous pouvez utiliser des identifiants d’un domaine Active Directory ou bien des identifiants locaux d’une VM – cela fonctionne dans les 2 cas.
Dans mon cas, j’accède à une VM Windows donc si je clique sur le bouton Connect. Je peux ensuite voir l’interface graphique et le bureau de ma VM Windows.
Vous verrez que les performances sont très agréables et je n’ai jamais observé de latences particulières de mon côté. De mon point de vue, c’est une vraie solution qui me permet d’éviter d’avoir à ouvrir des ports sur Internet et de pouvoir protéger les accès à mes ressources depuis le portail Azure ! 😉
Protéger votre Azure Bastion par un NSG
Dans certains cas de figure, vous pouvez souhaiter protéger votre Azure Bastion par un Network Security Group. Selon la façon dont vous mettez en place votre infrastructure – ce n’est pas un impératif. Cela étant, typiquement dans mon organisation l’équipe SoC détecte la non protection d’un Azure Bastion par un NSG. Je dois donc nécessairement affecter un NSG à mon subnet AzureBastionSubnet.
Mais pour que votre Azure Bastion fonctionne correctement, il faut que le NSG que vous allez créer dispose de la bonne configuration sinon vous ne pourrez pas affecter votre NSG au subnet de votre Azure Bastion. Dans ce cas, vous aurez probablement le message d’erreur ci-dessous :
Du coup, comment savoir quelles sont les bonnes ouvertures de flux à configurer au niveau de votre NSG ? Et bien, vous retrouverez toutes les informations sur le lien suivant : https://docs.microsoft.com/en-us/azure/bastion/bastion-nsg.
Au niveau des règles Inbound, vous devrez avoir au moins cette configuration :
Au niveau des règles Outbound, vous devrez également avoir les règles ci-dessous :
A partir du moment où vous mettez cette configuration en place, votre Azure Bastion fonctionnera sans problème même avec votre nouveau NSG. 🙂
Je vous invite à consulter la documentation officielle sur le site de Microsoft en suivant ce lien. 🙂