Azure Bastion - bezpieczne połączenie z VM
Czym jest Azure Bastion i jak działa?
Najprościej mówiąc Azure Bastion jest usługą PaaS służąca do bezpiecznego łączenia się z maszynami wirtualnymi. Zastępuje ona Jump Hosta, czyli osobną wirtualną maszynę za pomocą której łączyliśmy się do pozostałych maszyn niedostępnych publicznie. Dzięki temu odpada nam dbanie o bezpieczeństwo takiej maszyny, jedyne co nam pozostaje to zarządzanie usługą jak każdą inną w Azure.
Całe połączenie odbywa się z poziomu samego portalu Azure. Inicjując połączenie, przeglądarka łączy się do hosta Azure Bastiona za pomocą bezpiecznego połączenia z wykorzystaniem protokołu TLS. Następnie usługa, wykorzystując prywatną sieć, łączy się do danej maszyny używając połączenia RDP/SSH, a tak pobrane dane są przesyłane strumieniowo przez bastiona do naszej przeglądarki.
Zalety
- wykorzystanie IAM do zarządzania dostępem
- cały ruch pomiędzy Azure Bastion a VM odbywa się poprzez sieć prywatną
- brak publicznie dostępnych portów RDP oraz SSH, a więc zabezpieczany się przed skanowaniem portów
- aktualizacje oraz wgrywanie łatek bezpieczeństwa zapewnione przez Azure
- monitorowanie połączeń zdalnych na bieżąco
- audyt logów - włączając diagnostic settings mamy możliwość przeglądania logów dotyczących sesji do maszyn
Wady
- koszt
- Azure Bastion działa tylko w obrębie danej sieci wirtualnej oraz sieci połączonych za pomocą peeringu, więc mając kilka osobnych sieci musimy do każdej utworzyć bastiona - a to może znacząco zwiększyć koszty
- brak niektórych funkcjonalności znanych z bezpośredniego połączenia się poprzez pulpit zdalny jak chociażby kopiowanie plików
Wymagania
Aby skorzystać z usługi w wirtualnej sieci musimy zarezerwować specjalną podsieć o nazwie AzureBastionSubnet, dzięki której uzyskuje ona dostęp do maszyn wirtualnych w danej sieci oraz połączonych sieci za pomocą peeringu.
Demo
W celu zaprezentowania działania usługi utworzyłem wirtualną maszynę bez publicznego IP.
1. Przechodzimy do panelu wirtualnej maszyny, następnie w Operations -> Bastion.
2. Pierwszym krokiem, w celu utworzenia usługi, jest rozszerzenie przestrzeni adresowej naszej sieci wirtualnej.
3. Tworzymy podsieć AzureBastionSubnet.
4. Konfigurujemy i tworzymy usługę.
5. Po utworzeniu zostajemy przeniesieni do panelu za pomocą którego możemy się zalogować do maszyny.
6. Po wprowadzeniu danych przenosimy się do nowej karty, gdzie mamy bezpieczny dostęp do maszyny wirtualnej poprzez sieć prywatną.
Jak widać całe połączenie odbywa się za pomocą przeglądarki, a maszyna do której jesteśmy podłączeni ma tylko i wyłącznie prywatne adresy IP.