共用方式為


工作區受控虛擬網路隔離

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

Azure Machine Learning 提供受控虛擬網路 (受控虛擬網路) 隔離的支援。 受控虛擬網路隔離使用內建的工作區層級 Azure Machine Learning 受控虛擬網路,簡化您的網路隔離設定並將其自動化。 受控虛擬網路可保護您的受控 Azure Machine Learning 資源,例如計算執行個體、計算叢集、無伺服器計算,以及受控線上端點。

使用受控網路保護工作區,可提供從工作區和受控計算進行輸出存取的網路隔離。 您建立和管理 的 Azure 虛擬網路可用來提供對工作區進行輸入存取的網路隔離。 例如,工作區的私人端點會在您的 Azure 虛擬網路中建立。 任何連線到虛擬網路的用戶端都可以透過私人端點存取工作區。 在受控計算上執行作業時,受控網路會限制計算可存取的內容。

受控虛擬網路結構

當您啟用受控虛擬網路隔離時,會為工作區建立受控虛擬網路。 您為工作區建立的受控計算資源會自動使用此受控虛擬網路。 受控虛擬網路可以針對工作區所使用的 Azure 資源使用私人端點,例如 Azure 儲存體、Azure Key Vault 和 Azure Container Registry。

來自受控虛擬網路的輸出流量有兩種不同的設定模式:

秘訣

不論您使用的輸出模式為何,對 Azure 資源的流量都可以設定為使用私人端點。 例如,您可以允許所有輸出流量到因特網,但藉由新增資源的輸出規則來限制與 Azure 資源的通訊。

輸出模式 描述 案例
允許網際網路輸出 允許來自受控虛擬網路的所有網際網路輸出流量。 您想要不受限制地存取網際網路上的機器學習資源,例如 Python 套件或預先定型的模型。1
僅允許核准的輸出 透過指定服務標籤來允許輸出流量。 * 您想要將資料外洩的風險降到最低,但必須在私人環境中準備所有必要的機器學習成品。
* 您要設定已核准的服務、服務標籤或 FQDN 清單的輸出存取。
已停用 輸入和輸出流量不受限制,或您使用自己的 Azure 虛擬網路來保護資源。 您想要來自工作區的輸入和輸出公開,或是使用自己的 Azure 虛擬網路處理網路隔離。
  1. 您可以使用輸出規則,搭配只允許核准的輸出模式,以達到與使用允許因特網輸出模式相同的結果。 差異包括:
  • 您必須為需要允許的每個輸出連線新增規則。
  • 新增 FQDN 輸出規則會增加您的成本,因為此規則類型會使用 Azure 防火牆。 如需詳細資訊,請參閱價格
  • [僅允許核准的輸出] 的預設規則設計目的是為了將資料外洩的風險降到最低。 您新增的任何輸出規則都可能會增加風險。

受控虛擬網路已預先設定必要的預設規則。 其也設定了您工作區的私人端點連線、工作區的預設儲存體、容器登錄和金鑰保存庫 (如果設定為私人連線,或工作區隔離模式設定為僅允許核准的輸出的話)。 選擇隔離模式之後,您只需要考慮可能需要新增的其他輸出需求。

下圖顯示設定為 [允許網際網路輸出] 的受控虛擬網路:

設定為網際網路輸出的受控虛擬網路隔離圖表。

下圖顯示設定為 [僅允許核准的輸出] 的受控虛擬網路:

附註

在此設定中,工作區所使用的儲存體、金鑰保存庫和容器登錄會標幟為私人。 由於這些項目已標幟為私人,因此系統會使用私人端點與這些項目通訊。

設定為只允許核准的輸出的受控虛擬網路隔離圖表。

附註

一旦受控 VNet 工作區設定為 允許因特網輸出,就無法將工作區重新設定為 停用。 同樣地,一旦受控 VNet 工作區設定為 只允許核准的輸出,就無法重新設定工作區以 允許因特網輸出

Azure Machine Learning 工作室

如果您想要使用整合式筆記本,或從工作室在預設儲存體帳戶中建立資料集,您的用戶端需要存取預設儲存體帳戶。 在用戶端使用的 Azure 虛擬網路中,為預設儲存體帳戶建立私人端點服務端點

Azure Machine Learning 工作室的一部分會在用戶端的網頁瀏覽器中本機執行,並與工作區的預設儲存體直接通訊。 在用戶端的虛擬網路中建立私人端點或服務端點 (針對預設儲存體帳戶),可確保用戶端可以與儲存體帳戶通訊。

如果工作區關聯的 Azure 儲存體帳戶已停用公用網路存取,請確定在用戶端虛擬網路中建立的私人端點已獲授與工作區受控識別的讀者角色。 這同時適用於部落格和檔案儲存體私人端點。 受控虛擬網路所建立的私人端點不需要此角色。

如需建立私人端點或服務端點的詳細資訊,請參閱私下連線至儲存體帳戶服務端點文章。

受保護的相關聯資源

如果您使用服務端點或私人端點將下列服務新增至虛擬網路 (停用公用存取),請允許受信任的 Microsoft 服務存取這些服務:

服務 端點資訊 允許信任的資訊
Azure 金鑰保存庫 服務端點
私人端點
允許信任的 Microsoft 服務略過此防火牆
Azure 儲存體帳戶 服務和私人端點
私人端點
從 Azure 資源執行個體授與存取權

將存取權授與信任的 Azure 服務
Azure 容器註冊表 私人端點 允許信任的服務

先決條件

遵循本文中的步驟之前,請確定您已滿足下列必要條件:

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前先建立免費帳戶。 試用免費或付費版本的 Azure Machine Learning

  • 您必須為 Azure 訂用帳戶註冊 Microsoft.Network 資源提供者。 建立受控虛擬網路的私人端點時,工作區會使用此資源提供者。

    如需有關註冊資源提供者的詳細資訊,請參閱解決資源提供者註冊的錯誤

  • 部署受控網路時所使用的 Azure 身分識別需要下列 Azure 角色型存取控制 (Azure RBAC) 動作來建立私人端點:

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write
  • Azure CLI 和 Azure CLI 的 ml 擴充功能。 如需詳細資訊,請參閱安裝、設定和使用 CLI (v2)

    秘訣

    Azure Machine Learning 受控 VNet 於 2023 年 5 月 23 日推出。 如果您有舊版的 ml 擴充功能,您可能需要加以更新,本文中的範例才能使用。 若要更新延伸模組,請使用下列 Azure CLI 命令:

    az extension update -n ml
    
  • 本文中的 CLI 範例假設您使用 Bash (或相容的) 殼層。 例如,從 Linux 系統或 Windows 子系統 Linux 版

  • 本文中的 Azure CLI 範例會使用 ws 來表示工作區的名稱,以及 rg 來表示資源群組的名稱。 使用命令搭配您的 Azure 訂用帳戶時,請視需要變更這些值。

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前先建立免費帳戶。 試用免費或付費版本的 Azure Machine Learning

  • 您必須為 Azure 訂用帳戶註冊 Microsoft.Network 資源提供者。 建立受控虛擬網路的私人端點時,工作區會使用此資源提供者。

    如需有關註冊資源提供者的詳細資訊,請參閱解決資源提供者註冊的錯誤

  • 部署受控網路時所使用的 Azure 身分識別需要下列 Azure 角色型存取控制 (Azure RBAC) 動作來建立私人端點:

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write
  • Azure Machine Learning Python SDK v2。 如需 SDK 的詳細資訊,請參閱 安裝適用於 Azure Machine Learning 的 Python SDK v2

    秘訣

    Azure Machine Learning 受控 VNet 於 2023 年 5 月 23 日推出。 如果您已安裝舊版的 SDK,您可能需要加以更新,本文中的範例才能使用。 若要更新 SDK,請使用下列命令:

    pip install --upgrade azure-ai-ml azure-identity
    
  • 本文中的範例假設您的程式碼以下列 Python 開頭。 此程式碼會匯入使用受控虛擬網路建立工作區時所需的類別、設定 Azure 訂用帳戶和資源群組的變數,並建立 ml_client:

    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import (
        Workspace,
        ManagedNetwork,
        IsolationMode,
        ServiceTagDestination,
        PrivateEndpointDestination,
        FqdnDestination
    )
    from azure.identity import DefaultAzureCredential
    
    # Replace with the values for your Azure subscription and resource group.
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription
    ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group)
    
  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前先建立免費帳戶。 試用免費或付費版本的 Azure Machine Learning

  • 您必須為 Azure 訂用帳戶註冊 Microsoft.Network 資源提供者。 建立受控虛擬網路的私人端點時,工作區會使用此資源提供者。

    如需有關註冊資源提供者的詳細資訊,請參閱解決資源提供者註冊的錯誤

  • 部署受控網路時所使用的 Azure 身分識別需要下列 Azure 角色型存取控制 (Azure RBAC) 動作來建立私人端點:

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write

若要使用 Azure Machine Learning 在受控虛擬網路中建立私人端點連線,工作區受控識別,無論是系統指派還是使用者指派,以及起始建立私人端點的使用者身分識別,都必須具有在目標資源上核准私人端點連線的許可權。 在 2025 年 4 月 30 日之後,許可權不會自動授與受控識別,而且必須手動指派。

Microsoft 建議將 Azure AI 企業網路連線核准者角色指派給受控識別。 下列清單包含 Azure AI 企業網路連線核准者 角色所涵蓋的私人端點目標資源類型:

  • Azure 應用程式閘道
  • Azure 監視器
  • Azure AI 搜尋服務
  • 事件中樞
  • Azure SQL Database
  • Azure 儲存體
  • Azure Machine Learning 工作區
  • Azure Machine Learning 註冊表
  • Microsoft Foundry
  • Azure Key Vault
  • Azure Cosmos DB
  • 適用於 MySQL 的 Azure 資料庫
  • 適用於 PostgreSQL 的 Azure 資料庫
  • 鑄造工具
  • Azure Cache for Redis
  • 容器登錄檔
  • API Management

如果您想要改為建立自定義角色,請參閱 Azure AI 企業網路連線核准者角色 ,以新增每個資源類型的特定動作。

若要建立私人端點輸出規則,以 Azure AI Enterprise Network Connection Approver 角色未涵蓋的資源類型為目標,建議使用自定義範圍縮小角色。 角色應依據核准目標資源類型上的私人端點連線所需的動作而定義。 這類資源類型的範例包括 Azure Data Factory、Azure Databricks 和 Azure Function Apps。

若要建立預設工作區資源的私人端點輸出規則,工作區建立期間授與的角色指派會自動涵蓋必要的許可權,因此不需要其他動作。

設定受控虛擬網路以允許網際網路輸出

秘訣

建立受控 VNet 會延後,直到建立計算資源或手動啟動佈建為止。 當您允許自動建立時,建立第一個計算資源大約需要 30 分鐘 的時間,因為它也會布建網路。 如需詳細資訊,請參閱手動佈建網路

重要事項

如果您計劃提交無伺服器 Spark 作業,則必須手動開始佈建。 如需詳細資訊,請參閱設定無伺服器 Spark 作業一節。

若要設定允許網際網路輸出通訊的受控虛擬網路,您可以使用 --managed-network allow_internet_outbound 參數或包含下列項目的 YAML 設定檔:

managed_network:
  isolation_mode: allow_internet_outbound

您也可以定義工作區所依賴的其他 Azure 服務的輸出規則。 這些規則會定義「私人端點」,讓 Azure 資源安全地與受控虛擬網路通訊。 下列規則示範如何將私人端點新增至 Azure Blob 資源。

managed_network:
  isolation_mode: allow_internet_outbound
  outbound_rules:
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

您可以使用 az ml workspace createaz ml workspace update 命令來設定受控虛擬網路:

下列範例會建立新的工作區。 參數 --managed-network allow_internet_outbound 會設定工作區的受控虛擬網路:

az ml workspace create --name ws --resource-group rg --managed-network allow_internet_outbound

若要改用 YAML 檔案建立工作區,請使用 --file 參數並指定包含組態設定的 YAML 檔案:

az ml workspace create --file workspace.yaml --resource-group rg --name ws

下列 YAML 範例會定義具有受控虛擬網路的工作區:

name: myworkspace
location: EastUS
managed_network:
    isolation_mode: allow_internet_outbound

若要設定允許網際網路輸出通訊的受控虛擬網路,請使用 ManagedNetwork 類別來定義具有 IsolationMode.ALLOW_INTERNET_OUTBOUND 的網路。 然後,您可以使用 ManagedNetwork 物件來建立新的工作區,或更新現有的工作區。 若要定義工作區所依賴的 Azure 服務的輸出規則,請使用 PrivateEndpointDestination 類別來定義服務的新私人端點。

下列範例會建立名為 myworkspace 的新工作區,其中包含名為 myrule 的輸出規則,其會為 Azure Blob 存放區新增私人端點:

# Basic managed VNet configuration
network = ManagedNetwork(IsolationMode.ALLOW_INTERNET_OUTBOUND)

# Workspace configuration
ws = Workspace(
    name="myworkspace",
    location="eastus",
    managed_network=network
)

# Example private endpoint outbound to a blob
rule_name = "myrule"
service_resource_id = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>"
subresource_target = "blob"
spark_enabled = True

# Add the outbound 
ws.managed_network.outbound_rules = [PrivateEndpointDestination(
    name=rule_name, 
    service_resource_id=service_resource_id, 
    subresource_target=subresource_target, 
    spark_enabled=spark_enabled)]

# Create the workspace
ws = ml_client.workspaces.begin_create(ws).result()
  1. 登入 Azure 入口網站,然後從 [建立資源] 功能表選擇 [Azure Machine Learning]。

  2. 在 [基本] 索引標籤上提供必要資訊。

  3. 從 [網路] 索引標籤中,選取 [具有網際網路輸出的私人]

    使用網際網路輸出受控虛擬網路建立工作區的螢幕擷取畫面。

  4. 若要新增輸出規則,請從 [網路] 索引標籤選取 [新增使用者定義的輸出規則]。從 [工作區輸出規則] 資訊看板提供下列資訊:

    • 規則名稱:規則的名稱。 此工作區的名稱必須是唯一的。
    • 目的地類型:當網路隔離是網際網路輸出的私人時,私人端點是唯一的選項。 Azure Machine Learning 受控虛擬網路不支援建立所有 Azure 資源類型的私人端點。 如需支援的資源清單,請參閱私人端點一節。
    • 訂用帳戶:包含您要新增私人端點的 Azure 資源的訂用帳戶。
    • 資源群組:包含您要新增私人端點的 Azure 資源的資源群組。
    • 資源類型:Azure 資源的類型。
    • 資源名稱:Azure 資源的名稱。
    • 子資源:Azure 資源類型的子資源。
    • 已啟用 Spark:如果您想要為工作區啟用無伺服器 Spark 作業,請選取此選項。 只有在資源類型為 Azure 儲存體時,才能使用此選項。

    為私人端點新增輸出規則的螢幕擷取畫面。

    選取 [儲存] 以儲存規則。 您可以繼續使用 [新增使用者定義的輸出規則] 來新增規則。

  5. 繼續照常建立工作區。

將受控虛擬網路設定為僅允許核准的輸出

秘訣

當您建立計算資源時,會自動佈建受控 VNet。 當您允許自動建立時,建立第一個計算資源大約需要 30 分鐘 的時間,因為它也會布建網路。 如果您已設定 FQDN 輸出規則,則第一個 FQDN 規則會對佈建時間增加約 10 分鐘。 如需詳細資訊,請參閱手動佈建網路

重要事項

如果您計劃提交無伺服器 Spark 作業,則必須手動開始佈建。 如需詳細資訊,請參閱設定無伺服器 Spark 作業一節。

若要設定僅允許核准的輸出通訊的受控虛擬網路,您可以使用 --managed-network allow_only_approved_outbound 參數或包含下列項目的 YAML 設定檔:

managed_network:
  isolation_mode: allow_only_approved_outbound

您也可以定義輸出規則,以定義核准的輸出通訊。 您可以針對 service_tagfqdnprivate_endpoint 類型建立輸出規則。 下列規則示範如何將私人端點新增至 Azure Blob 資源、將服務標籤新增至 Azure Data Factory,以及將 FQDN 新增至 pypi.org

重要事項

  • 只有在受控 VNet 設定為 allow_only_approved_outbound 時,對服務標籤或 FQDN 新增輸出才會有效。
  • 如果您新增輸出規則,Microsoft 無法對資料外流進行保證。

警告

FQDN 輸出規則是使用 Azure 防火牆來實作。 如果您使用輸出 FQDN 規則,Azure 防火牆的費用會增加至您的帳單中。 如需詳細資訊,請參閱定價

managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - name: added-servicetagrule
    destination:
      port_ranges: 80, 8080
      protocol: TCP
      service_tag: DataFactory
    type: service_tag
  - name: add-fqdnrule
    destination: 'pypi.org'
    type: fqdn
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

您可以使用 az ml workspace createaz ml workspace update 命令來設定受控虛擬網路:

下列範例會使用 --managed-network allow_only_approved_outbound 參數來設定受控虛擬網路:

az ml workspace create --name ws --resource-group rg --managed-network allow_only_approved_outbound

下列 YAML 檔案會定義具有受控虛擬網路的工作區:

name: myworkspace
location: EastUS
managed_network:
    isolation_mode: allow_only_approved_outbound

若要使用 YAML 檔案建立工作區,請使用 --file 參數:

az ml workspace create --file workspace.yaml --resource-group rg --name ws

若要設定僅允許核准的輸出通訊的受控虛擬網路,請使用 ManagedNetwork 類別來定義具有 IsolationMode.ALLOw_ONLY_APPROVED_OUTBOUND 的網路。 然後,您可以使用 ManagedNetwork 物件來建立新的工作區,或更新現有的工作區。 若要定義輸出規則,請使用下列類別:

目的地 類別
工作區所依賴的 Azure 服務 PrivateEndpointDestination
Azure 服務標籤 ServiceTagDestination
完整網域名稱 (FQDN) FqdnDestination

下列範例會建立名為 myworkspace 的新工作區,其中包含數個輸出規則:

  • myrule - 為 Azure Blob 存放區新增私人端點。
  • datafactory - 新增服務標籤規則以與 Azure Data Factory 通訊。

重要事項

  • 只有在受控 VNet 設定為 IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND 時,對服務標籤或 FQDN 新增輸出才會有效。
  • 如果您新增輸出規則,Microsoft 無法對資料外流進行保證。

警告

FQDN 輸出規則是使用 Azure 防火牆來實作。 如果您使用輸出 FQDN 規則,Azure 防火牆的費用會增加至您的帳單中。 如需詳細資訊,請參閱定價

# Basic managed VNet configuration
network = ManagedNetwork(IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND)

# Workspace configuration
ws = Workspace(
    name="myworkspace",
    location="eastus",
    managed_network=network
)

# Append some rules
ws.managed_network.outbound_rules = []
# Example private endpoint outbound to a blob
rule_name = "myrule"
service_resource_id = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>"
subresource_target = "blob"
spark_enabled = True
ws.managed_network.outbound_rules.append(
    PrivateEndpointDestination(
        name=rule_name, 
        service_resource_id=service_resource_id, 
        subresource_target=subresource_target, 
        spark_enabled=spark_enabled
    )
)

# Example service tag rule
rule_name = "datafactory"
service_tag = "DataFactory"
protocol = "TCP"
port_ranges = "80, 8080-8089"
ws.managed_network.outbound_rules.append(
    ServiceTagDestination(
        name=rule_name, 
        service_tag=service_tag, 
        protocol=protocol, 
        port_ranges=port_ranges
    )
)

# Example FQDN rule
ws.managed_network.outbound_rules.append(
    FqdnDestination(
        name="fqdnrule", 
        destination="pypi.org"
    )
)

# Create the workspace
ws = ml_client.workspaces.begin_create(ws).result()
  1. 登入 Azure 入口網站,然後從 [建立資源] 功能表選擇 [Azure Machine Learning]。

  2. 在 [基本] 索引標籤上提供必要資訊。

  3. 從 [網路] 索引標籤中,選取 [具有已核准輸出的私人]

    使用已核准的輸出受控虛擬網路建立工作區的螢幕擷取畫面。

  4. 若要新增輸出規則,請從 [網路] 索引標籤選取 [新增使用者定義的輸出規則]。從 [工作區輸出規則] 資訊看板提供下列資訊:

    • 規則名稱:規則的名稱。 此工作區的名稱必須是唯一的。
    • 目的地類型:私人端點、服務標籤或 FQDN。 只有在網路隔離是「具有已核准輸出的私人」時,才能使用服務標籤和 FQDN。

    如果目的地類型為 [私人端點],請提供下列資訊:

    • 訂用帳戶:包含您要新增私人端點的 Azure 資源的訂用帳戶。
    • 資源群組:包含您要新增私人端點的 Azure 資源的資源群組。
    • 資源類型:Azure 資源的類型。
    • 資源名稱:Azure 資源的名稱。
    • 子資源:Azure 資源類型的子資源。
    • 已啟用 Spark:如果您想要為工作區啟用無伺服器 Spark 作業,請選取此選項。 只有在資源類型為 Azure 儲存體時,才能使用此選項。

    秘訣

    Azure Machine Learning 受控 VNet 不支援為所有 Azure 資源類型建立私人端點。 如需支援的資源清單,請參閱私人端點一節。

    藉由新增私人端點來更新已核准輸出網路的螢幕擷取畫面。

    如果目的地類型為 [服務標籤],請提供下列資訊:

    • 服務標籤:要新增至已核准輸出規則的服務標籤。
    • 通訊協定:要為服務標記允許的通訊協定。
    • 連接埠範圍:要為服務標籤允許的連接埠範圍。

    藉由新增服務標籤來更新已核准輸出網路的螢幕擷取畫面。

    如果目的地類型為 [FQDN],請提供下列資訊:

    警告

    FQDN 輸出規則是使用 Azure 防火牆來實作。 如果您使用輸出 FQDN 規則,Azure 防火牆的費用會增加至您的帳單中。 如需詳細資訊,請參閱定價

    • FQDN 目的地:要新增至已核准輸出規則的完整網域名稱。

    螢幕擷取畫面:為已核准的輸出受控虛擬網路新增 FQDN 規則,以更新已核准的輸出網路。

    選取 [儲存] 以儲存規則。 您可以繼續使用 [新增使用者定義的輸出規則] 來新增規則。

  5. 繼續照常建立工作區。

設定無伺服器 Spark 作業

秘訣

只有在您計劃提交無伺服器 Spark 作業時,才需要本節中的步驟。 如果您未計劃提交無伺服器 Spark 作業,則可以略過本節。

若要啟用受控虛擬網路的無伺服器 Spark 作業,您必須執行下列動作:

  • 設定工作區的受控虛擬網路,並為 Azure 儲存體帳戶新增輸出私人端點。
  • 設定受控虛擬網路之後,請加以佈建,並標幟它以允許 Spark 作業。
  1. 設定輸出私人端點。

    使用 YAML 檔案來定義受控虛擬網路設定,並為 Azure 儲存體帳戶新增私人端點。 此外,請設定 spark_enabled: true

    秘訣

    此範例用於設定為使用 isolation_mode: allow_internet_outbound 以允許網際網路流量的受控 VNet。 如果您要僅允許核准的輸出流量,請使用 isolation_mode: allow_only_approved_outbound

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

    您可以使用 YAML 設定檔搭配 az ml workspace update 命令,方法是指定 --file 參數和 YAML 檔案的名稱。 例如,下列命令會使用名為 workspace_pe.yml 的 YAML 檔案來更新現有的工作區:

    az ml workspace update --file workspace_pe.yml --resource_group rg --name ws
    

    附註

    啟用 [僅允許核准的輸出] (isolation_mode: allow_only_approved_outbound) 時,無法安裝 Spark 工作階段設定中定義的 conda 套件相依性。 若要解決此問題,請將沒有外部相依性的獨立 Python 套件 wheel 上傳至 Azure 儲存體帳戶,並對此儲存體帳戶建立私人端點。 使用 Python 套件 wheel 的路徑作為 Spark 作業中的 py_files 參數。 設定 FQDN 輸出規則不會略過此問題,因為 Spark 不支援 FQDN 規則傳播。

    下列範例示範如何為名為 myworkspace 的現有 Azure Machine Learning 工作區建立受控虛擬網路。 它也會為 Azure 儲存體帳戶新增私人端點,並設定 spark_enabled=true

    秘訣

    下列範例適用於設定為使用 IsolationMode.ALLOW_INTERNET_OUTBOUND 以允許網際網路流量的受控 VNet。 如果您要僅允許核准的輸出流量,請使用 IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND

    # Get the existing workspace
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, "myworkspace")
    ws = ml_client.workspaces.get()
    
    # Basic managed VNet configuration
    ws.managed_network = ManagedNetwork(IsolationMode.ALLOW_INTERNET_OUTBOUND)
    
    # Example private endpoint outbound to a blob
    rule_name = "myrule"
    service_resource_id = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>"
    subresource_target = "blob"
    spark_enabled = True
    
    # Add the outbound 
    ws.managed_network.outbound_rules = [PrivateEndpointDestination(
        name=rule_name, 
        service_resource_id=service_resource_id, 
        subresource_target=subresource_target, 
        spark_enabled=spark_enabled)]
    
    # Create the workspace
    ml_client.workspaces.begin_update(ws)
    

    附註

    • 啟用 [僅允許核准的輸出] (isolation_mode: allow_only_approved_outbound) 時,無法安裝 Spark 工作階段設定中定義的 conda 套件相依性。 若要解決此問題,請將沒有外部相依性的獨立 Python 套件 wheel 上傳至 Azure 儲存體帳戶,並對此儲存體帳戶建立私人端點。 使用 Python 套件 wheel 的路徑作為 Spark 作業中的 py_files 參數。
    • 如果工作區是使用 IsolationMode.ALLOW_INTERNET_OUTBOUND建立的,則稍後無法更新以使用 IsolationMode.ALLOW_ONLY_APPROVED_OUTBOUND
    1. 登入 Azure 入口網站,然後選取 Azure Machine Learning 工作區。

    2. 選取 [網路],然後選取 [新增使用者定義的輸出規則]。 為 Azure 儲存體帳戶新增規則,並確定已選取 [Spark 已啟用]

      已啟用 Spark 的端點規則螢幕擷取畫面。

    3. 選取 [儲存] 以儲存規則,然後從 [網络] 頂端選取 [儲存],以將變更儲存至受控虛擬網络。

  2. 佈建受控虛擬網路。

    附註

    如果您的工作區已啟用公用網路存取權,您必須先停用它,才能佈建受控 VNet。 如果您在布建受控 VNet 時未停用公用網路存取,工作區的私人端點可能不會在受控 VNet 中自動建立。 否則,您必須在佈建之後手動設定工作區的私人端點輸出規則。

    下列範例示範如何使用 --include-spark 參數為無伺服器 Spark 作業佈建受控虛擬網路。

    az ml workspace provision-network -g my_resource_group -n my_workspace_name --include-spark
    

    下列範例示範如何為無伺服器 Spark 作業佈建受控虛擬網路:

    # Connect to a workspace named "myworkspace"
    ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name="myworkspace")
    
    # whether to provision Spark vnet as well
    include_spark = True
    
    provision_network_result = ml_client.workspaces.begin_provision_network(workspace_name=ws_name, include_spark=include_spark).result()
    

    從 Azure 入口網站中,您只能選取在工作區建立期間布建受控網路。 若要這樣做,請從 [輸出存取] 索引標籤選取 [布建受控虛擬網络]。若要為現有工作區布建無伺服器 Spark 作業的受控網路,您必須使用 Azure CLIPython SDK

手動佈建受控 VNet

當您建立計算執行個體時,系統會自動佈建受控虛擬網路。 依賴自動佈建時,建立第一個計算執行個體大約需要 30 分鐘的時間,因為它也會佈建網路。 如果您已設定 FQDN 輸出規則 (僅隨著僅允許核准的模式提供),則第一個 FQDN 規則會對佈建時間增加約 10 分鐘。 如果您有一大組輸出規則要佈建在受控網路中,則佈建需要較長的時間才能完成。 增加的佈建時間可能會導致第一個計算執行個體的建立逾時。

若要減少等候時間且避免潛在的逾時錯誤,建議您手動佈建受控網路。 然後,請等候佈建完成,再建立計算執行個體。

或者,您可以使用 provision_network_now 旗標來佈建受控網路,作為工作區建立的一部分。

附註

若要建立線上部署,您必須手動佈建受控網路,或先建立計算執行個體,以進行自動佈建。

下列範例示範如何在工作區建立期間佈建受控虛擬網路。

az ml workspace create -n myworkspace -g my_resource_group --managed-network AllowInternetOutbound --provision-network-now

下列範例示範如何手動佈建受控虛擬網路。

秘訣

如果您計劃提交無伺服器 Spark 作業,請新增 --include-spark 參數。

az ml workspace provision-network -g my_resource_group -n my_workspace_name

若要驗證佈建是否已完成,請使用下列命令:

az ml workspace show -n my_workspace_name -g my_resource_group --query managed_network

若要在工作區建立期間佈建受控網路,請將 provision_network_now 旗標設定為 True

provision_network_now: True

下列範例示範如何佈建受控虛擬網路:

# Connect to a workspace named "myworkspace"
ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name="myworkspace")

# whether to provision Spark vnet as well
include_spark = True

provision_network_result = ml_client.workspaces.begin_provision_network(workspace_name=ws_name, include_spark=include_spark).result()

若要確認已佈建工作區,請使用 ml_client.workspaces.get() 來取得工作區資訊。 managed_network 屬性包含受控網路的狀態。

