使用 Azure PaaS 服務將零信任準則套用至輪輻虛擬網路
本文可協助您使用 Azure 虛擬網路 (VNet) 和私人端點,將 零信任 安全性模型的原則套用至 PaaS 工作負載:
零信任 原則 | 定義 | 符合者 |
---|---|---|
明確驗證 | 一律根據所有可用的資料點進行驗證及授權。 | 在 Azure 防火牆 和 Azure 應用程式閘道 中使用威脅偵測來驗證流量,並確認流量是否可接受。 |
使用最低權限存取 | 使用 Just-In-Time 和 Just-Enough-Access (JIT/JEA)、風險型調適型原則以及資料保護來限制使用者存取權。 | 減少從 Azure 服務到專用網的輸入和輸出。 使用網路安全組只允許來自 VNet 的特定輸入。 使用中央 Azure 防火牆 實例,將非 VNet 流量存取權授與 Azure 服務。 |
假設缺口 | 將爆炸半徑和區段存取權降至最低。 確認端對端加密,運用分析來提升資訊透明度與威脅偵測,並改善防禦。 | 限制資源之間的不必要的通訊。 請確定您正從網路安全組進行記錄,並且能夠正確查看異常流量。 追蹤網路安全組的變更。 |
如需如何在 Azure IaaS 環境中套用 零信任 原則的詳細資訊,請參閱將 零信任 原則套用至 Azure IaaS 概觀。
適用於 Azure PaaS 服務的獨立或輪輻網路 零信任
許多 PaaS 服務都包含自己的服務原生輸入和輸出控制功能。 您可以使用這些控件來保護 PaaS 服務資源的網路存取,而不需要 VNet 等基礎結構。 例如:
- Azure SQL 資料庫 有自己的防火牆,可用來允許需要存取資料庫伺服器的特定用戶端 IP 位址。
- Azure 記憶體帳戶具有組態選項,允許來自特定 VNet 的連線,或封鎖公用網路存取。
- Azure App 服務 支援存取限制,以定義可控制應用程式網路存取權的優先順序排序允許/拒絕清單。
不過,對於 零信任 引導式實作,這些服務原生訪問控制通常不足。 這會建立訪問控制和記錄的擴散,以增加管理和減少可見度。
此外,PaaS 服務可以使用解析為動態指派的公用IP位址的完整功能變數名稱 (FQDN),該位址會從特定區域中特定區域中的公用IP位址集區進行配置,以供服務類型使用。 因此,您無法使用可變更的公用IP位址,允許來自或流向特定 PaaS 服務的流量。
Microsoft建議您使用 私人端點。 私人端點是一個 VNet 介面,會使用來自 VNet 的私人 IP 位址。 此網路介面能夠以私人且安全的方式連線至 Azure Private Link 提供的服務。 藉由啟用私人端點,您可以將服務帶入 VNet。
根據您的解決方案案例,您可能仍然需要公用的 PaaS 服務輸入存取權。 但除非您這樣做,Microsoft建議所有流量保持私人,以消除潛在的安全性風險。
本指南提供特定參考架構的指示,但原則和方法可以視需要套用至其他架構。
參考架構
下圖顯示 PaaS 型工作負載的常見參考架構。
在此圖表中:
- 輪輻 VNet 包含支援 PaaS 應用程式的元件。
- PaaS 應用程式是兩層式應用程式,可運用 Web 應用程式/前端的 Azure 應用程式 Services,以及關係資料庫的 Azure SQL 資料庫。
- 每一層都包含在專用子網內,以使用專用網路安全組進行輸入。
- Web 層包含輸出的專用子網。
- 應用程式的存取權是透過其本身子網中包含的 應用程式閘道 來提供。
下圖顯示 Azure 訂用帳戶內這些元件的邏輯架構。
在圖表中,輪輻 VNet 的所有元件都包含在專用資源群組中:
- 一個 VNet
- 一個 Azure 應用程式閘道(App GW),包括一個 Web 應用程式防火牆(WAF)
- 資料庫、應用程式和前端層有三個網路安全組(在圖表中命名為 “NSG”
- 兩個應用程式安全組(在圖表中命名為 “ASG” )
- 兩個私人端點
此外,中樞 VNet 的資源會部署在適當的連線訂用帳戶中。
本文內容
零信任 原則會套用至整個架構,從租用戶和目錄層級到將 VM 指派給應用程式安全組。 下表說明保護此架構的建議。
步驟 | Task |
---|---|
1 | 利用Microsoft Entra RBAC 或設定網路資源的自定義角色。 |
2 | 將基礎結構隔離至自己的資源群組。 |
3 | 為每個子網建立網路安全組。 |
4 | 保護 VNet 內的流量和資源:
|
5 | 保護 Azure PaaS 服務的輸入和輸出。 |
6 | 保護對 VNet 和應用程式的存取。 |
7 | 啟用進階威脅偵測、警示和保護。 |
本指南假設您已在自己的資源群組中部署 Azure 應用程式 服務和 Azure SQL 資料庫。
步驟 1:利用 Microsoft Entra RBAC 或設定網路資源的自定義角色
您可以針對網路參與者利用 Microsoft Entra RBAC 內建角色 。 不過,另一種方法是利用自定義角色。 輪輻 VNet 網路管理員不需要完整存取 Microsoft Entra RBAC 網路參與者角色授與的網路資源,但需要比其他通用角色更多的許可權。 自定義角色可用來將存取範圍限定為所需專案。
實作這項操作的其中一個簡單方法是部署在 Azure 登陸區域參考架構中找到的自定義角色。
可以使用的特定角色是 網路管理 自定義角色,其具有下列許可權:
- 讀取範圍中的所有內容
- 任何網路提供者的動作
- 支援提供者的任何動作
- 資源提供者的任何動作
您可以使用 Azure 登陸區域參考架構 GitHub 存放庫中的腳本來建立此角色,也可以透過具有 Azure 自定義角色的 Microsoft Entra ID 來建立。
步驟 2:將基礎結構隔離至自己的資源群組
藉由隔離網路資源與計算、數據或記憶體資源,您可以降低許可權流血的可能性。 此外,藉由確保所有相關資源都位於一個資源群組中,您可以建立一個安全性指派,並更妥善地管理這些資源的記錄和監視。
建立專用的資源群組,而不是在共用資源群組的多個內容中使用輪輻網路資源。 下列架構圖顯示此組態。
在圖表中,參考架構中的資源和元件分成應用程式服務、Azure SQL 資料庫、記憶體帳戶、中樞 VNet 資源和輪輻 VNet 資源的專用資源群組。
使用專用的資源群組,您可以使用 Azure 入口網站 教學課程,將 Azure 資源的存取權授與自定義角色。
其他建議:
- 參考角色的安全組,而不是具名個人。
- 透過您的企業身分識別管理做法來管理安全組的存取權。
如果您未使用在資源群組上強制執行記錄轉送的原則,請在資源群組的活動記錄中設定:
- 在 Azure 入口網站 中尋找資源群組。
- 流覽至 [ 活動記錄 -> 匯出活動記錄 ],然後選取 [+ 新增診斷設定]。
- 在 [ 診斷設定] 畫面上,選取所有記錄類別(特別是 安全性),並將其傳送至適當的記錄來源,例如 Log Analytics 工作區以取得可觀察性,或長期儲存的記憶體帳戶。 以下是範例:
請參閱 診斷設定 ,以瞭解如何檢閱這些記錄並對其發出警示。
訂用帳戶大眾化
雖然與網路無關,但您應該以類似的方式規劃訂用帳戶 RBAC。 除了依資源群組以邏輯方式隔離資源之外,您也應該根據業務領域和組合擁有者來隔離訂用帳戶。 訂用帳戶作為管理單位的範圍應該會縮小。
如需詳細資訊,請參閱 Azure 登陸區域設計原則。
步驟 3:為每個子網建立網路安全組
Azure 網路安全組可用來篩選 Azure VNet 中 Azure 資源之間的網路流量。 建議將網路安全組套用至每個子網。 部署 Azure 登陸區域時,預設會透過 Azure 原則強制執行此動作。 網路安全性群組包含安全性規則,用來允許或拒絕進出多種 Azure 資源類型的輸入和輸出網路流量。 針對每個規則,您可以指定來源和目的地 IP 位址、通訊協定(例如 TCP 或 UDP),以及埠。
針對多層式應用程式,建議為每個裝載網路元件的子網建立專用網路安全組(下圖中的「NSG」。
在此圖表中:
- 應用程式的每一層都有專用的輸入子網,例如一個用於 Web 層,另一個用於數據層。
- Azure 應用程式 服務具有特定應用程式服務的專用輸出子網。
- 每個子網都會設定網路安全組。
以與圖表不同的方式設定網路安全組可能會導致部分或所有網路安全組的設定不正確,而且可以在疑難解答時建立問題。 它也會使監視和記錄變得困難。
請參閱 建立、變更或刪除 Azure 網路安全組 ,以管理網路安全組的設定。
深入了解 網路安全組 ,以瞭解其如何用來保護您的環境。
步驟 4:保護 VNet 內的流量和資源
本節說明下列建議:
- 部署網路安全組的基準拒絕規則
- 部署應用程式特定規則
- 規劃 VNet 中的管理流量
- 部署網路安全組流量記錄
部署網路安全組的基準拒絕規則
零信任 的關鍵元素是使用所需的最低存取層級。 根據預設,網路安全組具有 允許 規則。 藉由新增拒絕規則的基準,您可以強制執行最低層級的存取權。 布建之後,請在每個輸入和輸出規則中建立 拒絕所有 規則,優先順序為 4096。 這是可用的最後一個自定義優先順序,這表示您仍有設定允許動作的剩餘範圍。
若要這樣做,請在網路安全組中,移至 [ 輸出安全性規則 ],然後選取 [ 新增]。 填寫下列內容:
- 來源:任何
- 來源連接埠範圍:*
- 目的地:任何
- 服務:自訂
- 目的地埠範圍:*
- 通訊協定:Any
- 動作:Deny
- 優先順序:4096
- 名稱:DenyAllOutbound
- 描述:除非特別允許,否則會拒絕所有輸出流量。
以下是範例。
使用輸入規則重複此程式,並視需要調整名稱和描述。
[ 輸入安全性規則] 索引標籤會顯示規則上的警告登入。 以下是範例。
按兩下規則並捲動至底部,以查看更多詳細數據。 以下是範例:
此訊息提供下列兩個警告:
- 根據預設,Azure Load Balancer 將無法使用此網路安全組存取資源。
- 根據預設,此 VNet 上的其他資源將無法使用此網路安全組存取資源。
為了我們 零信任 的目的,這就是它應該如何。 這表示只是因為某個專案在此 VNet 上,並不表示它會立即存取您的資源。 針對每個流量模式,建立明確允許的規則,您應該以最少的許可權執行此動作。
如果您有特定的輸出連線來管理,例如 Active Directory 網域服務 (AD DS) 域控制器、私人 DNS VM 或特定外部網站,則必須在這裡加以控制。
替代拒絕規則
注意
本節中的建議僅適用於 Web 輸出子網。
如果您使用 Azure 防火牆 來管理輸出連線,而不是執行拒絕輸出連線,您可以建立輸出連線的替代規則。 在 Azure 防火牆 實作中,您會設定路由表,以將預設路由 (0.0.0.0.0/0) 流量傳送至防火牆。 這會處理 VNet 外部的流量。
然後,您可以建立拒絕所有 VNet 輸出規則,或允許所有輸出規則,但使用其輸入規則保護專案。
請參閱 Azure 防火牆 和路由表,以了解它們如何用來進一步提高環境的安全性。
部署應用程式特定規則
使用最少的許可權定義流量模式,並只遵循明確允許的路徑。 使用子網作為來源,在網路安全組中定義網路模式。 以下是範例。
使用管理 網路安全組:建立安全性規則 程式,將規則新增至網路安全組。
若要保護此案例,請新增下列規則:
子網的網路安全組 | 方向 | 來源 | 來源詳細資料 | 來源連接埠 | Destination | 目的地詳細數據 | 服務 | 網路安全組名稱 | 網路安全組描述 |
---|---|---|---|---|---|---|---|---|---|
App Service 子網 | 傳入 | IP 位址 | 您的 應用程式閘道 子網的私人IP位址範圍 | 443 | IP 位址 | App Service 私人端點的明確 IP 位址 | MS SQL | AllowGWtoAppInbound | 允許從 應用程式閘道 存取 App Service。 |
App Service 整合子網 | 輸出 | IP 位址 | App Service 整合子網的IP位址範圍 | 1433 | IP 位址 | SQL DB 私人端點的明確IP位址 | MS SQL | AllowApptoSQLDBOutbound | 允許從 App Service 整合子網輸出存取 SQL 私人端點。 |
Azure SQL 子網 | 傳入 | IP 位址 | App Service 整合子網的IP位址範圍 | 1433 | IP 位址 | SQL DB 私人端點的明確IP位址 | MS SQL | AllowApptoSQLDBInbound | 允許從 App Service 整合子網存取 SQL 私人端點。 |
注意
有時候來源流量可能來自不同的埠,如果發生此模式,您可以將來源埠範圍新增至 “*”,以允許任何來源埠。 目的地埠更重要,有些建議一律會針對來源埠使用 “*”。
注意
針對優先順序,請使用介於100到4000之間的值。 您可以從 105 開始。
這是除了您 應用程式閘道 子網上的網路安全組規則之外。
使用這些規則,您已為單一應用層定義 零信任 連線模式。 您可以視需要針對其他流程重複此程式。
規劃 VNet 中的管理流量
除了應用程式特定的流量之外,還規劃管理流量。 不過,由於管理流量通常源自輪輻 VNet 外部,因此需要更多規則。 首先,瞭解管理流量將來自的特定埠和來源。 一般而言,所有管理流量都應該從位於輪輻中樞網路的防火牆或其他網路虛擬設備 (NVA) 流動。
如需完整的參考架構,請參閱將 零信任 原則套用至 Azure IaaS 概觀。
您的設定會根據您的特定管理需求而有所不同。 不過,您應該在防火牆應用裝置上使用規則,以及網路安全組上的規則,以明確允許平台網路和工作負載網路端的連線。
規劃部署
因為您的應用程式服務和資料庫現在使用專用網,因此請規劃如何將程式代碼和數據部署到這些資源。 新增規則以允許私人組建伺服器存取這些端點。
部署網路安全組流量記錄
即使您的網路安全組封鎖不必要的流量,也不表示您的目標已符合。 若要偵測攻擊,您仍然需要觀察明確模式外發生的流量。
不會記錄私人端點的流量,但如果其他服務部署至子網,則此記錄檔有助於偵測活動。
若要啟用網路安全組流程記錄,請遵循教學 課程:針對私人端點的現有網路安全組來回記錄虛擬機 的網路流量。
注意
請記住這些建議:
您應該視需要限制對記錄的存取。
記錄應該視需要流入Log Analytics,並Microsoft Sentinel。
步驟 5:保護 Azure PaaS 服務的輸入和輸出
本節包含保護 PaaS 服務的輸入和輸出所需的兩個步驟:
- 部署私人端點以輸入至您的服務。
- 部署 VNet 整合,以允許應用程式服務與您的 VNet 通訊。
此外,您也應該考慮 DNS 設定,以允許名稱解析。
部署用於輸入的私人端點
雖然許多服務可讓您從 Azure 入口網站 中的資源特定刀鋒視窗建立私人端點,但更一致的體驗是從自己的資源建立建立私人端點。 若要這樣做,應該已經部署資源。 部署之後,您可以 建立私人端點。
部署私人端點時,請依照下列方式進行設定:
- 將它們放在包含父資源的特定資源群組中,以將資源與類似的生命週期放在一起,並提供集中存取權。
- 根據 VNet 的角色,將它們放在適當的子網中。
- 針對 Azure 應用程式 服務,您可以設定其一般前端和 SCM 端點的私人端點,用於部署和管理。
此外,在此部署中,您應該確定服務特定的防火牆已設定為拒絕輸入流量。 這會拒絕公開輸入的任何嘗試。
針對 Azure SQL 資料庫, 請管理其伺服器層級 IP 防火牆規則。 確定 [公用網络存取] 已從 Azure 入口網站 中的網络面板設定為 [停用]。
針對 Azure 應用程式 服務,新增私人端點會設定其服務等級防火牆,以默認封鎖輸入存取。 如需詳細資訊,請參閱 使用App Service 應用程式的私人端點。
部署輸出的 VNet 整合
除了輸入的私人端點之外,還啟用 VNet 整合。 每個 App Service 方案都可以啟用 VNet 整合,並這麼做會配置 App Service 的整個子網。 如需詳細資訊,請參閱 整合您的應用程式與 Azure VNet。
若要設定 App Service,請參閱在 Azure App 服務 中啟用 VNet 整合。 請確定您將它放在指定的輸出子網中。
DNS 考量
在使用私人端點時,啟用資源的 FQDN DNS 解析至其新的私人 IP 位址。 如需以各種方式實作此作業的指示,請參閱 私人端點 DNS 設定。
注意
DNS 解析必須套用至所有流量。 除非資源使用正確的 DNS 區域,否則相同 VNet 中的資源將無法解析。
步驟 6:保護對 VNet 和應用程式的存取
保護 VNet 與應用程式存取權包括:
- 保護 Azure 環境內對應用程式的流量
- 使用多重要素驗證 (MFA) 和條件式存取原則來存取應用程式。
下圖顯示參考架構之間的這兩種存取模式。
保護 VNet 和應用程式 Azure 環境內的流量
Azure 環境中大部分的安全性流量工作已完成。 請參閱將 零信任 原則套用至 Azure 記憶體,以設定記憶體資源與 VM 之間的安全連線。
請參閱將 零信任 原則套用至 Azure 中的中樞 VNet,以保護從中樞資源到 VNet 的存取。
使用 MFA 和條件式存取原則來存取應用程式
將 零信任 原則套用至虛擬機一文建議如何使用 MFA 和條件式存取,直接保護對 VM 的存取要求。 這些要求最有可能來自系統管理員和開發人員。 下一個步驟是使用 MFA 和條件式存取來保護對應用程式的存取。 這適用於所有存取應用程式的使用者。
首先,如果應用程式尚未與 Microsoft Entra 識別元整合,請參閱 Microsoft 身分識別平台 的應用程式類型。
接下來,將應用程式新增至身 分識別和裝置存取原則的範圍。
使用條件式存取和相關原則設定 MFA 時,請使用針對 零信任 設定的建議原則做為指南。 這包括 不需要管理裝置的起始點 原則。 在理想情況下,存取 VM 的裝置會受到管理,而且您可以實作企業層級,這是建議用於 零信任。 如需詳細資訊,請參閱常見的 零信任 身分識別和裝置存取原則。
下圖顯示 零信任 的建議原則。
步驟 7:啟用進階威脅偵測和保護
建置在 Azure 上的輪輻 VNet 可能會受到 適用於雲端的 Microsoft Defender 保護,因為 Azure 或內部部署上執行之 IT 商務環境的其他資源也可能受到保護。
如本系列的其他文章所述,適用於雲端的 Defender 是雲端安全性狀態管理 (CSPM) 和雲端工作負載保護 (CWP) 工具,可提供安全性建議、警示和進階功能,例如自適性網路強化,協助您在雲端安全性旅程中取得進展。
本文不會詳細說明 適用於雲端的 Defender,但請務必瞭解 適用於雲端的 Defender 會根據Log Analytics工作區中內嵌的 Azure 原則和記錄運作。 使用輪輻 VNet 和相關聯的資源在訂用帳戶上啟用之後,您可以看到改善其安全性狀態的建議。 您可以透過 MITRE 策略、資源群組和其他項目進一步篩選這些建議。 請考慮優先處理對貴組織安全分數產生更大影響的建議。 以下是範例。
有 適用於雲端的 Defender 計劃提供進階工作負載保護,包括調適型網路強化建議,以改善現有的網路安全組規則。 以下是範例。
您可以選取 [強制執行],以接受建議,這會建立新的網路安全組規則或修改現有的網路安全組規則。
推薦項目培訓
後續步驟
請參閱下列其他文章,以將 零信任 原則套用至 Azure:
- 針對 Azure IaaS:
- Azure 虛擬桌面
- Azure 虛擬 WAN
- Amazon Web Services 中的 IaaS 應用程式
- Microsoft Sentinel 和 Microsoft Defender 全面偵測回應