Hub-Spoke(中樞與分支) 它就像一個放射狀的交通樞紐:所有核心服務集中在「中樞」,而各個業務單位則在各自的「分支」中運行。
1. 核心組件 (Components)
Hub (中樞 VNet)
這是網路的中央控制點,通常包含多個專案共用的共享服務:
- Azure Firewall / NVA:負責檢查所有進出(東西向、南北向)的流量。
- VPN / ExpressRoute Gateway:連接公司地端機房(On-premises)。
- Azure Bastion:提供安全管理 VM 的跳板機。
- Shared Services:如 Active Directory (AD)、DNS 伺服器等。
Spoke (分支 VNet)
這是各個專案、開發環境或部門所擁有的隔離空間:
- 每個專案擁有獨立的 VNet。
- 不直接連接地端或公網。
- 透過 VNet Peering 連接到 Hub。
2. 流量是如何流動的?
Hub-Spoke 架構最強大的地方在於強制流量經過中樞(透過使用者定義路由 UDR):
- 分支對分支 (Spoke-to-Spoke):專案 A 要連到專案 B 時,流量會先送往 Hub 的防火牆進行過濾,確認安全後再轉發到專案 B。
- 分支對地端 (Spoke-to-On-prem):所有專案共用 Hub 裡的 VPN Gateway,不需要每個專案都買一個昂貴的網關。
- 分支對公網 (Spoke-to-Internet):統一由 Hub 的防火牆出口,方便進行稽核與流量監控。
3. 為什麼要用這種架構? (優點)
- 節省成本:避免在多個 VNet 中重複部署昂貴的資源(如防火牆和網關)。
- 中央管理 (Governance):資安團隊只需要在 Hub 守好「大門」,就能管理所有專案的進出安全。
- 隔離性 (Isolation):不同專案(Spoke)之間預設是不通的,除非你在 Hub 設定了路由。這符合「最小權限」原則。
- 突破限制:單個 VNet 有資源配額上限,透過多個 Spoke 可以繞過這些限制。
4. 搭配 Private Link 的進階用法
在 Hub-Spoke 環境下,Private Link 扮演了畫龍點睛的角色:
- 中央私有端點:你可以把 Private Endpoint 放在 Hub 的一個專門子網段內。
- 跨分支存取:所有 Spoke 都可以透過 VNet Peering 存取 Hub 裡那個唯一的 Private IP 來連到資料庫,這樣你就不需要在每個專案裡都建立一大堆 Endpoint。
5. 什麼時候不建議用?
如果你的規模非常小(只有 1-2 個 VNet),且沒有連回地端的需求,Hub-Spoke 可能會增加過多的複雜性與維運成本。這種情況下,簡單的 VNet Peering 就足夠了。
小撇步:如果你不想手動管理這些路由和連線,Azure 提供了一種託管服務叫 Azure Virtual WAN,它本質上就是「服務化的 Hub-Spoke」,會幫你自動處理好所有的自動路由。
你目前的公司架構,是否已經面臨多個專案需要統一管控安全出口的問題了呢?