ws = ml_client.workspaces.get()
print(ws.managed_network.status)

在工作區建立期間,選取 [在建立時主動佈建受控網络] 以佈建受控網路。 佈建虛擬網路後會產生網路資源 (例如私人端點) 的費用。 此組態選項只能在工作區建立期間使用。

設定映像組建

當工作區的 Azure Container Registry 位於虛擬網路後方時,它無法用來直接建置 Docker 映像。 請改為將您的工作區設定為使用計算叢集或計算執行個體來建置映像。

重要事項

用來建置 Docker 映像的計算資源必須能夠存取用來定型及部署模型的套件存放庫。 如果您使用設定為只允許核准輸出的網路,您可能需要新增允許存取公用存放庫的規則,或使用私人 Python 套件

若要更新工作區以使用計算叢集或計算執行個體來建置 Docker 映像,請使用 az ml workspace update 命令搭配 --image-build-compute 參數:

az ml workspace update --name ws --resource-group rg --image-build-compute mycompute

下列範例示範如何更新工作區以使用計算叢集來建置映像:

# import required libraries
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

subscription_id = "<your subscription ID>"
resource_group = "<your resource group name>"
workspace = "<your workspace name>"

ml_client = MLClient(
    DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name=workspace
)

# Get workspace info
ws=ml_client.workspaces.get(name=workspace)
# Update to use cpu-cluster for image builds
ws.image_build_compute="mycompute"
ml_client.workspaces.begin_update(ws)
# To switch back to using ACR to build (if ACR is not in the virtual network):
# ws.image_build_compute = ''
# ml_client.workspaces.begin_update(ws)

您無法從 Azure 入口網站設定映像建置運算。 請改用 Azure CLIPython SDK

管理輸出規則

若要列出工作區的受控虛擬網路輸出規則,請使用下列命令:

az ml workspace outbound-rule list --workspace-name ws --resource-group rg

若要檢視受控虛擬網路輸出規則的詳細資料,請使用下列命令:

az ml workspace outbound-rule show --rule rule-name --workspace-name ws --resource-group rg

若要從受控虛擬網路移除輸出規則,請使用下列命令:

az ml workspace outbound-rule remove --rule rule-name --workspace-name ws --resource-group rg

下列範例會示範如何管理名為 myworkspace 的工作區的輸出規則:

# Connect to the workspace
ml_client = MLClient(DefaultAzureCredential(), subscription_id=subscription_id, resource_group_name=resource_group, workspace_name="myworkspace")

# Specify the rule name
rule_name = "<some-rule-name>"

# Get a rule by name
rule = ml_client._workspace_outbound_rules.get(resource_group, ws_name, rule_name)

# List rules for a workspace
rule_list = ml_client._workspace_outbound_rules.list(resource_group, ws_name)

# Delete a rule from a workspace
ml_client._workspace_outbound_rules.begin_remove(resource_group, ws_name, rule_name).result()
  1. 登入 Azure 入口網站,然後選取您想要啟用受控虛擬網路隔離的 Azure Machine Learning 工作區。

  2. 選取 [網路功能]。 [工作區輸出存取] 區段可讓您管理輸出規則。

    輸出規則區段的螢幕擷取畫面。

  • 若要新增輸出規則,請從 [網路] 索引標籤選取 [新增使用者定義的輸出規則]。從 [工作區輸出規則] 資訊看板,提供下列資訊:

  • 若要啟用停用規則,請使用 [使用中] 資料行中的切換。

  • 若要刪除輸出規則,請針對規則選取 [刪除]

必要規則的清單

私人端點

  • 當受控虛擬網路的隔離模式為 Allow internet outbound 時,私人端點輸出規則會自動建立為工作區受控虛擬網路的必要規則,以及已停用公用網路存取的相關聯資源 (金鑰保存庫、儲存體帳戶、Azure Container Registry、Azure Machine Learning 工作區)。
  • 當受控虛擬網路的隔離模式為 Allow only approved outbound 時,無論這些資源 (Key Vault、儲存體帳戶、Azure Container Registry、Azure Machine Learning 工作區) 的公用網路存取模式,都會自動從工作區的受控虛擬網路和相關聯資源建立私人端點輸出規則,以作為必要的規則。
  • 這些規則會自動新增至受控虛擬網路。

若要讓 Azure Machine Learning 正常執行,受控或自訂虛擬網路設定中需要一組必要的服務標籤。 沒有替代某些必要服務標籤的替代方案。 下表描述 Azure Machine Learning 內每個必要的服務標籤及其用途。

服務標籤規則 輸入或輸出 目的
AzureMachineLearning 輸入 建立、更新及刪除 Azure Machine Learning 計算執行個體/叢集。
AzureMachineLearning 輸出 使用 Azure Machine Learning 服務。 筆記本中的 Python Intellisense 使用連接埠 18881。 建立、更新和刪除 Azure Machine Learning 計算執行個體會使用連接埠 5831。
AzureActiveDirectory 輸出 使用 Microsoft Entra ID 進行驗證。
BatchNodeManagement.region 輸出 與 Azure Machine Learning 計算執行個體/叢集的 Azure Batch 後端進行通訊。
AzureResourceManager 輸出 使用 Azure Machine Learning、Azure CLI 與 Azure Machine Learning SDK 建立 Azure 資源。
AzureFrontDoor.FirstParty 輸出 存取 Microsoft 提供的 Docker 映像。
MicrosoftContainerRegistry 輸出 存取 Microsoft 提供的 Docker 映像。 設定 Azure Kubernetes Service 的 Azure Machine Learning 路由器。
AzureMonitor 輸出 用來將監視和計量記錄至 Azure 監視器。 只有在工作區的 Azure 監視器未受到保護時才需要。 此輸出也可用來記錄支援事件的資訊。
VirtualNetwork 輸出 當虛擬網路或對等的虛擬網路中存在私人端點時,則為必要項目。

附註

服務標記作為唯一的安全邊界是不夠的。 如需租用戶層級的隔離,請盡可能使用私人端點。

案例特定輸出規則的清單

案例:存取公用機器學習套件

若要允許安裝 Python 套件以進行定型和部署,請新增輸出 FQDN 規則以允許流量傳送至下列主機名稱:

警告

FQDN 輸出規則是使用 Azure 防火牆來實作。 如果您使用輸出 FQDN 規則,Azure 防火牆的費用會增加至您的帳單中。 如需詳細資訊,請參閱定價

附註

下列清單不包含網際網路上所有 Python 資源所需的所有主機,只有最常用的主機。 例如,如果您需要存取 GitHub 存放庫或其他主機,則必須識別並新增該情節所需的主機。

主機名稱 目的
anaconda.com
*.anaconda.com
用來安裝預設封裝。
*.anaconda.org 用來取得存放庫資料。
pypi.org 用來列出來自預設索引的相依性 (如果有的話),而且使用者設定不會覆寫索引。 如果覆寫索引,您也必須允許 *.pythonhosted.org
pytorch.org
*.pytorch.org
由基於 PyTorch 的一些範例使用。
*.tensorflow.org 由基於 TensorFlow 的一些範例使用。

案例:使用 Visual Studio Code Desktop 或 Web 搭配計算執行個體

如果您計劃使用 Visual Studio Code 搭配 Azure Machine Learning,請新增輸出 FQDN 規則,以允許流量傳送至下列主機:

附註

下列清單不是因特網上所有 Visual Studio Code 資源所需的主機完整清單,只有最常使用的主機。 例如,如果您需要存取 GitHub 存放庫或其他主機,則必須識別並新增該情節所需的主機。 如需主機名稱的完整清單,請參閱 Visual Studio Code 中的網路連線

主機名稱 目的
*.vscode.dev
*.vscode-unpkg.net
*.vscode-cdn.net
*.vscodeexperiments.azureedge.net
default.exp-tas.com
存取 vscode.dev (Visual Studio Code for Web) 時所需
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 Machine Learning 資源
vscode.download.prss.microsoft.com 用於 Visual Studio Code 下載 CDN

案例:使用批次端點或 ParallelRunStep

如果您規劃使用 Azure Machine Learning 批次端點進行部署或 ParallelRunStep,請新增輸出私人端點規則,以允許流量傳送至預設儲存體帳戶的下列子資源:

  • queue
  • table
  • Foundry Tools 的私有端點
  • Azure AI 搜尋服務的私人端點

案例:使用 HuggingFace 模型

如果您計劃使用 HuggingFace 模型搭配 Azure Machine Learning,請新增輸出 FQDN 規則,以允許流量傳送至下列主機:

警告

FQDN 輸出規則是使用 Azure 防火牆來實作。 如果您使用輸出 FQDN 規則,Azure 防火牆的費用會增加至您的帳單中。 如需詳細資訊,請參閱定價

  • docker.io
  • *.docker.io
  • *.docker.com
  • production.cloudflare.docker.com
  • cdn.auth0.com
  • cdn-lfs.huggingface.co

案例:從選取的 IP 位址啟用存取

如果您要啟用來自特定 IP 位址的存取,請使用下列動作:

  1. 新增輸出私人端點規則,以允許流量傳送至 Azure Machine Learning 工作區。 此規則允許在受控虛擬網路中建立的計算執行個體存取工作區。

    秘訣

    您無法在工作區建立期間新增此規則,因為工作區尚未存在。

  2. 啟用工作區的公用網路存取。 如需詳細資訊,請參閱公用網路存取已啟用

  3. 將 IP 位址新增至 Azure Machine Learning 的防火牆。 如需詳細資訊,請參閱僅從 IP 範圍啟用存取

    附註

    僅支援 IPv4 位址。

如需詳細資訊,請參閱設定私人連結

私人端點

