將零信任準則套用至 Azure 中的輪輻虛擬網路
摘要:若要將 零信任 原則套用至 Azure 中的輪輻虛擬網路,您必須利用角色型 存取控制(RBAC)、隔離子網和虛擬機(資源群組、網路安全組和應用程式安全組)、保護 VNet 和虛擬機應用程式中的流量和資源,以及啟用進階威脅偵測、警示和保護。
本文可協助您以下列方式將 零信任 套用至 Azure 中 IaaS 工作負載的輪輻虛擬網路 (VNet) 原則:
零信任 原則 | 定義 | 符合者 |
---|---|---|
明確驗證 | 一律根據所有可用的資料點進行驗證及授權。 | 使用應用程式安全組來確認個別 NIC 具有透過特定通道進行通訊的許可權。 |
使用最低權限存取 | 使用 Just-In-Time 和 Just-Enough-Access (JIT/JEA)、風險型調適型原則以及資料保護來限制使用者存取權。 | 請勿在任何通道上默認啟用 3389/RDP 存取。 針對輪輻內容使用正確的角色許可權。 |
假設缺口 | 將爆炸半徑和區段存取權降至最低。 確認端對端加密,運用分析來提升資訊透明度與威脅偵測,並改善防禦。 | 限制資源之間的不必要的通訊。 請確定您能夠登入網路安全組,並且能夠正確查看異常流量。 追蹤網路安全組的變更。 |
本文是一系列文章的一部分,示範如何將 零信任 原則套用至 Azure 中裝載虛擬機工作負載的輪輻 VNet。 如需詳細資訊,請參閱將 零信任 原則套用至 Azure IaaS 概觀。
參考架構
下圖顯示 IaaS 型工作負載的常見參考架構。
在此圖表中:
- 輪輻 VNet 包含可支援由虛擬機組成的 IaaS 應用程式元件。
- IaaS 應用程式是一個三層應用程式,由每一層的兩部虛擬機組成:前端、應用程式和數據。
- 每一層都包含在具有專用網路安全組的專用子網內。
- 每個虛擬機角色都會指派給對應至其角色的應用程式安全組。
- 應用程式的存取權是透過其本身子網中包含的 應用程式閘道 來提供。
參考架構中顯示的應用程式遵循 多層式架構樣式
下圖顯示 Azure 訂用帳戶中輪輻 VNet 的資源群元件,與中樞 VNet 的訂用帳戶不同。
在圖表中,輪輻 VNet 的所有元件都包含在專用的資源群組中:
- 一個 VNet
- 一個 Azure 應用程式閘道(App GW),包括 Web 應用程式防火牆(WAF)
- 三個網路安全組,每個應用層各一個
- 三個應用程式安全組,每個應用層各一個
本文內容
零信任 原則會套用至整個架構,從租用戶和目錄層級到將虛擬機指派給應用程式安全組。 下表說明保護此架構的建議。
步驟 | Task | 零信任 原則(s) 已套用 |
---|---|---|
1 | 使用 Microsoft Entra 角色型存取控制 (RBAC) 或設定網路資源的自定義角色。 | 使用最低權限存取 |
2 | 將基礎結構隔離至自己的資源群組。 | 假設缺口 |
3 | 為每個子網建立網路安全組。 | 使用最低許可權存取 假設缺口 |
4 | 為每個虛擬機角色建立應用程式安全組。 | 明確驗證 使用最低許可權存取 假設缺口 |
5 | 保護 VNet 內的流量和資源: |
明確驗證 使用最低許可權存取 假設缺口 |
6 | 保護對 VNet 和應用程式的存取。 | 使用最低許可權存取 假設缺口 |
7 | 啟用進階威脅偵測、警示和保護。 | 假設缺口 |
步驟 1:使用 Microsoft Entra RBAC 或設定網路資源的自定義角色
您可以針對網路參與者使用 Microsoft Entra RBAC 內建角色 。 不過,另一種方法是使用自定義角色。 輪輻網路管理員不需要完整存取 Microsoft Entra RBAC 網路參與者角色授與的網路資源,但需要比其他通用角色更多的許可權。 您可以使用自定義角色,將存取範圍限定為所需專案。
實作這項操作的其中一個簡單方法是部署在 Azure 登陸區域參考架構中找到的自定義角色。
特定角色是 網路管理 自定義角色具有下列許可權:
- 讀取範圍中的所有內容
- 任何網路提供者的動作
- 支援提供者的任何動作
- 任何資源提供者的動作
您可以使用自定義角色的腳本,或使用 Azure 自定義角色 - Azure RBAC 中所述的程式,透過 Microsoft Entra ID 來建立此角色。
步驟 2:將基礎結構隔離至自己的資源群組
藉由隔離網路資源與計算、數據或記憶體資源,您可以降低許可權流血的可能性。 此外,藉由確保所有相關資源都位於一個資源群組中,您可以建立一個安全性指派,並更妥善地管理這些資源的記錄和監視。
與其讓輪輻網路資源可在共用資源群組中的多個內容中使用,而是為其建立專用的資源群組。 本文支持的參考架構說明此概念。
在此圖中,參考架構中的資源和元件分成虛擬機、記憶體帳戶、中樞 VNet 資源和輪輻 VNet 資源的專用資源群組。
使用專用的資源群組,您可以使用下列程式指派自定義角色:教學課程:使用 Azure 入口網站 - Azure RBAC 將 Azure 資源的存取權授與使用者。
其他建議:
- 參考角色的安全組,而不是具名個人。
- 透過您的企業身分識別管理模式來管理安全組的存取權。
如果您未使用在資源群組上強制執行記錄轉送的原則,請在資源群組的活動記錄檔中設定:流覽至 [活動記錄 > 匯出活動 記錄],然後選取 [+ 新增診斷設定]。
在 [ 診斷 設定] 畫面上,選取所有記錄類別(特別是安全性),並將其傳送至適當的記錄來源,例如 Log Analytics 工作區以取得可觀察性,或長期儲存的記憶體帳戶。
訂用帳戶大眾化
雖然與網路無關,但您應該以類似的方式規劃訂用帳戶 RBAC。 除了依資源群組以邏輯方式隔離資源之外,您也應該根據業務領域和組合擁有者來隔離訂用帳戶。 訂用帳戶作為管理單位的範圍應該會縮小。
如需訂用帳戶民主化的詳細資訊,請參閱 Azure 登陸區域設計原則 - 雲端採用架構。
您可以從 Azure 監視器中的 [診斷] 設定 [安全性] 類別設定診斷,如下所示。
請參閱 診斷設定 ,以瞭解如何檢閱這些記錄並對其發出警示。
步驟 3:為每個子網建立網路安全組
Azure 網路安全組可用來篩選 Azure VNet 中 Azure 資源之間的網路流量。 建議將網路安全組套用至每個子網,此子網預設會在部署 Azure 登陸區域時透過 Azure 原則強制執行。 網路安全性群組包含安全性規則,用來允許或拒絕進出多種 Azure 資源類型的輸入和輸出網路流量。 針對每個規則,您可以指定來源與目的地、連接埠和通訊協定。
針對多層式虛擬機型應用程式,建議為每個裝載虛擬機角色的子網建立專用網路安全組(下圖中的 NSG)。
在此圖表中:
- 應用程式的每一層都裝載在專用子網中,例如前端層、應用層和數據層。
- 每個子網都會設定網路安全組。
以與圖所示不同的方式設定網路安全組可能會導致部分或所有網路安全組的設定不正確,而且可以在疑難解答時建立問題。 它也會使監視和記錄變得困難。
使用此程式建立網路安全組: 建立、變更或刪除 Azure 網路安全組
請參閱 網路安全組 ,以瞭解如何使用它們來保護環境。
步驟 4:為每個虛擬機角色建立應用程式安全組
應用程式安全性群組可讓您將網路安全性設定為應用程式結構的自然延伸,以便分組虛擬機器,並定義以那些群組為基礎的網路安全性原則。 您可以大規模重複使用您的安全性原則,而不需進行明確 IP 位址的手動維護。 此平台可處理明確 IP 位址和多個規則集的複雜性,讓您專注於商務邏輯。
在您的工作負載內,識別特定的虛擬機角色。 然後,為每個角色建置應用程式安全組。 在參考架構中,會表示三個應用程式安全組。
在此圖表中:
- 系統會建立三個應用程式安全組來支援此應用程式,每個層級各有一個:前端、應用程式和數據。
- 每個虛擬機都會為其角色指派給對應的應用程式安全組(圖表中的紅色文字)。
如需應用程式安全組以及如何將這些安全組指派給虛擬機的詳細資訊,請參閱 Azure 應用程式安全組概觀。
注意
如果您使用負載平衡器,則需要使用網路安全組中負載平衡器的IP位址,因為應用程式安全組無法限定負載平衡器的範圍。
步驟 5:保護 VNet 內的流量和資源
本節涵蓋下列建議:
- 部署網路安全組的基準拒絕規則
- 部署應用程式安全組的應用程式特定規則
- 規劃 VNet 中的管理流量
- 部署網路安全組流量記錄
部署網路安全組的基準拒絕規則
零信任 的關鍵元素是使用所需的最低存取層級。 根據預設,網路安全組已允許規則。 藉由新增拒絕規則的基準,您可以強制執行最低層級的存取權。
布建之後,請在每個輸入和輸出規則中建立拒絕所有規則,優先順序為 4096。 這是可用的最後一個自定義優先順序,這表示您仍有設定允許動作的剩餘範圍。
在網路安全組中,流覽至 [ 輸出安全性規則 ],然後選取 [ 新增]。 填寫下列內容:
- 來源:任何
- 來源連接埠範圍:*
- 目的地:任何
- 服務:自訂
- 目的地埠範圍:*
- 通訊協定:Any
- 動作:Deny
- 優先順序:4096
- 名稱:DenyAllOutbound
- 描述:除非特別允許,否則會拒絕所有輸出流量。
以下是範例。
使用輸入規則重複此程式,並視需要調整名稱和描述。 您會注意到,在 [ 輸入安全性 規則] 索引標籤上,規則上有警告符號,如下所示。
如果您按下規則並捲動到底部,您會看到更多詳細數據,如下所示。
此訊息提供下列兩個警告:
- 根據預設,Azure Load Balancer 將無法使用此網路安全組存取資源。
- 根據預設,此 VNet 上的其他資源將無法使用此網路安全組存取資源。
為了我們 零信任 的目的,這就是它應該如何。 這表示只是因為某個專案在此 VNet 上,並不表示它可以立即存取您的資源。 針對每個流量模式,您必須建立明確允許的規則,而且應該以最少的許可權來執行此動作。 因此,如果您有管理的特定輸出連線,例如 Active Directory 網域服務 (AD DS) 域控制器、私人 DNS 虛擬機或特定外部網站,則必須在這裡加以控制。
替代拒絕規則
如果您使用 Azure 防火牆 來管理輸出連線,則不要執行全部拒絕輸出,而是讓所有輸出保持開啟狀態。 在 Azure 防火牆 實作中,您將設定路由表,以將預設路由 (0.0.0.0.0/0) 傳送至防火牆,以處理 VNet 外部的流量。
然後,您可以建立拒絕所有 VNet 輸出,或改為允許所有輸出 (但使用其輸入規則保護專案)。
深入瞭解 Azure 防火牆 和路由表,以瞭解如何使用它們來進一步提高環境的安全性。
虛擬機器管理規則
若要設定已啟用 Microsoft Entra Login、Anti-Malware 和自動更新的虛擬機,您必須允許下列輸出連線。 其中許多都是 FQDN,這表示 FQDN 規則需要 Azure 防火牆,否則您將制定更複雜的計劃。 建議使用 Azure 防火牆。
輸出連線為:
- 在連接埠 443 上:
- enterpriseregistration.windows.net
- settings-win.data.microsoft.com
- sls.update.microsoft.com
- v10.events.data.microsoft.com
- login.microsoftonline.com
- pas.windows.net
- 169.254.169.254
- 在連接埠 80 上:
- ctldl.windowsupdate.com
- www.msftconnecttest.com
- 在連接埠 123 上:
- time.windows.com
- 在埠 1688 上:
- Azkms.core.windows.net
部署應用程式安全組的應用程式特定規則
使用最少的許可權定義流量模式,並只遵循明確允許的路徑。 以下是使用應用程式安全組在輪輻 VNet 與中樞 VNet 的網路安全組中定義網路流量模式的範例圖表。 這是建議的設定。
另一個例子是,以下是獨立輪輻 VNet 的組態,其中 Web 應用程式防火牆 會放在輪輻 VNet 的 應用程式閘道 子網中。
您需要下列網路安全組規則:
- 允許因特網流量進入APP GW子網 (HTTPS 443)。
- 允許從 APP GW 子網到前端層虛擬機 (HTTPS 433) 的流量。
- 允許從前端層虛擬機到應用層負載平衡器的流量(HTTPS 443)。
- 允許從應用層負載平衡器到應用層虛擬機的流量(HTTPS 443)。
- 允許從應用層虛擬機到數據層負載平衡器的流量(SQL 1433)。
- 允許從數據層負載平衡器到數據層虛擬機的流量(SQL 1433)。
- 允許資料層虛擬機器之間的流量 (SQL 1433)
先設定 SQL 模式,然後使用其餘層重複此程式。 下列各節是限制單一應用層網路流量的規則組態。
規則 5 - 允許從應用程式層虛擬機到資料層負載平衡器的流量 (SQL 1433)
在應用層子網的網路安全組中,流覽至 [ 輸入安全性規則],然後選取 [ 新增]。 使用下列項目填入清單:
- 來源:應用程式安全組
- 來源應用程式安全組:選取您的商務層應用程式安全組
- 來源埠範圍:1433(有時來源流量可能來自不同的埠,如果發生這種情況,您可以將來源埠範圍新增至 * 以允許任何來源埠。目的地埠更重要,有些建議一律使用 * 做為來源埠)
- 目的地:IP 位址
- 目的地 IP 位址/CIDR 範圍:負載平衡器的明確 IP
- 您必須在這裡使用明確的IP,因為您無法將負載平衡器與應用程式安全組產生關聯。
- 您可以規劃IP架構或部署負載平衡器,並參考指派的IP。
- 服務:MS SQL
- 目的地埠範圍:這會自動填入埠 1433
- 通訊協定:系統會自動選取 TCP
- 動作:允許
- 優先順序:介於 100 到 4096 之間的值。 您可以從 105 開始。
- 名稱:Allow-App-Tier-to-Data-LB-Inbound
- 描述:允許從數據層負載平衡器到應用層虛擬機的輸入存取。
完成之後,您會注意到規則上的資訊警示有藍色圖示。 按下規則會提供下列訊息:
- 「只有在應用程式安全組與相同虛擬網路上的網路介面相關聯時,才能套用使用應用程式安全組的規則。
以下是範例。
只有在此網路使用此應用程式安全組時,才會套用此規則。
最後,在相同的網路安全組中,流覽至 [ 輸出安全性規則 ],然後選取 [ 新增]。 填入類似範例的清單,將 [輸入] 變更為 [輸出]。
規則 6 - 允許從資料層負載平衡器到資料層虛擬機的流量 (SQL 1433)
在數據層子網的網路安全組中,流覽至 [ 輸入安全性規則 ],然後選取 [ 新增]。 使用下列項目填入清單:
- 來源:IP 位址
- 來源IP位址:負載平衡器的IP位址
- 來源埠範圍:1433
- 目的地:應用程式安全組
- 目的地應用程式安全組:選取您的資料層應用程式安全組
- 服務:MS SQL
- 目的地埠範圍:這會自動填入埠 1433。
- 通訊協定:這會針對 TCP 自動選取。
- 動作:允許
- 優先順序:介於 100 到 4096 之間的值。 您可以從 105 開始。
- 名稱:Allow-SQL-LB-to-SQL-VM-Inbound
- 描述:允許從數據層負載平衡器存取 SQL 型數據層虛擬機的輸入存取。
在相同的網路安全組中,流覽至 [ 輸出安全性規則 ],然後選取 [ 新增]。 在範例中填入清單,將 [輸入] 變更為 [輸出]。
規則 7 - 允許資料層虛擬機之間的流量 (SQL 1433)
在數據層子網的網路安全組中,流覽至 [ 輸入安全性規則 ],然後選取 [ 新增]。 使用下列項目填入清單:
- 來源:應用程式安全性群組
- 目的地應用程式安全組:選取您的資料層應用程式安全組
- 來源埠範圍:1433
- 目的地:應用程式安全組
- 目的地應用程式安全組:選取您的資料層應用程式安全組
- 服務:MS SQL
- 目的地埠範圍:這會自動填入埠 1433。
- 通訊協定:這會針對 TCP 自動選取。
- 動作:允許
- 優先順序:介於 100 到 4096 之間的值。 您可以從 105 開始。
- 名稱:Allow-SQL-VM-to-SQL-VM-Inbound
- 描述:允許 SQL 型數據層虛擬機之間的輸入存取。
在相同的網路安全組中,流覽至 [ 輸出安全性規則 ],然後選取 [ 新增]。 將清單填入為上一個清單,並將 [輸入] 變更為 [輸出]。
透過這三個規則,您已定義單一應用層的 零信任 連線模式。 您可以視需要針對其他流程重複此程式。
規劃 VNet 中的管理流量
除了應用程式特定的流量之外,您還需要規劃管理流量。 不過,管理流量通常源自輪輻 VNet 外部。 需要其他規則。 首先,您必須瞭解管理流量將來自的特定埠和來源。 一般而言,所有管理流量都應該從位於輪輻中樞網路的防火牆或其他 NVA 流動。
請參閱將 零信任 原則套用至 Azure IaaS 概觀一文中的完整參考架構。
這會根據您的特定管理需求而有所不同。 不過,防火牆應用裝置上的規則和網路安全組的規則應該用來明確允許平台網路端和工作負載網路端的連線。
部署網路安全組流量記錄
即使網路安全組封鎖不必要的流量並不表示您的目標符合。 您仍然需要觀察在明確模式外發生的流量,以便您知道是否發生攻擊。
若要啟用網路安全組流量記錄,您可以遵循教學 課程:針對所建立的現有網路安全組,記錄虛擬機 之間的網路流量流量。
注意
- 記憶體帳戶應遵循 零信任 記憶體帳戶指引。
- 視需要限制對記錄的存取。
- 他們也應該視需要流入Log Analytics和 Sentinel。
使用IDPS保護輸入Web流量
除了輪輻虛擬網路中的控制項之外,您也可以使用 Azure 防火牆 來套用額外的檢查。 雖然 Azure Front Door 和 應用程式閘道 Web 應用程式防火牆 函式會檢查流量是否有常見的 Web 攻擊,但使用 Azure 防火牆 可提供更深層次的檢查。
若要使用可用的每個訊號並維護網路流量的集中可見度,建議將流量從您的 應用程式閘道 路由傳送至 Azure 防火牆。 然後,它可以檢查流量是否有其他訊號,並在其記錄中擷取行為。 您可以在使用 Azure 防火牆和 應用程式閘道的 Web 應用程式零信任網路一文中深入瞭解此設定。 如需如何設定此行為的詳細資訊,請參閱設定 Azure 防火牆 Premium for 零信任。
步驟 6:保護對 VNet 和應用程式的存取
保護 VNet 與應用程式存取權包括:
- 保護 Azure 環境中對應用程式的流量。
- 使用多重要素驗證和條件式存取原則來存取應用程式。
下圖顯示這兩種參考架構的存取模式。
保護 VNet 和應用程式 Azure 環境內的流量
Azure 環境中大部分的安全性流量工作已完成。 在將 零信任 原則套用至 Azure 記憶體中,會設定記憶體資源與虛擬機之間的安全連線。
若要保護從中樞資源到 VNet 的存取,請參閱將 零信任 原則套用至 Azure 中的中樞虛擬網路。
使用多重要素驗證和條件式存取原則來存取應用程式
將 零信任 原則套用至虛擬機一文,建議如何使用多重要素驗證和條件式存取,直接保護對虛擬機的存取要求。 這些要求最有可能來自系統管理員和開發人員。 下一個步驟是使用多重要素驗證和條件式存取來保護應用程式的存取。 這適用於所有存取應用程式的使用者。
首先,如果應用程式尚未與Microsoft Entra標識元整合,請參閱 Microsoft 身分識別平台 的應用程式類型。
接下來,將應用程式新增至身分識別和裝置存取原則的範圍。
使用條件式存取和相關原則設定多重要素驗證時,請使用針對 零信任 設定的建議原則作為指南。 這包括不需要管理裝置的「起點」原則。 在理想情況下,存取虛擬機的裝置會受到管理,而且您可以實作「企業」層級,這是建議用於 零信任。 如需詳細資訊,請參閱常見的 零信任 身分識別和裝置存取原則。
下圖顯示 零信任 的建議原則。
步驟 7:啟用進階威脅偵測和保護
建置在 Azure 上的輪輻 VNet 可能已經受到 適用於雲端的 Microsoft Defender (MDC) 的保護,因為 Azure 或內部部署上執行之 IT 商務環境的其他資源也可能受到保護。
如本系列的其他文章所述,適用於雲端的 Microsoft Defender 是雲端安全性狀態管理 (CSPM) 和雲端工作負載保護 (CWP) 工具,可提供安全性建議、警示和進階功能,例如自適性網路強化,協助您在雲端安全性旅程中前進。 若要將 適用於雲端的 Defender 融入更大Microsoft安全性環境的位置可視化,請參閱Microsoft網路安全性參考架構。
本文不會詳細討論 適用於雲端的 Microsoft Defender,但請務必瞭解 適用於雲端的 Microsoft Defender 會根據Log Analytics工作區中內嵌的 Azure 原則和記錄運作。 使用輪輻 VNet 和相關聯的資源在訂用帳戶上啟用之後,您將可以看到改善其安全性狀態的建議。 您可以依 MITRE 策略、資源群組等進一步篩選這些建議。請考慮優先處理對組織安全分數產生更大影響的建議解決方案。
以下是 適用於雲端的 Microsoft Defender 入口網站中的範例。
如果您選擇將其中一個提供進階工作負載保護的 適用於雲端的 Defender 方案上線,它包含調適型網路強化建議,以改善現有的網路安全組規則。 以下是範例。
您可以選取 [強制執行],以接受建議,這會建立新的網路安全組規則或修改現有的網路安全組規則。
技術圖例
這些圖例是這些文章中參考圖例的複本。 下載並自定義您自己的組織和客戶。 將 Contoso 標誌取代為您自己的標誌。
項目 | 說明 |
---|---|
下載 Visio 更新日期:2024年10月 |
將 零信任 原則套用至 Azure IaaS 搭配下列文章使用這些圖例: - 概觀 - Azure 儲存體 - 虛擬機器 - Azure 輪輻虛擬網路 - Azure 中樞虛擬網路 |
下載 Visio 更新日期:2024年10月 |
將 零信任 原則套用至 Azure IaaS — 一頁海報 將 零信任 原則套用至 Azure IaaS 環境之程式的單頁概觀。 |
如需其他技術圖例,請參閱適用於IT架構設計人員和實作者的 零信任圖例。
推薦項目培訓
- 使用 Azure 角色型存取控制保護您的 Azure 資源 (Azure RBAC)
- 設定和管理 Azure 監視器
- 設定網路安全性群組
- 設計和實作網路安全性
- 使用 Azure 身分識別服務保護應用程式的存取
如需 Azure 中安全性的更多訓練,請參閱Microsoft目錄中的這些資源:
Azure 中的安全性 |Microsoft Learn
後續步驟
請參閱下列其他文章,以將 零信任 原則套用至 Azure:
- Azure IaaS 概觀
- Azure 虛擬桌面
- Azure 虛擬 WAN
- Amazon Web Services 中的 IaaS 應用程式
- Microsoft Sentinel 和 Microsoft Defender 全面偵測回應