Die Arbeitsformen «Home Office», «remote work» oder gar «work anywhere» gewinnen immer mehr an Bedeutung, besonders in den vergangenen Monaten. Dieser Wandel betrifft nicht nur Nutzer, sondern auch IT-Mitarbeiter und Systemadministratoren. Oft werde ich bei solchen Themen aber mit Misstrauen und Sicherheitsbedenken konfrontiert. Hier kommt Azure Bastion ins Spiel. Bastion ermöglicht nicht nur «work anywhere» für Systemadministratoren, sondern bietet gleichwohl erhöhte Sicherheit und sicheren Zugriff auf deine Azure VMs, ohne die Notwendigkeit eines VPNs!
Prinzip und Key-Facts von Azure Bastion
Prinzipiell kann Azure Bastion als «Jump host as a Service» beschrieben werden. Da es sich bei Bastion um ein PaaS («Plattform as a Service») Angebot handelt, braucht sich der Administrator aber nicht erst damit zu verbinden, wie das bei einem klassischen «Jump host» der Fall wäre. Der Administrator kann bequem und zentral den gewünschten Server im Azure Portal auswählen und über Bastion verbinden, wie das Bild aufzeigt.
Der zentrale Zugriff ist schon mal sehr nützlich. Der wesentliche Gewinn liegt meines erachtens darin, dass die Server dank Bastion keine öffentliche IP benötigen und Bastion die Verbindung über TLS und somit verschlüsselt herstellt. Dank Azure Bastion ist Port 443 also der einzige Port, den du ausserhalb des Netzwerkes publizieren musst. Ports für RDP und SSH sind nur intern notwendig. Das folgende Bild und die darauffolgende Beschreibung zeigt auf, wie der Zugriff über Azure Bastion abläuft.
- Der Administrator verbindet sich mit dem Azure Portal über TLS und wählt den gewünschten Server aus, auf welchen er zugreifen will.
- Azure leitet den Traffic zum Bastion Service («Jump host as a Service») weiter, ebenfalls über TLS.
- Bei der vorgeschalteten Network Security Group (NSG) muss lediglich Port 443 offen sein.
- Bastion stellt die SSH / RDP Verbindung mit der gewünschten VM her.
- Die dem Subnet oder der VM vorgeschaltete NSG kannst du so einschränken, dass die NSG SSH und RDP nur vom Azure Bastion erlaubt.
- Die Session wird dem Administrator dann über HTML5 zur Verfügung gestellt.
Eigenschaften von Azure Bastion
Die obige Beschreibung hat einige Eigenschaften und den einen oder anderen Vorteil von Azure Bastion bereits ans Licht gebracht, doch gibt es noch weitere. Auch Nachteile, bzw. gewisse Einschränkungen gibt es (noch), auf die ich natürlich ebenfalls aufmerksam machen möchte.
Vorteile
Die folgende Auflistung zeigt Vorteile und positive Eigenschaften von Azure Bastion.
- VM und Netzwerksicherheit
Azure Bastion trägt zur Sicherheit von VM und Netzwerk bei und ermöglicht gleichzeitig das «work anywhere» Prinzip für Systemadministratoren. Dadurch dass sich ein Administrator zuerst mit Azure identifizieren muss, kannst du zusätzlich von Services wie «conditional access», «just in time access» und weiteren Gebrauch machen. - Kein VPN nötig
Der Zugriff über Azure Bastion funktioniert über Port 443 und HTML5. Es ist entsprechend nicht notwendig, ein VPN zu haben. Du kannst dies aber selbst verständlich konfigurieren, wenn du beispielsweise Sicherheitsbedenken hegst. - Keine öffentliche IP für VMs
Die VMs benötigen keine öffentliche IP, da sie über die private IP von Azure Bastion angesteuert werden. Die Kommunikation zwischen Bastion und VM findet also im internen VNET statt. - Schutz vor Port scanning
Dadurch, dass VMs keine öffentliche IP benötigen und Azure Bastion nur Port 443 in Anspruch nimmt, wird Port scanning von ausserhalb des privaten Netzwerkes ein Riegel vorgeschoben. - Port-Restriktion auf interner NSG (Persönliche Empfehlung)Die Network Security Group kann so konfiguriert werden, dass RDP und SSH nur von Azure Bastion erlaubt werden. Das dient als weiterer Schutz, wenn jemand bereits ins Netzwerk eingedrungen ist, so dass auch von intern nicht unberechtigt auf die VMs zugegriffen werden kann.
- Sichere und nahtlose RDP und SSH Verbindung über TLS
Du kannst direkt im Azure Portal auf deine VMs zugreifen. Die SSH oder RDP Sitzung wird dir verschlüsselt über TLS zur Verfügung gestellt. - Kein RDP oder SSH Client notwendig
Für die Verbindung benötigst du keinerlei zusätzliche Software oder Clients. Die Sitzung wird dir direkt als HTML5 zur Verfügung gestellt, ohne dass du etwas Zusätzliches installieren musst. - Kein Agent auf VM notwendig
Auf den VMs, auf welche du mittels Bastion zugreifen möchtest, brauchst du kein Agent zu installieren. - Skalierung – Ein Bastion pro Netzwerk
Für ein ganzes Azure VNET benötigst du nur einen einzigen Azure Bastion. Hast du Bastion in einem Netzwerk platziert, so kannst du ihn für alle darin enthaltenen VMs verwenden. - Fully managed Service
Azure Bastion ist ein «Plattform as a Service» Angebot. Das bedeutet, dass der Service von Microsoft gepflegt und aktuell gehalten wird. Du brauchst dich anders als bei einem herkömmlichen «Jump host» somit nicht um Wartung und System-Hardening zu kümmern. - Einfache und schnelle Implementierung
Für das Erstellen deines eigenen Azure Bastion benötigst du nur wenig Zeit. Wie du einen solchen erstellen kannst, wird in einem anderen Beitrag hier beschrieben. Trotzdem ist es wichtig, dass du zuvor die konzeptionelle Vorarbeit leistest.
Nachteile
Die nachfolgende Auflistung zeigt die Nachteile und negativen Eigenschaften von Azure Bastion zum Zeitpunkt der Erstellung dieses Blogbeitrages auf.
- IPv6 ist nicht unterstützt
Leider wird zurzeit nur IPv4 unterstützt, nicht so IPv6. - Kopieren von Dateien ist nicht möglich
Auch das Kopieren von Dateien in oder von einer remote Session ist nicht unterstützt. Es kann aber davon ausgegangen werden, dass sich Microsoft dafür etwas einfallen lässt. Copy-Paste ist im Übrigen möglich. - Zugriff auf VMs in «Spoke» Netzwerken nicht möglich
Die «Hub & Spoke» Netzwerkarchitektur ist weit verbreitet und zählt auf Azure zum Best Practice. Doch leider kann zum heutigen Zeitpunkt von einem Azure Bastion im Hub Netzwerk nur auf VMs im selben Netzwerk zugegriffen werden. Sämtliche VMs in einem Spoke Netzwerk kann man nicht von diesem Azure Bastion ansteuern. Aktuell muss dafür noch ein Azure Bastion pro Netzwerk implementiert werden, was entsprechende Kosten zur Folge hat. Microsoft ist sich dem allerdings bewusst und hat über Customer Feedback bereits kundgegeben, dass sie «Hub & Spoke» Architekturen mit Bastion künftig unterstützen möchten und daran arbeiten (siehe hier).
Fazit
Azure Bastion ist ein Service, der mit der richtigen Konfiguration einen erheblichen Teil zur Netzwerksicherheit beisteuert. Besonders begeistert mich die Einfachheit des Plattform Dienstes, sowohl bei der Implementierung als auch der Bedienung. Für Administratoren und Spezialisten, die sich ohnehin bereits täglich im Azure Portal bewegen, ist Azure Bastion bezüglich Usability kein zusätzliches Hindernis und schützt gleichzeitig vor diversen Gefahren. Allerdings ist der Fakt, dass die Netzwerkarchitektur «Hub & Spoke» noch nicht unterstützt wird, ärgerlich, besonders da es sich bei dieser Architektur um Best Practice handelt und vielerorts praktiziert wird. Wird diese Hürde aus der Welt geschafft, so ist Azure Bastion ein ausgezeichneter Service sowohl für KMUs als auch Enterprises. Mit Azure Bastion wird ein sicherer Zugriff auf deine Azure VMs zum erschwinglichen Preis von rund USD 140 pro Monat (exkl. Traffic) ermöglicht.
Quellen:
https://docs.microsoft.com/en-us/azure/bastion/bastion-overview
https://docs.microsoft.com/en-us/azure/bastion/bastion-create-host-portal