私人端點目前支援下列 Azure 服務:

  • Azure Machine Learning
  • Azure Machine Learning 登錄
  • Azure 儲存體 (所有子資源類型)
  • Azure Container Registry
  • Azure Key Vault
  • 鑄造工具
  • Azure AI 搜尋服務 (先前稱為認知搜尋)
  • Azure SQL Server
  • Azure Data Factory
  • Azure Cosmos DB (所有子資源類型)
  • Azure 事件中樞
  • Azure Redis 快取
  • Azure Databricks
  • 適用於 MariaDB 的 Azure 資料庫
  • 適用於 PostgreSQL 的 Azure 資料庫單一伺服器
  • 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器
  • 適用於 MySQL 的 Azure 資料庫
  • Azure API 管理
    • 僅支援不含 VNET 插入的傳統層,以及具有虛擬網路整合的標準 V2 層。 如需 API 管理虛擬網路的詳細資訊,請參閱 虛擬網路概念
  • Application Insights (透過 PrivateLinkScopes

當您建立私人端點時,您會提供端點所連線的資源類型子資源。 某些資源有多個類型和子資源。 如需詳細資訊,請參閱什麼是私人端點

當您為 Azure Machine Learning 相依性資源建立私人端點時,例如 Azure 儲存體、Azure Container Registry 和 Azure Key Vault,資源可以位於不同的 Azure 訂用帳戶中。 不過,資源必須位於與 Azure Machine Learning 工作區相同的租用戶中。

不會自動建立工作區的私人端點。 只有在第一個計算建立或強制佈建受控虛擬網路時,才會建立它們。 如需強制受控虛擬網路布建的詳細資訊,請參閱 手動布建網路

私人端點的核准

若要使用 Azure 機器學習在受管理的虛擬網路中建立私人端點連線,工作區的受管理識別(無論是系統指派還是使用者指派)必須具有在目標資源上核准私人端點連線的許可權。 先前,此指派是透過 Azure Machine Learning 服務的自動角色指派來完成。 不過,對於自動角色指派有安全性考慮。 若要改善安全性,從 2025 年 4 月 30 日起,此角色指派並非自動。

建議您在目標資源類型上指派 Azure AI 企業網路連線核准者角色,或具有必要私人端點連線許可權的自定義角色。 若要允許 Azure Machine Learning 服務核准私人端點連線至目標 Azure 資源,請將此角色授與 Azure Machine Learning 工作區的受控識別。

以下是 Azure AI 企業網路連線核准者角色所涵蓋的私人端點目標資源類型清單:

  • Azure 應用程式閘道
  • Azure 監視器
  • Azure AI 搜尋服務
  • 事件中樞
  • Azure SQL Database
  • Azure 儲存體
  • Azure Machine Learning 工作區
  • Azure Machine Learning 註冊表
  • 鑄造廠
  • Azure Key Vault
  • Azure Cosmos DB
  • 適用於 MySQL 的 Azure 資料庫
  • 適用於 PostgreSQL 的 Azure 資料庫
  • 鑄造工具
  • Azure Cache for Redis
  • 容器登錄檔
  • API Management

若要建立私人端點輸出規則,以以 Azure AI 企業網路連線核准者角色未涵蓋的資源類型為目標,建議使用自定義範圍縮小角色。 規則應該定義在目標資源類型上核准私人端點連線所需的動作。 這類資源類型的範例包括 Azure Data Factory、Azure Databricks 和 Azure Function Apps。

若要建立預設工作區資源的私人端點輸出規則,工作區建立期間授與的角色指派會自動涵蓋必要的許可權,因此不需要其他動作。

選取僅允許核准的輸出流量的 Azure 防火牆版本

如果在僅允許核准的輸出模式中建立 FQDN 輸出規則,則會部署 Azure 防火牆。 您的帳單中會包含 Azure 防火牆的費用。 根據預設,系統會建立標準版本的 AzureFirewall。 您也可以選擇使用基本版本。 您可以視需要變更所使用的防火牆版本。 若要找出最適合您的版本,請瀏覽選擇適合的 Azure 防火牆版本 (部分機器翻譯)。

重要事項

在您新增輸出 FQDN 規則之前,不會建立防火牆。 如需價格的詳細資訊,請參閱 Azure 防火牆價格並檢視標準版本的價格。 只有進階 SKU Azure 防火牆才支援 URL 型篩選,而不是基本或標準 SKU Azure 防火牆。 受控虛擬網路不支援進階 SKU Azure 防火牆。

選取「僅允許核准的輸出」模式之後,會出現一個選項供您選取 Azure 防火牆版本 (SKU)。 選取 [標準] 以使用標準版本,或選取 [基本] 以使用基本版本。 選取 [儲存] 以儲存您的設定。

若要從 CLI 設定防火牆版本,請使用 YAML 檔案並指定 firewall_sku。 下列範例示範會將防火牆 SKU 設定為 basic 的 YAML 檔案:

name: test-ws
resource_group: test-rg
location: eastus2 
managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - category: required
    destination: 'contoso.com'
    name: contosofqdn
    type: fqdn
  firewall_sku: basic
tags: {}

若要從 Python SDK 設定防火牆版本,請設定 firewall_sku 物件的 ManagedNetwork 屬性。 下列範例示範如何將防火牆 SKU 設定為 basic

network = ManagedNetwork(isolation_mode=IsolationMode.ALLOW_INTERNET_OUTBOUND,
                         firewall_sku='basic')

定價

Azure Machine Learning 受控虛擬網路功能是免費的。 不過,您需支付受控虛擬網路所使用的下列資源的費用:

  • Azure Private Link - 用來保護受控虛擬網路與 Azure 資源之間通訊的私人端點會依賴 Azure Private Link。 如需價格的詳細資訊,請參閱 Azure Private Link 價格

  • FQDN 輸出規則 - FQDN 輸出規則是使用 Azure 防火牆來實作。 如果您使用輸出 FQDN 規則,Azure 防火牆的費用會增加至您的帳單中。 預設會使用標準版本的 Azure 防火牆。 如需如何選取基本版本的相關資訊,請參閱選取 Azure 防火牆版本

    重要事項

    在您新增輸出 FQDN 規則之前,不會建立防火牆。 如需價格的詳細資訊,請參閱 Azure 防火牆價格並檢視標準版本的價格。

限制

  • 一旦您啟用工作區的受控虛擬網路隔離 (允許網際網路輸出或只允許核准的輸出),就無法停用它。
  • 受控虛擬網路會使用私人端點連線來存取您的私人資源。 Azure 資源 (例如儲存體帳戶) 不能同時有私人端點和服務端點。 我們建議在所有案例中使用私人端點。
  • 刪除工作區時,會刪除受控虛擬網路。
  • 請確定 Azure Machine Learning 資源和資源群組上沒有任何範圍鎖定。 與受控虛擬網路相關的內部作業可能會遭到封鎖。
  • 資料外流保護會自動針對唯一核准的輸出模式啟用。 如果您新增其他輸出規則,例如 FQDN,Microsoft 無法保證您受到保護,不會將資料外流到那些輸出目的地。
  • 使用受控虛擬網路時,不支援在與工作區不同的區域中建立計算叢集。
  • Azure Machine Learning 受控虛擬網路中不支援 Kubernetes 和連結的 VM。
  • 使用 FQDN 輸出規則會增加受控虛擬網路的成本,因為 FQDN 規則會使用 Azure 防火牆。 如需詳細資訊,請參閱定價
  • FQDN 輸出規則僅支援埠 80 和 443。
  • 如果您的計算執行個體位於受控網路中,且未設定任何公用 IP,請使用 az ml compute connect-ssh 命令以使用 SSH 連線。
  • 使用受控虛擬網路時,您無法在自訂虛擬網路內部署計算資源。 計算資源只能在受控虛擬網路內建立。
  • 如果您的受控網路設定為僅允許核准的輸出,您就無法使用 FQDN 規則來存取 Azure 儲存體帳戶。 您必須改用私人端點。
  • 務必在您的自訂原則中將為受控虛擬網路建立的 Microsoft 管理的私人端點新增到允許清單。

計算資源的移轉

如果您有現有的工作區,且想要為其啟用受控虛擬網路,則目前不支援現有受控計算資源的移轉路徑。 您必須刪除所有現有的受控計算資源,並在啟用受控虛擬網路之後重新建立它們。 下列清單包含必須刪除並重新建立的計算資源:

  • 計算叢集
  • 計算執行個體
  • 受控線上端點

後續步驟