使用虛擬網路保護 Azure Machine Learning 定型環境

適用於Python SDK azure-ai-ml v2 (目前)

在本文中,您將了解如何在 Azure Machine Learning 中使用虛擬網路來保護訓練環境。 您會了解如何透過 Azure Machine Learning 工作室 和 Python SDK v2 來保護訓練環境。

提示

本文是關於保護 Azure Machine Learning 工作流程系列文章的一部分。 請參閱本系列的其他文章:

如需關於建立安全工作區的教學課程,請參閱教學課程:建立安全工作區教學課程:使用範本建立安全工作區

在本文中,您將了解如何在虛擬網路中保護下列訓練計算資源:

  • Azure Machine Learning 計算叢集
  • Azure Machine Learning 計算執行個體
  • Azure Databricks
  • 虛擬機器
  • HDInsight 叢集

必要條件

  • 請參閱網路安全性概觀,以了解常見的虛擬網路情節和整體虛擬網路架構。

  • 用於計算資源的現有虛擬網路和子網路。

  • 若要將資源部署到虛擬網路或子網路,在 Azure 角色型存取控制 (Azure RBAC) 中,您的使用者帳戶必須具有下列動作的權限:

    • 虛擬網路資源上的 "Microsoft.Network/virtualNetworks/*/read"。 Azure Resource Manager (ARM) 範本部署不需要此權限。
    • 子網路資源上的 "Microsoft.Network/virtualNetworks/subnet/join/action"。

    如需 Azure RBAC 搭配網路的詳細資訊,請參閱網路內建角色

Azure Machine Learning 計算叢集/執行個體

  • 計算叢集和執行個體會建立下列資源。 如果無法建立這些資源 (例如,如果資源群組上有資源鎖定),則建立、擴增或縮減可能會失敗。

    • IP 位址。
    • 網路安全性群組 (NSG)。
    • 負載平衡器。
  • 虛擬網路必須在與 Azure Machine Learning 工作區相同的訂用帳戶中。

  • 用於計算執行個體或叢集的子網路必須有足夠的未指派 IP 位址。

    • 計算叢集可以動態調整。 如果沒有足夠的未指派 IP 位址,則將局部配置叢集。
    • 計算執行個體只需要一個 IP 位址。
  • 若要建立不含公用 IP 位址的計算叢集或執行個體 (預覽功能),您的工作區必須使用私人端點來連線至 VNet。 如需詳細資訊,請參閱設定 Azure Machine Learning 工作區的私人端點

  • 如果您打算透過限制流量來保護虛擬網路,請參閱必要的公用網際網路存取一節。

  • 用來部署計算叢集/執行個體的子網路不應委派給任何其他服務。 例如,不應該委派給 ACI。

Azure Databricks

  • 虛擬網路必須在與 Azure Machine Learning 工作區相同的訂用帳戶和區域中。
  • 如果工作區的 Azure 儲存體帳戶也在虛擬網路中受到保護,則這些帳戶必須位於與 Azure Databricks 叢集相同的虛擬網路中。

限制

Azure Machine Learning 計算叢集/執行個體

  • 如果將多個計算執行個體或叢集放在一個虛擬網路中,您可能必須要求一或多個資源的配額增加。 Machine Learning 計算執行個體或叢集會自動將網路資源配置在包含虛擬網路的資源群組中。 針對每個計算執行個體或叢集,服務會配置下列資源:

    • 一個網路安全性群組 (NSG)。 此 NSG 包含下列適用於計算叢集和計算執行個體的規則:

      重要

      計算執行個體和計算叢集會自動建立包含必要規則的 NSG。

      如果子網路層級有另一個 NSG,子網路層級 NSG 中的規即不得與自動建立 NSG 中的規則衝突。

      若要了解 NSG 如何篩選網路流量,請參閱網路安全性群組如何篩選網路流量

      • 允許連接埠 29876-29877 上來自 BatchNodeManagement 服務標籤的輸入 TCP 流量。
      • 允許連接埠 44224 上來自 AzureMachineLearning 服務標籤的輸入 TCP 流量。

      以下螢幕擷取畫面顯示這些規則的範例:

      NSG 的螢幕擷取畫面

      提示

      如果您的計算叢集或執行個體未使用公用 IP 位址 (預覽功能),則不需要這些輸入 NSG 規則。

    • 您現在可以移除計算叢集或執行個體的公用 IP 位址 (預覽功能)。 如果您有禁止建立公用 IP 的 Azure 原則指派,則計算叢集或執行個體將會成功部署。

    • 一個負載平衡器

    若是計算叢集,每次叢集縮小為 0 個節點時,這些資源就會刪除,而擴大時則會建立這些資源。

    若是計算執行個體,這些資源則會保留到刪除執行個體為止。 停止執行個體並不會移除資源。

    重要

    這些資源會被訂用帳戶的資源配額所限制。 如果虛擬網路資源群組遭到鎖定,則刪除計算叢集/執行個體將會失敗。 在刪除計算叢集/執行個體之前,將無法刪除負載平衡器。 此外,請確定沒有任何 Azure 原則指派會禁止建立網路安全性群組。

  • 如果您建立計算執行個體並計畫使用無公用 IP 位址設定,則針對包含工作區的虛擬網路,Azure Machine Learning 工作區的受控識別必須獲指派其讀者角色。 如需指派角色的詳細資訊,請參閱指派 Azure 角色的步驟

    重要

    使用沒有公用 IP組態時,您必須加入宣告此預覽版。 加入宣告之前,您必須先在您打算使用的訂用帳戶上建立工作區和計算實例。 您可以在建立計算執行個體及/或工作區之後,刪除這些項目。

    使用 https://forms.office.com/r/0Rw6mXTT07 中的表單加入此 Azure Machine Learning 預覽版。 當您的訂閱加入預覽版的允許清單之後,Microsoft 會與您連絡。 您的訂閱約需一到兩週才會加入允許清單。 加入宣告提供下列優點:

    • 其他區域可用於沒有公用 IP 組態
    • 資料外泄保護
    • 負載平衡器、公用 IP 或私人連結服務沒有網路成本。

    如果您已在不使用表單加入宣告預覽的情況下,使用未設定任何公用 IP 的計算實例,則必須在訂用帳戶被允許清單後刪除並重新建立這些實例,以利用新的架構和區域可用性。 針對未針對任何公用 IP 設定的現有計算叢集,一旦叢集縮減為 0 個節點, (要求將最小節點設定為 0) ,它會在下次允許列入訂用帳戶之後配置節點時,利用新的架構。

    注意

    一旦您的 Azure 訂用帳戶被允許列入沒有公用 IP 預覽版的允許清單後,目前可以使用沒有公用 IP 位址的計算實例和計算叢集的支援,並公開預覽下欄區域: 法國中部、東亞、東南亞、美國中西部、美國中南部、美國西部 2、美國西部 3、美國東部、 美國東部 2、北歐、西歐、美國中部、美國中北部、美國西部、澳大利亞東部、澳大利亞東南部、日本東部、日本西部、巴西東南部、巴西南部、加拿大中部、印度中部、加拿大東部、印度中部、南韓中部、南韓南部、瑞典南部、瑞士北部、瑞士西部、英國西部、英國南部、阿拉伯聯合大公國北部、德國西部、挪威東部、 南非北部。 政府:USGov 維吉尼亞州、USGov 維吉尼亞州、USGov 德州。 Azure 中國:中國北部 3。

    如果您未使用加入表單而未使用任何公開 IP 預覽版,您可以使用下欄區域:法國中部、東亞、美國中西部、美國中南部、美國西部 2、美國東部、北歐、美國東部 2、美國中部、西歐、美國中北部、美國西部、澳大利亞東部、日本東部、日本西部。

  • 如果您已針對虛擬網路後面的工作區設定 Azure Container Registry,則必須使用計算叢集來建置 Docker 映像。 如果您使用設定為沒有公用 IP 位址的計算叢集,則必須提供一些方法讓叢集存取公用網際網路。 存取儲存在 Microsoft Container Registry 上的映像、安裝在 Pypi、Conda 上的套件等時,需要網際網路存取。如需詳細資訊,請參閱啟用 Azure Container Registry

  • 如果工作區的 Azure 儲存體帳戶也位於虛擬網路中,請使用下列有關子網路限制的指引:

    • 如果您打算使用 Azure Machine Learning 工作室將資料視覺化或使用設計工具,則儲存體帳戶必須位於與計算執行個體或叢集相同的子網路中
    • 如果您打算使用 SDK,儲存體帳戶可以位於不同的子網路中。

    注意

    為您的工作區新增資源執行個體,或選取 [允許信任的 Microsoft 服務存取此帳戶] 核取方塊,並不足以允許從計算進行通訊。

  • 當您的工作區使用私人端點時,您只能從虛擬網路內部存取計算執行個體。 如果您使用自訂 DNS 或 Hosts 檔案,請新增 <instance-name>.<region>.instances.azureml.ms 的項目。 將此項目對應至工作區私人端點的私人 IP 位址。 如需詳細資訊,請參閱自訂 DNS 一文。

  • 虛擬網路服務端點原則不適用於計算叢集/執行個體系統儲存體帳戶。

  • 如果儲存體和計算執行個體位於不同的區域,您可能會看到間歇性的逾時情形。

  • 如果您工作區的 Azure Container Registry 使用私人端點來連線到虛擬網路,您就無法使用計算執行個體的受控識別。 若要搭配計算執行個體使用受控識別,請不要將容器登錄放在 VNet 中。

  • 如果您想要在計算執行個體上使用 Jupyter Notebook:

    • 請勿停用 Websocket 通訊。 確定您的網路允許對 *.instances.azureml.net*.instances.azureml.ms 進行 Websocket 通訊。
    • 確定您的筆記本正在與資料所在虛擬網路和子網路後方的計算資源上執行。 建立計算執行個體時,請使用 [進階設定]>[設定虛擬網路] 來選取網路和子網路。
  • 您可以在工作區以外的區域中建立計算叢集。 這項功能目前為預覽版本,且僅適用於計算叢集,而非計算執行個體。 使用不同區域來建立叢集時,須遵循下列限制:

    • 如果工作區相關聯的資源 (例如儲存體) 與叢集位於不同的虛擬網路中,請設定網路之間的全域虛擬網路對等互連。 如需詳細資訊,請參閱虛擬網路對等互連
    • 您可能會看到增加的網路延遲和資料傳輸成本。 建立叢集以及在叢集上執行作業時,可能會產生延遲和成本。

    使用與工作區不同的區域時,NSG 規則、使用者定義路由及輸入/輸出需求等等的使用指引則一如往常。

    警告

    如果您使用啟用私人端點的工作區,則不支援在不同區域中建立叢集。

  • Azure Machine Learning 工作區需要公用網際網路上對 storage.<region>/*.blob.core.windows.net 的輸出存取權,其中 <region> 是工作區的 Azure 區域。 Azure Machine Learning 計算叢集和計算執行個體需要此輸出存取。 兩者都是以 Azure Batch 為基礎,而且需要存取公用網路上 Azure Batch 所提供的儲存體帳戶。

    您可以使用服務端點原則以減輕此弱點。 此功能目前為預覽狀態。 如需詳細資訊,請參閱 Azure Machine Learning 資料外流保護一文。

Azure Databricks

  • 除了 Azure Databricks 所使用的 databricks-privatedatabricks-public 子網路外,還需要有針對虛擬網路所建立的預設子網路。
  • Azure Databricks 不會使用私人端點來與虛擬網路通訊。

如需搭在虛擬網路中使用 Azure Databricks 的詳細資訊,請參閱在 Azure 虛擬網路中部署 Azure Databricks

Azure HDInsight 或虛擬機器

  • Azure Machine Learning 僅支援執行 Ubuntu 的虛擬機器。

需要公用網際網路存取

Azure Machine Learning 需要對公用網際網路進行輸入和輸出存取。 下列表格提供所需存取及其用途的概觀。 所有項目的通訊協定TCP。 如果服務標籤以 .region 結尾,請將 region 換成您的工作區所在的 Azure 區域。 例如,Storage.westus

方向 連接埠 服務標籤 目的
連入 29876-29877 BatchNodeManagement 建立、更新及刪除 Azure Machine Learning 計算執行個體和計算叢集。 如果您使用 [無公用 IP] 選項,則這並非必要選項。
連入 44224 AzureMachineLearning 建立、更新及刪除 Azure Machine Learning 計算執行個體。 如果您使用 [無公用 IP] 選項,則這並非必要選項。
輸出 80、443 AzureActiveDirectory 使用 Azure AD 進行驗證。
輸出 443、8787、18881 AzureMachineLearning 使用 Azure Machine Learning 服務。
輸出 443 BatchNodeManagement.region 與Azure Batch後端通訊以進行計算。 將 取代 region 為您工作區的 Azure 區域。
輸出 443 AzureResourceManager 使用 Azure Machine Learning 建立 Azure 資源。
輸出 443, 445 (*) Storage.region 存取儲存在 Azure 儲存體帳戶中的資料,以取得計算叢集和計算執行個體。 攻擊者可能利用此輸出將資料外流。 如需詳細資訊,請參閱 資料外流保護. (*) 445 只有在 Azure ML 的虛擬網路與儲存體帳戶的私人端點之間有防火牆時才需要。
輸出 443 AzureFrontDoor.FrontEnd
* 在 Azure 中國不需要。
Azure Machine Learning 工作室的全域進入點。 儲存 AutoML 的映像和環境。
輸出 443 MicrosoftContainerRegistry.region
注意,此標記對 AzureFrontDoor.FirstParty 標記有相依性
存取 Microsoft 提供的 Docker 映像。 設定 Azure Kubernetes Service 的 Azure Machine Learning 路由器。
輸出 443 AzureMonitor 用來將監視和計量記錄到 App Insights 和 Azure 監視器。
輸出 443 Keyvault.region 存取 Azure Batch 服務的金鑰保存庫。 只在以啟用的 hbi_workspace 旗標建立工作區時才需要。

提示

如果您需要 IP 位址而非服務標籤,請使用下列其中一個選項:

IP 位址可能定期變更。

重要

使用設定為 [無公用 IP 位址] 的計算叢集時,您必須允許下列流量:

  • VirtualNetwork 和任何連接埠的來源輸入,至目的地 VirtualNetwork 和目的地連接埠 29876、29877
  • 從來源 AzureLoadBalancer 和任何連接埠的來源輸入,至目的地 VirtualNetwork 和連接埠 44224 目的地。

您可能也需要允許輸出流量流向 Visual Studio Code 和非 Microsoft 網站,以安裝機器學習專案所需的封裝。 下表列出機器學習常用的存放庫:

主機名稱 目的
anaconda.com
*.anaconda.com
用來安裝預設封裝。
*.anaconda.org 用來取得存放庫資料。
pypi.org 用來列出來自預設索引的相依性 (如果有的話),而且使用者設定不會覆寫索引。 如果覆寫索引,您也必須允許 *.pythonhosted.org
cloud.r-project.org 安裝適用於 R 開發的 CRAN 封裝時使用。
*pytorch.org 由基於 PyTorch 的一些範例使用。
*.tensorflow.org 由基於 Tensorflow 的一些範例使用。
code.visualstudio.com 下載及安裝 VS Code 桌面版時所需。 VS Code Web 則不需要。
update.code.visualstudio.com
*.vo.msecnd.net
用來擷取透過安裝指令碼安裝在計算執行個體上的 VS Code 伺服器位元。
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
下載及安裝 VS Code 延伸模組時所需。 可允許遠端連線到適用於 VS Code 的 Azure ML 延伸模組所提供的計算執行個體。如需詳細資訊,請參閱在 Visual Studio Code 中連線至 Azure Machine Learning 計算執行個體
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* 用來擷取安裝在計算執行個體上的 websocket 伺服器位元。 websocket 伺服器用來將 Visual Studio Code 用戶端 (桌面應用程式) 的要求,傳輸至計算執行個體上執行的 Visual Studio Code 伺服器。

使用 Azure Kubernetes Service (AKS) 搭配 Azure Machine Learning 時,請允許下列流量流向 AKS VNet:

如需使用防火牆解決方案的相關資訊,請參閱搭配 Azure Machine Learning 使用防火牆

計算叢集

使用下列步驟,在 Azure Machine Learning 工作室中建立計算叢集:

  1. 登入 Azure Machine Learning Studio,然後選取您的訂用帳戶和工作區。

  2. 在左側選取 [計算],從中央選取 [計算叢集],然後選取 [+ 新增]。

    建立叢集的螢幕擷取畫面

  3. 在 [建立計算叢集] 對話方塊中,選取您需要的 VM 大小和設定,然後選取 [下一步]。

    設定 VM 組態的螢幕擷取畫面

  4. 從 [設定] 區段中,設定計算名稱虛擬網路子網路

    顯示設定電腦名稱、虛擬網路和子網路的螢幕擷取畫面。

    提示

    如果工作區使用私人端點來連線至虛擬網路,則 [虛擬網路] 選取欄位會呈現灰色。

  5. 選取 [建立] 以建立計算叢集。

建立程序完成後,您便會在實驗中使用叢集來將模型定型。

注意

您可以選擇使用低優先順序的 VM 來執行部分或所有的工作負載。 請參閱如何建立低優先順序的 VM

計算叢集的無公用 IP 功能 (預覽)

當您啟用 [無公用 IP] 時,您的計算叢集將不會使用公用 IP 來與任何相依性進行通訊。 而是只使用 Azure Private Link 生態系統和服務/私人端點在虛擬網路內進行通訊,而完全不需要公用 IP。 無公用 IP 會從網際網路中移除計算叢集節點的存取權和可探索性,因此可排除重大的威脅媒介。 無公用 IP 叢集有助於符合許多企業所擁有的無公用 IP 原則。

已啟用無公用 IP 的計算叢集不需要來自公用網際網路的輸入通訊。 具體而言,不需要任何輸入 NSG 規則 (BatchNodeManagementAzureMachineLearning)。 您仍然需要允許從 VirtualNetwork 的來源和任何連接埠來源輸入至 VirtualNetwork 的目的地,以及 29876、29877 的目的地連接埠,以及從來源 AzureLoadBalancer 和任何連接埠來源輸入到目的地 VirtualNetwork 和連接埠 44224 目的地。

警告

依預設,您沒有無公用 IP 計算叢集的公用網際網路存取權。 這可防止輸出存取所需的資源,例如 Azure Active Directory、Azure Resource Manager、Microsoft Container Registry 和其他輸出資源,如需要公用網際網路存取一節所列。 或對於非 Microsoft 資源,例如 Pypi 或 Conda 存放庫的存取權。 若要解決此問題您必須設定使用者定義的路由 (UDR),才能連線到公用 IP 以存取網際網路。 例如,您可以使用防火牆的公用 IP,或可以搭配公用 IP 使用虛擬網路 NAT

無公用 IP 叢集相依於 Azure Machine Learning 工作區的 Azure Private Link無公用 IP 計算叢集也會要求您停用私人端點網路原則和私人連結服務網路原則。 這些需求來自 Azure Private Link 服務和私人端點,並不是 Azure Machine Learning 特有的。 遵循停用 Private Link 服務網路原則中的指示,在虛擬網路子網路上設定 disable-private-endpoint-network-policiesdisable-private-link-service-network-policies 參數。

若要讓輸出連線正常運作,您必須設定輸出防火牆,例如具有使用者定義路由的 Azure 防火牆。 例如,您可以使用已設定輸入/輸出組態的防火牆,並在部署計算叢集的子網路上定義路由表來將流量路由至該處。 路由表項目可以為防火牆的私人 IP 位址設定位址首碼為 0.0.0.0/0 的下一個躍點。

在部署叢集的子網路中,您可以使用 Azure Container Registry 和 Azure 儲存體的服務端點或私人端點。

若要在工作室中建立無公用 IP 位址的計算叢集 (預覽功能),請在 [虛擬網路] 區段中設定 [無公用 IP] 核取方塊。 您也可以透過 ARM 範本來建立無公用 IP 計算叢集。 在 ARM 範本中,將 enableNodePublicIP 參數設定為 false。

疑難排解

  • 如果您在建立叢集期間收到此錯誤訊息:The specified subnet has PrivateLinkServiceNetworkPolicies or PrivateEndpointNetworkEndpoints enabled,請遵循停用 Private Link 網路原則停用私人端點網路原則中的指示。

  • 如果作業執行因 ACR 或 Azure 儲存體的連線問題而失敗,請確認客戶已將 ACR 和 Azure 儲存體服務端點/私人端點新增至子網路,而且 ACR/Azure 儲存體允許從子網路進行存取。

  • 若要確定您已建立無公用 IP 叢集,在工作室中查看叢集詳細資料時,您會在資源屬性下看到 [無公用 IP] 屬性已設定為 true

計算執行個體

如需有關如何建立部署在虛擬網路中的計算執行個體的步驟,請參閱建立和管理 Azure Machine Learning 計算執行個體

計算執行個體的無公用 IP 功能 (預覽)

當您啟用 [無公用 IP] 時,您的計算執行個體將不會使用公用 IP 來與任何相依性進行通訊。 而是只使用 Azure Private Link 生態系統和服務/私人端點在虛擬網路內進行通訊,而完全不需要公用 IP。 無公用 IP 會從網際網路中移除計算執行個體節點的存取權和可探索性,因此可排除重大的威脅媒介。 計算執行個體也會進行封包篩選,以拒絕來自外部虛擬網路的任何流量。 無公用 IP 執行個體相依於 Azure Machine Learning 工作區的 Azure Private Link

警告

依預設,您沒有無公用 IP 計算執行個體的公用網際網路存取權。 您必須設定使用者定義的路由 (UDR),才能連線到公用 IP 以存取網際網路。 例如,您可以使用防火牆的公用 IP,或可以搭配公用 IP 使用虛擬網路 NAT。 具體而言,您需要存取 Azure Active Directory、Azure Resource Manager、Microsoft Container Registry 和其他輸出資源,如需要公用網際網路存取一節所列。 您可能也需要非 Microsoft 資源的輸出存取權,例如 Pypi 或 Conda 存放庫。

若要讓輸出連線正常運作,您必須設定輸出防火牆,例如具有使用者定義路由的 Azure 防火牆。 例如,您可以使用已設定輸入/輸出組態的防火牆,並在部署計算叢集的子網路上定義路由表來將流量路由至該處。 路由表項目可以為防火牆的私人 IP 位址設定位址首碼為 0.0.0.0/0 的下一個躍點。

已啟用無公用 IP 的計算執行個體不需要來自公用網際網路的輸入通訊。 具體而言,不需要任何輸入 NSG 規則 (BatchNodeManagementAzureMachineLearning)。 但您仍需要允許流量從 VirtualNetwork 的來源、任何連接埠來源、VirtualNetwork 的目的地及目的地連接埠 29876、29877、44224 輸入。

無公用 IP 計算執行個體也會要求您停用私人端點網路原則和私人連結服務網路原則。 這些需求來自 Azure Private Link 服務和私人端點,並不是 Azure Machine Learning 特有的。 遵循停用 Private Link 服務來源 IP 的網路原則中的指示,在虛擬網路子網路上設定 disable-private-endpoint-network-policiesdisable-private-link-service-network-policies 參數。

若要在工作室中建立無公用 IP 位址的計算執行個體 (預覽功能),請在 [虛擬網路] 區段中設定 [無公用 IP] 核取方塊。 您也可以透過 ARM 範本來建立無公用 IP 計算執行個體。 在 ARM 範本中,將 enableNodePublicIP 參數設定為 false。

後續步驟:

輸入流量

重要

沒有公用 IP 的計算實例或計算叢集 (預覽功能) 不需要來自Azure Batch管理和 Azure Machine Learning 服務的輸入流量。 不過,如果您有多個計算,而其中有些計算使用公用 IP 位址,則必須允許此流量。

搭配公用 IP 位址 () 使用 Azure Machine Learning計算實例計算叢集時,允許來自Azure Batch管理和 Azure Machine Learning 服務的輸入流量。 沒有公用 IP (預覽) 的計算實例或計算叢集不需要此輸入通訊。 系統會為您動態建立允許此流量的網路安全性群組,不過,如果您有防火牆,則可能也需要建立使用者定義的路由 (UDR)。 建立此流量的 UDR 時,您可以使用 IP 位址服務標籤來路由流量。

針對 Azure Machine Learning 服務,您必須為主要次要區域都新增 IP 位址。 若要尋找次要區域,請參閱 Azure 中的跨區域複寫。 例如,如果 Azure Machine Learning 服務在美國東部 2,而次要地區是美國中部。

若要取得 Batch 服務和 Azure Machine Learning 服務的 IP 位址清單,請下載 Azure IP 範圍和服務標籤,並在檔案中搜尋 BatchNodeManagement.<region>AzureMachineLearning.<region>,其中 <region> 是您的 Azure 區域。

重要

IP 位址可能隨著時間而變更。

建立 UDR 時,請將 [下一個躍點類型] 設定為 [網際網路]。 這表示來自 Azure 的輸入通訊會跳過防火牆,使用計算執行個體和計算叢集的公用 IP 來存取負載平衡器。 由於計算執行個體和計算叢集會在建立時取得隨機的公用 IP,且建立前也無法先得知公用 IP 並登錄於防火牆,因此必須使用 UDR,讓計算執行個體和計算叢集的 Azure 輸入使用特定 IP。 下圖顯示 Azure 入口網站中以 IP 位址為基礎的 UDR 範例:

使用者定義的路由組態的影像

如需設定 UDR 的相關資訊,請參閱使用路由表來路由傳送網路流量

如需 Azure Machine Learning 輸入和輸出流量需求的詳細資訊,請參閱在防火牆後方使用工作區

Azure Databricks

如需搭配虛擬網路使用 Azure Databricks 的特定資訊,請參閱在 Azure 虛擬網路中部署 Azure Databricks

虛擬機器或 HDInsight 叢集

在本節中,您會了解如何在虛擬網路中搭配您的工作區使用虛擬機器或 Azure HDInsight 叢集。

建立 VM 或 HDInsight 叢集

透過使用 Azure 入口網站或 Azure CLI 來建立 VM 或 HDInsight 叢集,並將叢集放在 Azure 虛擬網路中。 如需詳細資訊,請參閱下列文章:

設定網路連接埠

若要讓 Azure Machine Learning 能夠與 VM 或叢集上的 SSH 連接埠通訊,請設定網路安全性群組的來源項目。 SSH 連接埠通常是連接埠 22。 若要允許來自此來源的流量,請執行下列動作:

  1. 在 [來源] 下拉式清單中選取 [服務標籤]。

  2. 在 [來源服務標籤] 下拉式清單中選取 [AzureMachineLearning]。

    用於對虛擬網路內的 VM 或 HDInsight 叢集進行測試的輸入規則

  3. 在 [來源連接埠範圍] 下拉式清單中選取 [*]。

  4. 在 [目的地] 下拉式清單中選取 [任何]。

  5. 在 [目的地連接埠範圍] 下拉式清單中選取 [22]。

  6. 在 [通訊協定] 底下選取 [任何]。

  7. 在 [動作] 底下選取 [允許]。

請保留網路安全性群組的預設輸出規則。 如需詳細資訊,請參閱安全性群組中的預設安全性規則一節。

如果您不想要使用預設輸出規則,而是想要限制虛擬網路的輸出存取,請參閱必要的公用網際網路存取一節。

連結 VM 或 HDInsight 叢集

將 VM 或 HDInsight 叢集連結至 Azure Machine Learning 工作區。 如需詳細資訊,請參閱在 Studio 中管理模型定型和部署的計算資源

後續步驟

本文是關於保護 Azure Machine Learning 工作流程系列文章的一部分。 請參閱本系列的其他文章: