Azure – Azure Bastion

Logo_Azure

Nous allons essayer de faire le tour du service Azure Bastion.

En effet, ce “petit” service Azure est à mon gout assez peu utilisé et maitrisé alors qu’il offre de nombreux avantages. Que ce soit point de vue sécurité en limitant l’exposition des ports d’administration (SSH 22 et RDP 3389), de l’utilisation de MFA pour sécuriser les accès (Azure Portal oblige) et par ça simplicité de mise en place.

Sommaire

PICTO_AVERTISSEMENT

Depuis la mise à jour de novembre 2021, quelques changements ont eu lieux :

  • AzureBastionSubnet, le masque est passé à minima de “/27” à “/26”.
  • La version “Standard” a quitté la preview pour passer en GA.

Qu'est ce qu'Azure Bastion ?

Azure Bastion est un service SaaS proposé dans Azure. Ce service permet d’administrer les ressources de type IaaS via les protocoles :

  • RDP 3389 pour Windows.
  • SSH 22 pour Linux.

Azure Bastion est instancié au sein d’un vNet dans un subnet dédié (AzureBastionSubnet /26). L’ensemble des ressources du vNet ou des vNet routés sur le vNet hébergeant Azure Bastion sont accessibles via celui-ci.

AzBastion_Pres_0010
https://docs.microsoft.com/en-us/azure/bastion/bastion-overview
PICTO_NOTE_REMARQUE

Azure Bastion n’offre pas la possibilité d’enregistrer les sessions. Cette feature a été évoquée courant l’année 2019, mais à ce jour elle n’a pas encore vu le jour et n’est pas non plus dans la roadmap du produit.

Prix et SKU

Deux versions d’Azure Bastion sont disponibles :

  • Basic
  • Standard (en GA depuis novembre 2021)

Généralement la version Basic répond à bon nombre des besoins.

La différence entre les deux versions est essentiellement sur la mise à l’échelle en cas d’utilisation intensive de la solution et la configuration du port et protocoles pour manager les machines.

AzBastion_Pres_0020
https://docs.microsoft.com/en-us/azure/bastion/bastion-overview

En version Basic, 2 hôtes sont déployés lors du déploiement d’Azure Bastion (pas plus pas moins). Microsoft estime que chaque hôte peut supporter 10 à 12 connexions. Ce qui donne environ 20 connexions maximum pour la version Basic (accès à 20 VM simultanément).

Concernant le prix du service, il faut compter environ 138€/mois pour la version Basic. Et 211€ pour la version Standard + env 100€ par hôte supplémentaire.

AzBastion_Pres_0030
Basic
AzBastion_Pres_0040
Standard

Portée du Bastion

Quid du filtrage du protocole via NSG ou autre solution de firewalling, Azure Bastion permet d’administrer l’ensemble des machines dans un Azure via les protocoles RDP et SSH à condition que ces machines soit soit dans le même vNet ou dans un vNet voisin qui lui est routé.

Pour faire simple, il est conseillé de déployer Azure Bastion au sein du Hub si votre architecture réseau le permet. Azure Bastion supporte depuis peu le vNet peering. Cependant il ne supporte pas les scénarios avec routage /UDR.

Dans le cas d’environnement applicatif autonome, il convient de déployer un Azure Bastion dédié par silo applicatif.

Azure Bastion doit avoir un subnet dédié nommé “AzureBastionSubnet” possédant un masque à minima en “/26”.

Dans l’exemple ci-dessous, la machine “Front01-App01” ne sera pas accessible depuis un Azure Bastion qui serait hébergé dans le Hub.

PICTO_NOTE_REMARQUE

Azure Bastion supporte :

  • vNet peering.
  • NSG.
  • JIT (peut devenir assez complexe).

Ne supporte pas :

  • UDR /Routage.
  • Machine non Azure.

Déploiement

Nous allons déployer Azure Bastion dans une petite maquette.

La maquette est composée d’un Hub et de 2 Spokes.

L’objectif est de déployer Azure Bastion dans le Hub pour permettre l’accès aux ressources hébergé sur le Hub et dans les Spokes.

AzBastion_Install_0010
Schéma d'origine

La première étape est de créer un sous-réseau nommé “AzureBastionSubnet” dont le masque est à minima “/26”.

PICTO_AVERTISSEMENT

En cas d’utilisation de la version “Premium” d’Azure Bastion Microsoft recommande d’utiliser un masque en “/26” ou “/25” afin de permettre la mise à l’échelle de la solution (max 50 hôtes).

Se rendre dans la partie “Subnets” du vNet “vNet-Hub” et ajouter un nouveau subnet.

AzBastion_Install_0020
subnet

Renseigner la plage d’adressage du subnet. Il conviendra peut-être selon votre infrastructure de choisir une plage différente de votre “Adress Space”. Il faut impérativement que le subnet soit nommé “AzureBastionSubnet” et que le masque de sous-réseau soit à minima en “/26”.

AzBastion_Install_0030
subnet

Ensuite depuis la barre de recherches, rechercher “Azure Bastion“.

AzBastion_Install_0040
Azure Bastion

Cliquer sur “Create” pour ajouter un nouveau Bastion.

AzBastion_Install_0050
Azure Bastion

Renseigner les informations inhérentes à la “Subscription” et au “Ressources group”, le nom du Bastion et ça région Azure.

Sélectionner le SKU souhaité, ici “Basic”.

Puis les informations concernant le vNet et le subnet qui a préalablement été créé.

Azure Bastion nécessite l’ajout d’une Adresse IP Public.

Dès lors que toutes les informations ont été renseignées, cliquer sur “Review + Create”.

AzBastion_Install_0060
Azure Bastion

Après quelques minutes de déploiement, le Bastion est déployé.

AzBastion_Install_0070
Azure Bastion

Administration

En termes d’administration, deux parties attirent l’attention.

  • Sessions

Cette section offre la possibilité de voir les sessions hébergées par le Bastion. Il est possible de mettre fin à l’une d’entre elles en cliquant sur “Delete” en bout de ligne.

  • Configuration

Cette section offre quant à elle la possibilité de modifier le SKU du bastion de Basic à Standard. En version Standard, il est possible de modifier le nombre d’hôtes présent.

Utilisation

Pour se connecter à une ressource via Azure Bastion, deux possibilités sont disponibles. Soit depuis le menu connexion, sélectionner “Bastion”. Soit directement dans la section “Bastion” de la ressource.

Dans les 2 cas, il est nécessaire de sélectionner le bastion à utiliser dans le cas à plusieurs Bastion soient disponibles.

Machines Windows

Saisir les credentials pour se connecter à une machine de type Windows.

En cas de première connexion, il convient d’autoriser Azure à ouvrir des fenêtres pop-up.

Puis un nouvel onglet dans le navigateur s’ouvre affichant l’interface de la machine.

Machines Linux

Pour les machines de type Linux, une fonctionnalité supplémentaire et particulièrement intéressante est présente.

En plus de la connexion par mot de passe, il est possible de se connecter à l’aide d’une clef  RSA.

Azure Bastion offre la possibilité d’aller lire une clef RSA certes depuis un poste de travail, mais surtout depuis un Azure KeyVault.

Conclusion

Azure Bastion est un produit simple à mettre en place que demande une très faible charge de travail. Dès lors que la portée du service est identifiée, que le subnet est créé. Le déploiement est très simple.

Le service en version “Basic” n’est pas très onéreux, il est possible pour les très petit environnement avec un nombre restreint d’administrateurs de supprimer le Bastion en fin de journée et de le regréer au besoin à partir d’un template ARM ou manuellement moyennant quelques minutes d’attentes le temps du build.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *