使用虛擬網路保護 Azure Machine Learning 定型環境
適用於:Python SDK azure-ai-ml v2 (目前)
提示
您可以使用 Azure Machine Learning「受控虛擬網路」,而不是本文中的步驟。 透過受控虛擬網路,Azure Machine Learning 可以處理工作區和受控計算的網路隔離作業。 您也可以為工作區所需的資源 (例如 Azure 儲存體帳戶) 新增私人端點。 如需詳細資訊,請參閱工作區受控網路隔離。
Azure Machine Learning 計算執行個體、無伺服器計算,以及計算叢集可在 Azure 虛擬網路中安全地定型模型。 規劃環境時,無論有無公用 IP 位址,都能設定計算執行個體/叢集或無伺服器計算。 兩者之間的差異通常如下:
- 無公用 IP:由於沒有相同的網路資源需求,因此成本較低。 可藉由移除來自網際網路的輸入流量需求來改善安全性。 不過,如果要針對必要資源 (Microsoft Entra ID、Azure Resource Manager 等等) 啟用輸出存取,則必須進行額外的設定變更。
- 公用 IP:預設使用,但由於需要額外的 Azure 網路資源,因此成本較高。 必須透過公用網際網路從 Azure Machine Learning 服務進行輸入通訊。
下表包含這些設定之間的差異:
組態 | 具有公用 IP | 無公用 IP |
---|---|---|
輸入流量 | AzureMachineLearning 服務標籤。 |
無 |
輸出流量 | 根據預設,可以存取公用網際網路上的資源,而無任何限制。 可透過設定網路安全性群組或防火牆,以限制其存取的內容。 |
根據預設,可以利用 Azure 提供的預設輸出存取來存取公用網路。 如果需要將輸出流量路由至網際網路上的所需資源,則建議使用虛擬網路 NAT 閘道或防火牆。 |
Azure 網路資源 | 公用 IP 位址、負載平衡器、網路介面 | 無 |
也可以使用 Azure Databricks 或 HDInsight 在虛擬網路中定型模型。
重要
本文中標示為 (預覽) 的項目目前處於公開預覽狀態。 此預覽版本會在沒有服務等級協定的情況下提供,不建議用於實際執行工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
本文是關於保護 Azure Machine Learning 工作流程系列文章的一部分。 請參閱本系列的其他文章:
如需了解如何建立安全工作區的教學課程,請參閱教學課程:建立安全工作區 (英文)、Bicep 範本 (英文) 或 Terraform 範本 (英文)。
在本文中,您將了解如何在虛擬網路中保護下列訓練計算資源:
- Azure Machine Learning 計算叢集
- Azure Machine Learning 計算執行個體
- Azure Machine Learning 無伺服器計算
- Azure Databricks
- 虛擬機器
- HDInsight 叢集
必要條件
請參閱網路安全性概觀,以了解常見的虛擬網路情節和整體虛擬網路架構。
用於計算資源的現有虛擬網路和子網路。 此 VNet 必須與 Azure Machine Learning 工作區位於相同的訂用帳戶中。
- 工作區所使用的儲存體帳戶和定型作業,則建議放在預計用於計算執行個體、無伺服器計算和叢集的同一 Azure 區域中。 如果不在同一 Azure 區域,可能會產生資料傳輸成本,並導致更嚴重的網路延遲。
- 請確定 VNet 中的
*.instances.azureml.net
和*.instances.azureml.ms
允許使用 WebSocket 通訊。 Jupyter 會在計算執行個體上使用 WebSocket。
虛擬網路中的現有子網路。 為無伺服器計算建立計算執行個體、叢集與節點時會使用此子網路。
- 請確認子網路未委派至任何其他 Azure 服務。
- 請確認子網路有足夠可用的 IP 位址。 每個計算執行個體都需要一個 IP 位址。 計算叢集中的每個「節點」,以及每個無伺服器計算節點都需要一個 IP 位址。
如果您有自己的 DNS 伺服器,則建議使用 DNS 轉送來解析計算執行個體與叢集的完整網域名稱 (FQDN)。 如需詳細資訊,請參閱如何搭配 Azure Machine Learning 使用自訂 DNS。
若要將資源部署到虛擬網路或子網路,在 Azure 角色型存取控制 (Azure RBAC) 中,您的使用者帳戶必須具有下列動作的權限:
- 虛擬網路資源上的 "Microsoft.Network/*/read"。 Azure Resource Manager (ARM) 範本部署不需要此權限。
- 虛擬網路資源上的 "Microsoft.Network/virtualNetworks/join/action"。
- 子網路資源上的 "Microsoft.Network/virtualNetworks/subnets/join/action"。
如需 Azure RBAC 搭配網路的詳細資訊,請參閱網路內建角色
限制
Azure Lighthouse 不支援虛擬網路中的計算叢集/執行個體和無伺服器計算部署。
在定型期間,您的計算執行個體與預設儲存體帳戶之間的私人網路通訊必須開啟埠 445。 例如,如果您的計算位於一個 VNet 中,而儲存體帳戶位於另一個 VNet 中,請勿封鎖儲存體帳戶 VNet 的埠 445。
與工作區位於不同 VNet/區域的計算叢集
重要
您無法在不同的區域/VNet 中建立「計算執行個體」,而只能建立「計算叢集」。
若要在與工作區虛擬網路不同的區域的 Azure 虛擬網路建立計算叢集,可透過幾種方式在兩個 VNet 之間啟用通訊。
- 使用 VNet 對等互連。
- 在要建立計算叢集的虛擬網路中,為工作區新增私人端點。
重要
無論選擇什麼方式,都必須為計算叢集建立 VNet;Azure Machine Learning 不會代為建立。
此外,您也必須允許預設儲存體帳戶、Azure Container Registry 以及 Azure Key Vault 存取計算叢集的 VNet。 有多種方法可以達成此目的。 例如,可以為計算叢集 VNet 中的每個資源建立私人端點,或使用 VNet 對等互連來允許工作區 VNet 存取計算叢集 VNet。
案例:VNet 對等互連
將工作區設定為使用 Azure 虛擬網路。 如需詳細資訊,請參閱保護工作區資源。
建立要用於計算叢集的第二個 Azure 虛擬網路。 此虛擬網路可位於與工作區所用區域不同的 Azure 區域。
設定兩個 VNet 之間的 VNet 對等互連。
提示
請等到 VNet 對等互連狀態變為 [已連線] 之後再繼續。
修改
privatelink.api.azureml.ms
DNS 區域,將連結新增至計算叢集的 VNet。 Azure Machine Learning 工作區使用私人端點參與 VNet 時,該工作區將會建立此區域。將新的虛擬網路連結新增至 DNS 區域。 有多種方式可執行這項作業:
- 在 Azure 入口網站中瀏覽至 DNS 區域,然後選取 [虛擬網路連結]。 接著選取 [+ 新增],然後選取您為計算叢集建立的 VNet。
- 在 Azure CLI 中使用
az network private-dns link vnet create
命令。 如需詳細資訊,請參閱 az network private-dns link vnet create。 - 在 Azure PowerShell 中使用
New-AzPrivateDnsVirtualNetworkLink
命令。 如需詳細資訊,請參閱 New-AzPrivateDnsVirtualNetworkLink。
針對
privatelink.notebooks.azure.net
DNS 區域重複上一個步驟與子步驟。設定下列 Azure 資源,以允許從這兩個 VNet 進行存取。
- 工作區的預設儲存體帳戶。
- 工作區的 Azure Container Registry。
- 工作區的 Azure Key Vault。
提示
您可透過多種方法設定這些服務,以允許存取 VNet。 例如,可以為兩個 VNet 中的各個資源建立私人端點。 或者,也可以將資源設定為允許從這兩個 VNet 進行存取。
根據平常使用 VNet 的情況建立計算叢集,但請選取為計算叢集建立的 VNet。 如果 VNet 位於不同的區域,請在建立計算叢集時選取該區域。
警告
設定區域時,如果區域與您的工作區或資料存放區位於不同區域,可能會產生資料傳輸成本,並導致更嚴重的網路延遲。 建立叢集以及在叢集上執行作業時,可能會產生延遲和成本。
案例:私人端點
將工作區設定為使用 Azure 虛擬網路。 如需詳細資訊,請參閱保護工作區資源。
建立要用於計算叢集的第二個 Azure 虛擬網路。 此虛擬網路可位於與工作區所用區域不同的 Azure 區域。
在要建立計算叢集的 VNet 中,為工作區建立新的私人端點。
若要利用 Azure 入口網站新增新的私人端點,請選取您的工作區,然後選取 [網路]。 選取 [私人端點連線]、[+ 私人端點],然後使用欄位來建立新的私人端點。
- 選取 [區域] 時,請選取與您的虛擬網路相同的區域。
- 選取 [資源類型] 時,請使用 Microsoft.MachineLearningServices/workspaces。
- 將 [資源] 設定為您的工作區名稱。
- 將 [虛擬網路] 與 [子網路] 設定為您為計算叢集建立的 VNet 和子網路。
最後,選取 [建立] 以建立私人端點。
若要以 Azure CLI 新增新的私人端點,請使用
az network private-endpoint create
。 有關使用此命令的範例,請參閱設定 Azure Machine Learning 工作區的私人端點。
根據平常使用 VNet 的情況建立計算叢集,但請選取為計算叢集建立的 VNet。 如果 VNet 位於不同的區域,請在建立計算叢集時選取該區域。
警告
設定區域時,如果區域與您的工作區或資料存放區位於不同區域,可能會產生資料傳輸成本,並導致更嚴重的網路延遲。 建立叢集以及在叢集上執行作業時,可能會產生延遲和成本。
無公用 IP 的計算執行個體/叢集或無伺服器計算
重要
此資訊僅適用於使用「Azure 虛擬網路」的情況。 如果您使用受控虛擬網路,則計算資源無法部署在您的 Azure 虛擬網路中。 如需使用受控虛擬網路的詳細資訊,請參閱使用受控網路進行受控計算。
重要
如果您已在未選擇加入預覽版的情況下使用未設定公用 IP 的計算執行個體或計算叢集,則需要 2023 年 1 月 20 日 (即此功能正式推出的時間) 之後刪除並重新建立計算執行個體或計算叢集。
如果您先前使用無公用 IP 的預覽版,由於正式發行版本的需求有所變更,因此您可能需要修改允許輸入和輸出的流量,如下所示:
- 輸出需求 - 另外兩個輸出,僅用於管理計算執行個體與叢集。 這些服務標籤的目的地皆由 Microsoft 所擁有:
- UDP 連接埠 5831 上的
AzureMachineLearning
服務標籤。 - TCP 連接埠 443 上的
BatchNodeManagement
服務標籤。
- UDP 連接埠 5831 上的
除了先決條件一節所列的設定外,下列設定也專門用於建立無公用 IP 計算執行個體/叢集。 這些設定也適用於無伺服器計算:
您必須使用計算資源的工作區私人端點,才能從 VNet 與 Azure Machine Learning 服務進行通訊。 如需詳細資訊,請參閱設定 Azure Machine Learning 工作區的私人端點。
在您的 VNet 中,允許下列服務標籤或完整網域名稱的輸出流量 (FQDN):
服務標籤 通訊協定 Port 注意 AzureMachineLearning
TCP
UDP443/8787/18881
5831與 Azure Machine Learning 服務通訊。 BatchNodeManagement.<region>
ANY 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 與 Azure Batch 通訊。 計算執行個體和計算叢集均使用 Azure Batch 服務實作。Storage.<region>
TCP 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 此服務標籤可用來與 Azure Batch 所使用的 Azure 儲存體帳戶通訊。重要
對
Storage.<region>
的輸出存取權可能會被用來洩漏工作區的資料。 您可以使用服務端點原則以減輕此弱點。 如需詳細資訊,請參閱 Azure Machine Learning 資料外流保護一文。FQDN 通訊協定 Port 注意 <region>.tundra.azureml.ms
UDP 5831 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。graph.windows.net
TCP 443 與 Microsoft Graph API 通訊。 *.instances.azureml.ms
TCP 443/8787/18881 與 Azure Machine Learning 通訊。 *.<region>.batch.azure.com
ANY 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 與 Azure Batch 通訊。*.<region>.service.batch.azure.com
ANY 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 與 Azure Batch 通訊。*.blob.core.windows.net
TCP 443 與 Azure Blob 儲存體通訊。 *.queue.core.windows.net
TCP 443 與 Azure 佇列儲存體通訊。 *.table.core.windows.net
TCP 443 與 Azure 資料表儲存體通訊。 根據預設,針對沒有公用 IP 設定的計算執行個體/叢集沒有網際網路的輸出存取權。 如果您可以從 網際網路存取網際網路,這是因為 Azure 預設的輸出存取,而且您具有允許輸出到網際網路的 NSG。 不過,我們不建議使用預設的輸出存取權。 如果您需要網際網路的輸出存取權,建議您改用防火牆和輸出規則或 NAT 閘道和網路服務群組,以允許輸出流量。
如需 Azure Machine Learning 所使用的輸出流量詳細資訊,請參閱下列文章:
有關可與 Azure 防火牆搭配使用的服務標籤,詳細資訊請參閱虛擬網路服務標籤一文。
若要建立無公用 IP 的計算執行個體或叢集,請使用下列資訊:
在 az ml compute create
命令中,取代下列值:
rg
:將在其中建立計算的資源群組。ws
:Azure Machine Learning 工作區名稱。yourvnet
:Azure 虛擬網路。yoursubnet
:要用於計算的子網路。AmlCompute
或ComputeInstance
:指定AmlCompute
建立「計算叢集」。ComputeInstance
則會建立「計算執行個體」。
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False
# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False
使用下列資訊,為指定工作區之 VNet 設定無公用 IP 位址的無伺服器計算節點:
重要
如果您使用無公用 IP 無伺服器計算,且工作區使用 IP 允許清單,則必須將輸出私人端點新增至工作區。 無伺服器計算需要與工作區通訊,但若未設定公用 IP,則會使用 Azure 預設輸出進行網際網路存取。 此輸出的公用 IP 是動態的,無法新增至 IP 允許清單。 建立輸出私人端點至工作區,可允許來自為工作區繫結的無伺服器計算流量,以略過 IP 允許清單。
若要建立工作區:
az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: true
若要更新工作區:
az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: true
具有公用 IP 的計算執行個體/叢集或無伺服器計算
重要
此資訊僅適用於使用「Azure 虛擬網路」的情況。 如果您使用受控虛擬網路,則計算資源無法部署在您的 Azure 虛擬網路中。 如需使用受控虛擬網路的詳細資訊,請參閱使用受控網路進行受控計算。
除了先決條件一節所列的設定外,下列設定也專門用於建立具有公用 IP 的計算執行個體/叢集。 這些設定也適用於無伺服器計算:
如果將多個計算執行個體/叢集放在一個虛擬網路中,您可能必須要求為一或多個資源增加配額。 Machine Learning 計算執行個體或叢集會自動將網路資源配置在包含虛擬網路的資源群組中。 針對每個計算執行個體或叢集,服務會配置下列資源:
網路安全性群組 (NSG) 會自動建立。 此 NSG 允許連接埠 44224 上來自
AzureMachineLearning
服務標籤的輸入 TCP 流量。重要
計算執行個體和計算叢集會自動建立包含必要規則的 NSG。
如果子網路層級有另一個 NSG,子網路層級 NSG 中的規即不得與自動建立 NSG 中的規則衝突。
若要了解 NSG 如何篩選網路流量,請參閱網路安全性群組如何篩選網路流量。
一個負載平衡器
若是計算叢集,每次叢集縮小為 0 個節點時,這些資源就會刪除,而擴大時則會建立這些資源。
若是計算執行個體,這些資源則會保留到刪除執行個體為止。 停止執行個體並不會移除資源。
重要
這些資源會被訂用帳戶的資源配額所限制。 如果虛擬網路資源群組遭到鎖定,則刪除計算叢集/執行個體將會失敗。 在刪除計算叢集/執行個體之前,將無法刪除負載平衡器。 此外,請確定沒有任何 Azure 原則指派會禁止建立網路安全性群組。
在 VNet 內,允許連接埠 44224 上來自
AzureMachineLearning
服務標籤的輸入 TCP 流量。重要
建立計算執行個體/叢集時,系統會動態指派公用 IP 位址。 由於在建立之前不知道位址,而且在建立流程中需要輸入存取,因此無法在防火牆上靜態指派該位址。 相反地,如果將 VNet 與防火牆搭配使用,則必須建立使用者定義的路由,以允許此輸入流量。
在您的 VNet 中,允許下列服務標籤的輸出流量:
服務標籤 通訊協定 Port 注意 AzureMachineLearning
TCP
UDP443/8787/18881
5831與 Azure Machine Learning 服務通訊。 BatchNodeManagement.<region>
ANY 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 與 Azure Batch 通訊。 計算執行個體和計算叢集均使用 Azure Batch 服務實作。Storage.<region>
TCP 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 此服務標籤可用來與 Azure Batch 所使用的 Azure 儲存體帳戶通訊。重要
對
Storage.<region>
的輸出存取權可能會被用來洩漏工作區的資料。 您可以使用服務端點原則以減輕此弱點。 如需詳細資訊,請參閱 Azure Machine Learning 資料外流保護一文。FQDN 通訊協定 Port 注意 <region>.tundra.azureml.ms
UDP 5831 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。graph.windows.net
TCP 443 與 Microsoft Graph API 通訊。 *.instances.azureml.ms
TCP 443/8787/18881 與 Azure Machine Learning 通訊。 *.<region>.batch.azure.com
ANY 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 與 Azure Batch 通訊。*.<region>.service.batch.azure.com
ANY 443 將 <region>
取代為包含 Azure Machine Learning 工作區的 Azure 區域。 與 Azure Batch 通訊。*.blob.core.windows.net
TCP 443 與 Azure Blob 儲存體通訊。 *.queue.core.windows.net
TCP 443 與 Azure 佇列儲存體通訊。 *.table.core.windows.net
TCP 443 與 Azure 資料表儲存體通訊。
若要在 VNet 建立具有公用 IP 的計算執行個體或叢集,請使用下列資訊:
在 az ml compute create
命令中,取代下列值:
rg
:將在其中建立計算的資源群組。ws
:Azure Machine Learning 工作區名稱。yourvnet
:Azure 虛擬網路。yoursubnet
:要用於計算的子網路。AmlCompute
或ComputeInstance
:指定AmlCompute
建立「計算叢集」。ComputeInstance
則會建立「計算執行個體」。
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute
# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance
使用下列資訊,為指定工作區之 VNet 設定具有公用 IP 位址的無伺服器計算節點:
若要建立工作區:
az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: false
若要更新工作區:
az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
no_public_ip: false
Azure Databricks
- 虛擬網路必須在與 Azure Machine Learning 工作區相同的訂用帳戶和區域中。
- 如果工作區的 Azure 儲存體帳戶也在虛擬網路中受到保護,則這些帳戶必須位於與 Azure Databricks 叢集相同的虛擬網路中。
- 除了 Azure Databricks 所使用的 databricks-private 和 databricks-public 子網路外,還需要有針對虛擬網路所建立的預設子網路。
- Azure Databricks 不會使用私人端點來與虛擬網路通訊。
如需搭配虛擬網路使用 Azure Databricks 的特定資訊,請參閱在 Azure 虛擬網路中部署 Azure Databricks。
虛擬機器或 HDInsight 叢集
在本節中,您會了解如何在虛擬網路中搭配您的工作區使用虛擬機器或 Azure HDInsight 叢集。
建立 VM 或 HDInsight 叢集
重要
Azure Machine Learning 僅支援執行 Ubuntu 的虛擬機器。
透過使用 Azure 入口網站或 Azure CLI 來建立 VM 或 HDInsight 叢集,並將叢集放在 Azure 虛擬網路中。 如需詳細資訊,請參閱下列文章:
設定網路連接埠
若要讓 Azure Machine Learning 能夠與 VM 或叢集上的 SSH 連接埠通訊,請設定網路安全性群組的來源項目。 SSH 連接埠通常是連接埠 22。 若要允許來自此來源的流量,請執行下列動作:
在 [來源] 下拉式清單中選取 [服務標籤]。
在 [來源服務標籤] 下拉式清單中選取 [AzureMachineLearning]。
在 [來源連接埠範圍] 下拉式清單中選取 [*]。
在 [目的地] 下拉式清單中選取 [任何]。
在 [目的地連接埠範圍] 下拉式清單中選取 [22]。
在 [通訊協定] 底下選取 [任何]。
在 [動作] 底下選取 [允許]。
請保留網路安全性群組的預設輸出規則。 如需詳細資訊,請參閱安全性群組中的預設安全性規則一節。
如果您不想要使用預設輸出規則,而是想要限制虛擬網路的輸出存取,請參閱必要的公用網際網路存取一節。
連結 VM 或 HDInsight 叢集
將 VM 或 HDInsight 叢集連結至 Azure Machine Learning 工作區。 如需詳細資訊,請參閱在 Studio 中管理模型定型和部署的計算資源。
定型模型所需的公用網際網路存取
重要
雖然本文上述各節介紹了建立計算資源所需的設定,但仍須參考此節的設定資訊以使用這些資源將模型定型。
Azure Machine Learning 需要對公用網際網路進行輸入和輸出存取。 下表會概略說明所需的存取權與其用途。 如果服務標籤以 .region
結尾,請將 region
換成您的工作區所在的 Azure 區域。 例如,Storage.westus
:
提示
[必要] 索引標籤會列出必要的輸入和輸出設定。 [視情況而定] 索引標籤則會針對您可能想要啟用的特定設定,列出所需的選擇性輸入和輸出設定。
方向 | 通訊協定與 連接埠 |
服務標籤 | 目的 |
---|---|---|---|
輸出 | TCP:80、443 | AzureActiveDirectory |
使用 Microsoft Entra ID 進行驗證。 |
輸出 | TCP:443、18881 UDP: 5831 |
AzureMachineLearning |
使用 Azure Machine Learning 服務。 筆記本中的 Python Intellisense 使用連接埠 18881 。 建立、更新和刪除 Azure Machine Learning 計算執行個體會使用連接埠 5831。 |
輸出 | ANY:443 | BatchNodeManagement.region |
與 Azure Machine Learning 計算執行個體/叢集的 Azure Batch 後端進行通訊。 |
輸出 | TCP:443 | AzureResourceManager |
使用 Azure Machine Learning、Azure CLI 與 Azure Machine Learning SDK 建立 Azure 資源。 |
輸出 | TCP:443 | Storage.region |
存取儲存在計算叢集和計算實例 Azure 儲存體帳戶中的資料。 如需防止此輸出資料外流的相關資訊,請參閱資料外流保護。 |
輸出 | TCP:443 | AzureFrontDoor.FrontEnd * 在由 21Vianet 營運的 Microsoft Azure 中不需要。 |
Azure Machine Learning 工作室全域進入點。 儲存 AutoML 的映像和環境。 如需防止此輸出資料外流的相關資訊,請參閱資料外流保護。 |
輸出 | TCP:443 | MicrosoftContainerRegistry.region 注意:此標籤相依於 AzureFrontDoor.FirstParty 標籤 |
存取 Microsoft 提供的 Docker 映像。 設定 Azure Kubernetes Service 的 Azure Machine Learning 路由器。 |
提示
如果您需要 IP 位址而非服務標籤,請使用下列其中一個選項:
- 從 Azure IP 範圍和服務標籤下載清單。
- 使用 Azure CLI az network list-service-tags 命令。
- 使用 Azure PowerShell Get-AzNetworkServiceTag 命令。
IP 位址可能定期變更。
您可能也需要允許輸出流量流向 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 |
下載及安裝 Visual Studio Code 桌面版時所需。 Visual Studio Code 網頁版不需要此設定。 |
update.code.visualstudio.com *.vo.msecnd.net |
用來擷取透過安裝指令碼安裝在計算執行個體上的 Visual Studio Code 伺服器位元。 |
marketplace.visualstudio.com vscode.blob.core.windows.net *.gallerycdn.vsassets.io |
下載及安裝 Visual Studio Code 延伸模組時所需。 這些主機可以針對適用於 Visual Studio 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 Machine Learning VS Code 延伸模組時,遠端計算執行個體需要存取公用存放庫,才能安裝延伸模組所需的封裝。 如果計算執行個體需要 Proxy 才能存取這些公用存放庫或網際網路,則必須在計算執行個體的 ~/.bashrc
檔案中設定並匯出 HTTP_PROXY
和 HTTPS_PROXY
環境變數。 可以使用自訂指令碼在佈建時自動執行此流程。
使用 Azure Kubernetes Service (AKS) 搭配 Azure Machine Learning 時,請允許下列流量流向 AKS VNet:
- AKS 的一般輸入/輸出需求,如在 Azure Kubernetes Service 中限制輸出流量一文所述。
- 輸出至 mcr.microsoft.com.
- 將模型部署至 AKS 叢集時,請使用將 ML 模型部署至 Azure Kubernetes Service 一文中的指導。
如需使用防火牆解決方案的相關資訊,請參閱搭配 Azure Machine Learning 使用防火牆。
下一步
本文是關於保護 Azure Machine Learning 工作流程系列文章的一部分。 請參閱本系列的其他文章: