規劃 Azure 機器學習 中的網路隔離
在本文中,您將了解規劃 Azure Machine Learning 網路隔離的方式,以及我們的建議。 本文適用於想要設計網路結構的 IT 管理員。
什麼是網路隔離?
網路隔離是一種安全性策略,牽涉到將網路分割成個別的區段或子網,每個網路都會作為自己的小型網路運作。 這種方法有助於改善較大網路結構內的安全性和效能。 主要企業需要網路隔離,以保護其資源免於未經授權的存取、竄改或數據與模型外洩。 他們還需要遵守適用於其產業和領域的法規和標準。
輸入和輸出存取
必須在 Azure 機器學習 內的三個區域中考慮網路隔離:
- Azure 機器學習 工作區的輸入存取權。 例如,針對您的 資料科學家 安全地存取工作區。
- 從 Azure 機器學習 工作區的輸出存取。 例如,若要存取其他 Azure 服務。
- 從 Azure 機器學習 計算資源的輸出存取。 例如,若要存取數據源、Python 套件存放庫或其他資源。
下圖細分輸入和輸出。
Azure 機器學習 的輸入存取
使用公用網路存取 (PNA) 旗標來設定安全 Azure 機器學習 工作區的輸入存取權。 PNA 旗標設定會決定您的工作區是否需要私人端點,或不需要存取工作區。 公用與私人之間有額外的設定:從選取的IP位址啟用。 此設定可讓您從您指定的IP位址存取工作區。 如需這項功能的詳細資訊,請參閱 僅從因特網IP範圍啟用公用存取。
輸出存取
Azure Machine Learning 的網路隔離涉及平台即服務 (PaaS) 和基礎結構即服務 (IaaS) 元件。 PaaS 服務 (例如 Azure Machine Learning 工作區、儲存體、金鑰保存庫、容器登錄與監視) 可使用 Private Link 加以隔離。 IaaS 計算服務 (例如適用於 AI 模型定型的計算執行個體/叢集,以及適用於 AI 模型評分的 Azure Kubernetes Service (AKS) 或受控線上端點) 可插入您的虛擬網路,並使用 Private Link 與 PaaS 服務通訊。 下圖是 IaaS 和 PaaS 元件的範例。
從服務輸出至其他 Azure PaaS 資源
透過受信任的服務完成從 Azure 機器學習 服務到其他 PaaS 服務的輸出存取。 您可以將信任的 Azure 服務存取權子集授與 Azure 機器學習,同時維護其他應用程式的網路規則。 這些受信任的服務會使用受控識別來驗證 Azure 機器學習 服務。
從計算輸出到因特網和其他 Azure PaaS 資源
IaaS 元件是計算資源,例如計算實例/叢集和 Azure Kubernetes Service (AKS) 或受控在線端點。 針對這些 IaaS 資源,透過防火牆保護因特網的輸出存取,而其他 PaaS 資源的輸出存取則受到 Private Link 和私人端點保護。 受控虛擬網路可讓您更輕鬆地設定從計算控制輸出。
如果您未使用受控虛擬網路,則可使用您自己的虛擬網路和子網集來保護輸出控制。 如果您有獨立的虛擬網路,可以使用網路安全性群組以相當直覺的方式設定。 不過,您可能會有中樞輪輻或網狀網路架構、防火牆、網路虛擬設備、Proxy 和使用者定義的路由。 無論是哪種情況,請務必使用您的網路安全性元件允許輸入和輸出。
在此圖表中,您有中樞與輪輻網路結構。 輪輻虛擬網路具有 Azure 機器學習 的資源。 中樞虛擬網路具有防火牆,可控制來自虛擬網路的因特網輸出。 在此情況下,您的防火牆必須允許輸出到所需的資源,而且輪輻虛擬網路中的計算資源必須能夠連線到您的防火牆。
提示
在圖表中,計算執行個體和計算叢集已設定為不具任何公用 IP。 如果您改為使用具有公用 IP 的計算執行個體或叢集,則必須使用網路安全性群組 (NSG) 和使用者定義路由來跳過您的防火牆,以允許來自 Azure Machine Learning 服務標籤的輸入。 此輸入流量將會是來自 Microsoft 服務 (Azure Machine Learning)。 不過,我們建議使用無公用 IP 的選項,以移除此輸入需求。
從計算輸出存取的網路隔離供應專案
既然我們瞭解需要保護哪些存取權,讓我們看看如何透過網路隔離來保護機器學習工作區。 Azure 機器學習 提供從運算資源進行輸出存取的網路隔離選項。
受控網路隔離(建議)
使用受控虛擬網路 (部分機器翻譯) 為網路隔離提供更簡單的設定。 其會自動在受控虛擬網路中保護您的工作區和受控計算資源。 您可以新增工作區所仰賴之其他 Azure 服務 (例如 Azure 儲存體帳戶) 的私人端點連線。 視您的需求而定,您可以允許傳送到公用網路的所有輸出流量,或僅允許您核准的輸出流量。 系統會針對受控虛擬網路自動啟用 Azure Machine Learning 服務所需的輸出流量。 我們建議使用工作區受管理的網路隔離,以使用摩擦較少的內建網路隔離方法。 我們有兩個模式:允許網際網路輸出模式,或是僅允許核准的輸出模式。
注意
使用受控虛擬網路保護您的工作區,可提供從工作區和受控計算進行輸出存取的網路隔離。 您建立和管理 的 Azure 虛擬網路可用來提供對工作區進行輸入存取的網路隔離。 例如,工作區的私人端點會在您的 Azure 虛擬網路中建立。 任何連線到虛擬網路的用戶端都可以透過私人端點存取工作區。 在受控計算上執行作業時,受控網路會限制計算可存取的內容。 此設定與自定義虛擬網路供應專案不同,這也需要設定虛擬網路,並將所有計算設定到該虛擬網路。
允許因特網輸出模式:如果您想要允許機器學習工程師自由存取因特網,請使用此選項。 您可以建立其他私人端點輸出規則,讓他們存取您 Azure 上的私人資源。
只允許核准的輸出模式:如果您想要將數據外泄風險降到最低,並控制您的機器學習工程師可以存取的內容,請使用此選項。 您可以使用私人端點、服務標籤和 FQDN 來控制輸出規則。
自定義網路隔離
如果您有防止您使用受控虛擬網路的特定需求或公司原則,則可以使用 Azure 虛擬網路來實現網路隔離。
下圖是建議的架構,讓所有資源成為私人資源,但允許從您的虛擬網路進行輸出因特網存取。 此圖說明下列結構:
- 將所有資源置於相同區域。
- 中樞虛擬網路,其中包含您的防火牆和自定義 DNS 設定。
- 輪輻虛擬網路,其中包含下列資源:
- 包含用於 ML 模型之定型的計算執行個體和叢集的定型子網路。 這些資源已設定為不具任何公用 IP。
- 包含 AKS 叢集的評分子網路。
- 'pe' 子網路包含會連線至工作區和工作區所使用之私人資源 (儲存體、金鑰保存庫、容器登錄等) 的私人端點。
- 若要使用自定義虛擬網路保護您的受控在線端點,請啟用舊版受控在線端點受控虛擬網路。 不建議使用此方法。
此結構能在您的網路安全性和 ML 工程師的生產力之間取得平衡。
注意
如果您想要移除防火牆需求,您可以使用網路安全組和 Azure 虛擬網絡 NAT 來允許從私人計算資源輸出因特網。
資料外流防護
此圖顯示將所有資源設定為私人並控制輸出目的地以防止資料外流的建議結構。 建議在生產環境中搭配敏感性資料使用 Azure Machine Learning 時使用此結構。 此圖說明下列結構:
- 將所有資源置於相同區域。
- 包含防火牆的中樞虛擬網路。
- 除了服務標籤之外,防火牆會使用 FQDN 來防止資料外流。
- 輪輻虛擬網路,其中包含下列資源:
- 包含用於 ML 模型之定型的計算執行個體和叢集的定型子網路。 這些資源已設定為不具任何公用 IP。 此外,會準備服務端點和服務端點原則來防止資料外流。
- 包含 AKS 叢集的評分子網路。
- 'pe' 子網路包含會連線至工作區和工作區所使用之私人資源 (儲存體、金鑰保存庫、容器登錄等) 的私人端點。
- 受控線上端點會使用工作區的私人端點來處理傳入要求。 私人端點也會用來允許受控線上端點部署存取私人儲存體。
網路隔離選項的比較
受管理的網路隔離和自定義網路隔離都是類似的供應專案。 下表說明兩個供應項目在設定方面的所有相似性和差異。 其設定的其中一個主要差異在於裝載計算本身的虛擬網路。 針對自定義網路隔離,計算的虛擬網路位於您的租使用者中,而針對 受管理的網路隔離,計算的虛擬網路位於Microsoft租使用者中。
相似之處 | 差異 |
---|---|
- 網路專用於您,不會與任何其他客戶共用。
- 虛擬網路中的數據受到保護。 - 使用輸出規則完全控制輸出。 - 必要的 ServiceTags。 |
- 裝載虛擬網路的位置;在您的租使用者中,用於自定義網路隔離,或在 受管理的網路隔離 的 Microsoft 租使用者中。 |
若要正確決定哪一個網路設定最適合您的案例,請考慮您想要使用的 Azure 機器學習 功能。 如需網路隔離供應專案之間差異的詳細資訊,請參閱 比較網路隔離設定。
組態的比較
受控網路 (建議) | 自定義網路 | |
---|---|---|
福利 | - 將設定和維護額外負荷降至最低。
- 支援受控在線端點。 - 支援無伺服器 Spark。 - 存取位於內部部署或自定義虛擬網路中的 HTTP 端點資源。 - 聚焦於新功能開發。 |
- 根據您的需求自定義網路。
- 自備非 Azure 資源。 - 聯機到內部部署資源。 |
限制 | - Azure 防火牆 和 FQDN 規則的額外成本。
- 不支援記錄虛擬網路防火牆和 NSG 規則。 - 不支援存取非 HTTP 端點資源。 |
- 新功能支援可能會延遲。
-不支援受控在線端點。 - 不支援無伺服器 Spark。 - 不支持基礎模型。 - 不支援任何程式代碼 MLFlow。 - 實作複雜度。 - 維護額外負荷。 |
使用公用工作區
如果您使用 Microsoft Entra ID 驗證和條件式存取的授權,則可以使用公用工作區。 公用工作區有一些功能,允許在私人記憶體帳戶中使用數據。 建議您盡可能使用私人工作區。
主要考量
計算執行個體上私人連結資源和應用程式的 DNS 解析
如果您自己有裝載在 Azure 或內部部署中的 DNS 伺服器,則必須在 DNS 伺服器中建立條件式轉寄站。 條件式轉寄站會將 DNS 要求傳送至已啟用私人連結之所有 PaaS 服務的 Azure DNS。 如需詳細資訊,請參閱 DNS 設定案例 (部分機器翻譯) 和 Azure Machine Learning 特定 DNS 設定 (部分機器翻譯) 文章。
資料外洩保護
一共有兩種類型的輸出:唯讀和讀取/寫入。 惡意執行者的 無法指數唯讀輸出,但可擦寫的輸出可以是 。 Azure 儲存體 和 Azure Frontdoor (frontdoor.frontend 服務標籤)在我們的案例中是讀取/寫入輸出。
您可以使用我們的資料外流防止解決方案 (部分機器翻譯) 來降低此資料外流風險。 我們使用具有 Azure Machine Learning 別名的服務端點原則,以允許僅輸出至 Azure Machine Learning 管理的儲存體帳戶。 您不需要在防火牆上針對儲存體開放輸出。
在此圖表中,計算執行個體和叢集需要存取 Azure Machine Learning 管理的儲存體帳戶來取得設定指令碼。 相較於針對儲存體開放輸出,您可以搭配 Azure Machine Learning 別名使用服務端點原則,讓儲存體只能存取 Azure Machine Learning 儲存體帳戶。
受控線上端點
受控線上端點的輸入和輸出通訊安全性是個別設定的。
- 輸入通訊:Azure 機器學習 使用私人端點來保護對受控在線端點的輸入通訊。 若要防止公用存取端點,請將端點的public_network_access旗標設定為停用。 當此旗標停用時,您的端點只能透過您 Azure Machine Learning 工作區的私人端點存取,且無法從公用網路連線。
- 輸出通訊:若要保護從部署到資源的輸出通訊,Azure 機器學習 會使用工作區受控虛擬網路。 部署必須在工作區受控虛擬網路中建立,才能使用工作區受控虛擬網路的私人端點進行輸出通訊。
下列架構圖顯示通訊如何從私人端點流向受控線上端點。 來自用戶端虛擬網路的傳入評分要求會從工作區的私人端點流向受控線上端點。 從部署到服務的輸出通訊會透過從工作區的受控虛擬網路流向那些服務執行個體的私人端點進行處理。
如需詳細資訊,請參閱受控線上端點的網路隔離。
您主要網路中的私人 IP 位址數量不足
Azure Machine Learning 需要使用私人 IP;每個計算執行個體、計算叢集節點,以及私人端點都需要一個 IP。 如果您使用 AKS,也會需要許多 IP。 與您的內部部署網路連線的中樞-輪幅網路可能沒有足夠大的私人 IP 位址空間。 在此案例中,您可以將隔離且非對等的 VNet 用於您的 Azure Machine Learning 資源。
在此圖表中,您的主要虛擬網路需要私人端點的IP。 您可以針對具有大型位址空間的多個 Azure Machine Learning 工作區採用中樞-輪幅 VNet。 此結構的其中一個缺點是需要有兩倍的私人端點。
網路原則強制執行
如果您想要使用自助式工作區控制網路隔離參數,以及建立計算資源,或建立自定義原則以取得更精細的控制,您可以使用內建原則。 如需原則的詳細資訊,請參閱 Azure 原則 法規合規性控制。
相關內容
如需使用受控虛擬網路的詳細資訊,請參閱下列文章:
如需使用 自定義虛擬網路的詳細資訊,請參閱下列文章: