【Azure】Bastion
Hi,我是小白,雲端服務近年蓬勃發展,無論是在虛擬機部屬、容器部屬、Web開發環境、測試環境、數據分析實驗室(ex:Machine Learning Studio)等功能,為此雲端所提供的多樣化資源服務,是需要被有效的管制,以確保服務的安全性及穩定性。
傳統系統維護人員在管理主機的過程中,會針對外層的系統安全性進行管制,故此會以IP及帳號密碼登入系統進行操作。在這樣的過程中,其實也透露出實體連線的資訊,即便企業內部已有規劃DMZ(Demilitarized Zone)來做隔離環境或跳板,仍是無法避免對外的通訊道與未知攻擊的風險。
而今日要介紹Microsoft Azure Bastion功能,是一款無須開放遠端存取通道與IP位址即可管理PaaS的服務,其採用TLS進行連線以確保連線通道的安全性,同時能提供順暢的RDP與SSH存取方式,進而透過Azure網頁入口連線到虛擬機器(VM),來取代過往採用公用IP位址、特殊用戶端(終端)軟體或其他應用軟體進行連線的方式,下圖1是Azure Bastion功能示意圖,意旨Bastion功能作為用戶端與VM的溝通中繼點。
- 快速使用:使用者可以在 Azure 入口網站直接進行 RDP /SSH 連線。
- 有效且安全的通訊方式:透過Azure Bastion 功能連線至已規畫的虛擬網路時,即可透過RDP/SSH 連線方式進行工作。
- 免除多次使用公用IP的登入操作:Azure Bastion 會使用 VM 上的私人 IP,開啟與用戶端的 Azure VM的 RDP/SSH 連線功能,故此在VM上不需要公用 IP。
- 針對連接埠掃(port)的保護: 因不需要將VM公開至公用網際網路,所以用戶的 VM能有效受到保護,免於外部的惡意使用者的不法行為攻擊,舉如防止通訊連接埠掃(port)被掃描。
- 免需套用任何 NSG:因 Azure Bastion可透過私人 IP 連線到用戶端的VM,所以用戶端可以直接設定 NSG (Network Security Group, 網路安全群組)只允許來自 Azure Bastion 的 RDP/SSH,進而減輕每次想要安全地連線到虛擬機器時就需要管理 NSG 的負擔。
- 零時差攻擊的防禦:Azure Bastion 是完全平台受控的 PaaS 服務,其主要能在虛擬網路的周邊進行控管,用以強化虛擬網路中的VM防禦,同時 Azure 平台仍持續地強化與維護 Azure Bastion 功能,以保護用戶端免於零時差的攻擊。
本篇以Azure【Bastion】功能作為範例操作。另在執行Bastion功能前,需要具備兩個條件,其分別為一台VM以及NSG(網路安全群組),才能使用Bastion功能。
Step1.建立虛擬機器(VM),若已有VM的請略過此步驟。
請輸入相關VM設定所需的資料。
Step2.配置VM相關設定(這邊因應範例所以在設定上並不以嚴謹標準),若已有VM的請略過此步驟。
登入VM有多種不同的方式,舉如SSH或帳號密碼等,而本篇將以帳號密碼類型進行登入,故此須為VM的登入之使用者名稱取名,而本篇帳號為:test01;密碼:則為本篇閱讀者自行設定。
若都輸入完帳號及密碼後,同時系統也驗證過後,請選取下圖的第二個紅框,連入至系統的通訊道,這邊讀者可以依公司或系統需求進行勾選,而本篇將勾選HTTPS(443)及SSH(22)作為登入通訊道。
Step3.配置VM相關設定(這邊因應範例所以在設定上並不以嚴謹標準),若已有VM的請略過此步驟。
若前面設定都完成後,亦可進入【檢視+建立】,確認VM所要部屬的環境參數以無誤後,點選【下一步】則會跳轉至Step4的圖5。
Step4.配置VM相關設定(這邊因應範例所以在設定上並不以嚴謹標準),若已有VM的請略過此步驟。
此時點選【建立】,亦等待幾分即可完成VM的部屬。
Step5.VM相關設定及管理畫面
使用者請點選左側的虛擬機氣,並點選對應的VM進來,即可查閱到各VM的詳細資訊,如下圖6所示。
Step6.連線至VM設定畫面
請點選【連結】後,會顯示如下圖7中紅框的所示內容,再點選【Bastion】。
Step7.連線至VM設定畫面
由於首次使用Bastion會進入下圖8此畫面,故此選擇【使用堡壘】,亦可開始進行部屬。
Step8.開始設定Bastion連線(1/2)
進入Bastion基本資料會由系統預設,若沒問題使用者即可進入步驟2,如下圖所示,這邊需要使用輸入或確認適當可用的【公用IP】以及選取可用的部屬之【資源群組】。
補充:
一般來說,公用IP若是無效的,Azure會在此階段擋掉建立需求,會要求使用者再次輸入可用的IP。
先前來說Bastion是在虛擬網路的中繼站,用於外部與內部VM溝通的閘門,故此來說,這些VM都是需要在同一個資源群組的! 因此需要選取適當的資源群組才能完成部屬。
Step9.設定Bastion連線(1/2)
進入建立Bastion步驟的第3部分,需要使用者為Bastion建立名稱(紅框1),並針對下圖10的公用IP欄位進行輸入(紅框2),有效性之IP(紅框3)。最後再選取對應的資源群組(紅框4)用以部屬。
補充:這邊略過實際操作Bastion設定的2/3步驟,其主要是系統預設,故此未進一步說明。
Step10.使用Bastion進行連線
最後於下圖11畫面輸入【使用者名稱】及【密碼】後,點選【連線】即可完成連線。系此外,統預設是會開啟新視窗畫面,即可透過新視窗進行閱覽與操作,以進行系統部屬或開發環境建置。
Step11.透過Bastion連線至VM上
下圖12則為成功連線至VM系統中的畫面,當然使用者的畫面是依照原先設設的VM環境(舉如OS)會有影響,而本次VM的環境是採用Ubuntu 18 版本。
綜上所述,Azure Bastion提供更安全的許VM溝通的方式,免除了RDP/SSH或第三方登入軟體,也意味著提升整體登入系統的安全性與降低系統被攻擊的風險。為此變成登入Azure 口口網站的帳號密碼,如訂閱帳號或群組功能,更需要被組織完善的控管,以利及時掌握整體雲端的安全性。
以上是本篇Bastion技術功能的分享,若有任何問題,歡迎前輩或對雲服務有興趣的朋友一同討論。
參考資料:
- 何謂 Azure Bastion?,網址:https://docs.microsoft.com/zh-tw/azure/bastion/bastion-overview。
- 使用NGS存取與Azure防禦,網址:https://docs.microsoft.com/zh-tw/azure/bastion/bastion-nsg
3. 力抗暗黑:Azure資安天使的逆襲,網址:https://reurl.cc/9ZdeMd。
其他Azure服務文章: