對網路隔離進行規劃
在本文中,您將了解規劃 Azure Machine Learning 網路隔離的方式,以及我們的建議。 本文適用於想要設計網路結構的 IT 管理員。
建議的結構 (受管理的網路隔離模式)
使用受控虛擬網路 (部分機器翻譯) 為網路隔離提供更簡單的設定。 其會自動在受控虛擬網路中保護您的工作區和受控計算資源。 您可以新增工作區所仰賴之其他 Azure 服務 (例如 Azure 儲存體帳戶) 的私人端點連線。 視您的需求而定,您可以允許傳送到公用網路的所有輸出流量,或僅允許您核准的輸出流量。 系統會針對受控虛擬網路自動啟用 Azure Machine Learning 服務所需的輸出流量。 我們建議使用工作區受管理的網路隔離,以使用摩擦較少的內建網路隔離方法。 我們有兩個模式:允許網際網路輸出模式,或是僅允許核准的輸出模式。
允許網際網路輸出模式
如果您想允許機器學習工程師自由存取網際網路,請使用此選項。 您可以建立其他私人端點輸出規則,讓他們存取您 Azure 上的私人資源。
僅允許核准的輸出模式
如果您想要將資料外流的風險降至最低,並控制您的機器學習工程師所能存取的內容,請使用此選項。 您可以使用私人端點、服務標籤與 FQDN 來控制輸出規則。
建議的結構 (使用您的 Azure VNet)
如果您有防止您使用受控虛擬網路的特定需求或公司原則,則可以使用 Azure 虛擬網路來實現網路隔離。
下圖是我們針對將所有資源設定為私人資源,但允許從 VNet 進行輸出網際網路存取所建議的結構。 此圖說明下列結構:
- 將所有資源置於相同區域。
- 中樞 VNet,其中包含您的防火牆。
- 輪輻 VNet,其中包含下列資源:
- 包含用於 ML 模型之定型的計算執行個體和叢集的定型子網路。 這些資源已設定為不具任何公用 IP。
- 包含 AKS 叢集的評分子網路。
- 'pe' 子網路包含會連線至工作區和工作區所使用之私人資源 (儲存體、金鑰保存庫、容器登錄等) 的私人端點。
- 受控線上端點會使用工作區的私人端點來處理傳入要求。 私人端點也會用來允許受控線上端點部署存取私人儲存體。
此結構能在您的網路安全性和 ML 工程師的生產力之間取得平衡。
您可以使用 Bicep 範本或 Terraform 範本來自動建立此環境。 沒有受控線上端點或 AKS。 如果您沒有現有的 AKS 叢集可用於 AI 模型評分,受控線上端點便是解決方案。 請參閱如何部署線上端點 (部分機器翻譯) 文件以取得詳細資訊。 如果您有現有的 AKS 叢集可用於 AI 模型評分,則 AKS 搭配 Azure Machine Learning 延伸模組便是解決方案。 請參閱如何附加 Kubernetes (部分機器翻譯) 文件以取得詳細資訊。
移除防火牆需求
如果您想要移除防火牆需求,則可以使用網路安全性群組和 Azure 虛擬網路 NAT (部分機器翻譯) 來允許從私人計算資源進行網際網路輸出。
使用公用工作區
如果您願意搭配條件式存取使用 Microsoft Entra 驗證和授權,便可以使用公用工作區。 公用工作區有一些功能可以顯示您私人儲存體帳戶中的資料,且我們建議使用私人工作區。
針對防止資料外流所建議的結構
此圖顯示將所有資源設定為私人並控制輸出目的地以防止資料外流的建議結構。 建議在生產環境中搭配敏感性資料使用 Azure Machine Learning 時使用此結構。 此圖說明下列結構:
- 將所有資源置於相同區域。
- 中樞 VNet,其中包含您的防火牆。
- 除了服務標籤之外,防火牆會使用 FQDN 來防止資料外流。
- 輪輻 VNet,其中包含下列資源:
- 包含用於 ML 模型之定型的計算執行個體和叢集的定型子網路。 這些資源已設定為不具任何公用 IP。 此外,會準備服務端點和服務端點原則來防止資料外流。
- 包含 AKS 叢集的評分子網路。
- 'pe' 子網路包含會連線至工作區和工作區所使用之私人資源 (儲存體、金鑰保存庫、容器登錄等) 的私人端點。
- 受控線上端點會使用工作區的私人端點來處理傳入要求。 私人端點也會用來允許受控線上端點部署存取私人儲存體。
下表列出資料外流保護設定所需的輸出 Azure 服務標籤和完整網域名稱 (FQDN):
輸出服務標籤 | 通訊協定 | Port |
---|---|---|
AzureActiveDirectory |
TCP | 80、443 |
AzureResourceManager |
TCP | 443 |
AzureMachineLearning |
UDP | 5831 |
BatchNodeManagement |
TCP | 443 |
輸出 FQDN | 通訊協定 | Port |
---|---|---|
mcr.microsoft.com |
TCP | 443 |
*.data.mcr.microsoft.com |
TCP | 443 |
ml.azure.com |
TCP | 443 |
automlresources-prod.azureedge.net |
TCP | 443 |
使用公用工作區
如果您願意搭配條件式存取使用 Microsoft Entra 驗證和授權,便可以使用公用工作區。 公用工作區有一些功能可以顯示您私人儲存體帳戶中的資料,且我們建議使用私人工作區。
了解詳細資料的重要考量
Azure Machine Learning 同時具有 IaaS 和 PaaS 資源
Azure Machine Learning 的網路隔離涉及平台即服務 (PaaS) 和基礎結構即服務 (IaaS) 元件。 PaaS 服務 (例如 Azure Machine Learning 工作區、儲存體、金鑰保存庫、容器登錄與監視) 可使用 Private Link 加以隔離。 IaaS 計算服務 (例如適用於 AI 模型定型的計算執行個體/叢集,以及適用於 AI 模型評分的 Azure Kubernetes Service (AKS) 或受控線上端點) 可插入您的虛擬網路,並使用 Private Link 與 PaaS 服務通訊。 下圖為此結構的範例。
在此圖表中,計算執行個體、計算叢集與 AKS 叢集會隔離在您的虛擬網路之內。 其可以使用私人端點來存取 Azure Machine Learning 工作區或儲存體。 相較於私人端點,您可以針對 Azure 儲存體和 Azure Key Vault 使用服務端點。 其他服務不支援服務端點。
必要的輸入和輸出設定
Azure Machine Learning 針對您的虛擬網路具有數個必要的輸入和輸出設定 (部分機器翻譯)。 如果您有獨立的虛擬網路,可以使用網路安全性群組以相當直覺的方式設定。 不過,您可能有中樞-輪輻或網格網路結構、防火牆、網路虛擬設備、Proxy 與使用者定義路由。 無論是哪種情況,請務必使用您的網路安全性元件允許輸入和輸出。
在此圖表中,您有中樞與輪輻網路結構。 輪輻 VNet 具有用於 Azure Machine Learning 的資源。 中樞 VNet 具有控制源自您虛擬網路之網際網路輸出的防火牆。 在此案例中,防火牆必須針對必要的資源允許輸出,且輪輻 VNet 中的計算資源必須要能夠連線到防火牆。
提示
在圖表中,計算執行個體和計算叢集已設定為不具任何公用 IP。 如果您改為使用具有公用 IP 的計算執行個體或叢集,則必須使用網路安全性群組 (NSG) 和使用者定義路由來跳過您的防火牆,以允許來自 Azure Machine Learning 服務標籤的輸入。 此輸入流量將會是來自 Microsoft 服務 (Azure Machine Learning)。 不過,我們建議使用無公用 IP 的選項,以移除此輸入需求。
計算執行個體上私人連結資源和應用程式的 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 服務標籤和完整網域名稱 (FQDN):
輸出服務標籤 | 通訊協定 | Port |
---|---|---|
AzureActiveDirectory |
TCP | 80、443 |
AzureResourceManager |
TCP | 443 |
AzureMachineLearning |
UDP | 5831 |
BatchNodeManagement |
TCP | 443 |
輸出 FQDN | 通訊協定 | Port |
---|---|---|
mcr.microsoft.com |
TCP | 443 |
*.data.mcr.microsoft.com |
TCP | 443 |
ml.azure.com |
TCP | 443 |
automlresources-prod.azureedge.net |
TCP | 443 |
受控線上端點
受控線上端點的輸入和輸出通訊安全性是個別設定的。
輸入通訊
Azure Machine Learning 會使用私人端點來保護針對受控線上端點的輸入通訊。 將端點的 public_network_access
旗標設定為 disabled
,以防止對其進行公用存取。 當此旗標停用時,您的端點只能透過您 Azure Machine Learning 工作區的私人端點存取,且無法從公用網路連線。
輸出通訊
為了保護從部署到資源的輸出通訊,Azure Machine Learning 會使用工作區管理的虛擬網路。 必須在工作區管理的 VNet 中建立部署,使其可以使用工作區管理之虛擬網路的私人端點來進行輸出通訊。
下列架構圖顯示通訊如何從私人端點流向受控線上端點。 來自用戶端虛擬網路的傳入評分要求會從工作區的私人端點流向受控線上端點。 從部署到服務的輸出通訊會透過從工作區的受控虛擬網路流向那些服務執行個體的私人端點進行處理。
如需詳細資訊,請參閱受控線上端點的網路隔離。
您主要網路中的私人 IP 位址數量不足
Azure Machine Learning 需要使用私人 IP;每個計算執行個體、計算叢集節點,以及私人端點都需要一個 IP。 如果您使用 AKS,也會需要許多 IP。 與您的內部部署網路連線的中樞-輪幅網路可能沒有足夠大的私人 IP 位址空間。 在此案例中,您可以將隔離且非對等的 VNet 用於您的 Azure Machine Learning 資源。
在此圖表中,您的主要 VNet 需要私人端點的 IP。 您可以針對具有大型位址空間的多個 Azure Machine Learning 工作區採用中樞-輪幅 VNet。 此結構的其中一個缺點是需要有兩倍的私人端點。
網路原則強制執行
如果您想要搭配自助式工作區和計算資源建立控制網路隔離參數,可以使用內建原則 (部分機器翻譯)。
其他次要考量
適用於 VNet 後方之 ACR 的映像建置計算設定
如果您將 Azure 容器登錄 (ACR) 置於私人端點後方,ACR 將無法建置 Docker 映像。 您必須使用計算執行個體或計算叢集來建置映像。 如需詳細資訊,請參閱如何設定映像建置計算 (部分機器翻譯) 一文。
搭配啟用私人連結的工作區啟用工作室 UI
如果您計畫使用 Azure Machine Learning 工作室,還需要額外的設定步驟。 這些步驟是為了防止任何資料外流案例。 如需詳細資訊,請參閱如何在 Azure 虛擬網路中使用 Azure Machine Learning 工作室 (部分機器翻譯) 一文。
下一步
如需使用受控虛擬網路的詳細資訊,請參閱下列文章:
- 受管理的網路隔離 (部分機器翻譯)
- 使用私人端點來存取您的工作區
- 使用自訂 DNS
如需使用 Azure 虛擬網路的詳細資訊,請參閱下列文章: