Azure Machine Learning 資料外流防護

Azure Machine Learning 有數個輸入和輸出相依性。 其中有些相依性會因組織內的惡意代理程式,而有造成資料外流的風險。 本文件說明如何藉由限制輸入和輸出需求,將資料外流風險降到最低。

  • 傳入:如果您的計算執行個體或叢集使用公用 IP 位址,azuremachinelearning(連接埠 44224)服務標籤會有個輸入。 您可以使用網路安全性群組 (NSG) 和服務標籤來控制此輸入流量。 因為 Azure 服務 IP 難以偽裝,所以資料外流風險很低。 您也可以將計算設定為不使用公用 IP,這會移除輸入需求。

  • 輸出:如果惡意代理程式沒有輸出目的地資源的寫入權限,就無法使用該輸出外流資料。 Microsoft Entra ID、Azure Resource Manager、Azure Machine Learning 和 Microsoft 容器登錄都屬於這個類別。 另一方面,儲存體和 AzureFrontDoor.frontend 則可用於資料外流。

    • 儲存體輸出:此需求來自計算執行個體和計算叢集。 惡意代理程式可以使用此輸出規則,在自己的儲存體帳戶中佈建和儲存資料以外流資料。 您可以使用 Azure 服務端點原則和 Azure Batch 簡化節點通訊架構,移除資料外流風險。

    • AzureFrontDoor.frontend 輸出:Azure Front Door 由 Azure Machine Learning 工作室 UI 和 AutoML 使用。 不要允許傳出到服務標籤 (AzureFrontDoor.frontend),而是切換到以下完整網域名稱 (FQDN)。 切換到 FQDN 會移除服務標籤中不必要的輸出流量,並只允許 Azure Machine Learning 工作室 UI 和 AutoML 所需的流量。

      • ml.azure.com
      • automlresources-prod.azureedge.net

提示

本文資訊主要關於 Azure 虛擬網路的使用。 Azure Machine Learning 也可以使用 受控虛擬網路。 Azure Machine Learning 可利用受控虛擬網路,處理工作區和受控計算的網路隔離作業。

為了解決資料外流問題,受控虛擬網路讓您將出口限制為只允許核准的傳出流量。 如需詳細資訊,請參閱工作區受管理的網路隔離

必要條件

  • Azure 訂閱
  • Azure 虛擬網路 (VNet)
  • 具有可連線至 VNet 之私人端點的 Azure Machine Learning 工作區。
    • 工作區所用的儲存體帳戶也必須使用私人端點連線到 VNet。
  • 您必須重新建立計算執行個體,或將計算叢集縮小到零節點。
    • 如果您已加入預覽版,則無此需要。
    • 如果您在 2022 年 12 月之後建立新的計算執行個體和計算叢集,則無此需要。

為什麼我需要使用服務端點原則

服務端點原則讓你透過服務端點,篩選輸出到 Azure 儲存體帳戶的虛擬網路流量,並只允許資料外流到特定的 Azure 儲存體帳戶。 Azure Machine Learning 計算執行個體和計算叢集需要存取 Microsoft 管理的儲存體帳戶,才能進行佈建。 服務端點原則中的 Azure Machine Learning 別名,包含 Microsoft 管理的儲存體帳戶。 我們使用服務端點原則與 Azure Machine Learning 別名,防止資料外流或控制目的地儲存體帳戶。 服務端點原則文件提供詳細資訊。

1.建立服務端點原則

  1. Azure 入口網站中,新增服務端點原則。 在 [基本] 索引標籤中提供必要資訊,然後選取 [下一步]

  2. 在 [原則定義] 索引標籤中,執行下列動作:

    1. 選取 [+ 新增資源],然後提供下列資訊:

      • [服務]:Microsoft.Storage
      • 範圍:針對範圍選取單一帳戶,並將網路流量限定為一個儲存體帳戶。
      • [訂閱]:包含儲存體帳戶的 Azure 訂閱。
      • [資源群組]:包含儲存體帳戶的資源群組。
      • 資源:工作區的預設儲存體帳戶。

      選取 [新增] 以新增資源資訊。

      A screenshot showing how to create a service endpoint policy.

    2. 選取 [+ 新增別名],然後選取 /services/Azure/MachineLearning 作為 [伺服器別名] 值。 選取 [新增] 以新增此別名。

      注意

      Azure CLI 和 Azure PowerShell 不支援將別名新增至原則。

  3. 選取 [檢閱 + 建立],然後選取 [建立]。

重要

如果您的計算執行個體和計算叢集需要存取其他儲存體帳戶,您的服務端點原則應包含資源區段中的其他儲存體帳戶。 請注意,如果您使用儲存體私人端點,則無此需要。 服務端點原則和私人端點各自獨立。

2.允許輸入和輸出網路流量

傳入

重要

如何保護訓練環境一文提供的指導,修正如下。

重要

如何保護訓練環境一文提供的指導,修正如下。

當使用 Azure Machine Learning 計算執行個體搭配公用 IP 位址,可允許 Azure Batch 管理的輸入流量 (服務標籤 BatchNodeManagement.<region>)。 沒有公用 IP 的計算執行個體,需要這種傳入溝通。

輸出

重要

除了使用虛擬網路保護訓練環境設定輸入和輸出網路流量二文所提供的指引之外,也包括下列資訊。

重要

除了使用虛擬網路保護訓練環境設定輸入和輸出網路流量二文所提供的指引之外,也包括下列資訊。

選取您要使用的設定:

允許將流量輸出到以下服務標籤。 以包含您計算叢集或執行個體的 Azure 區域取代 <region>

服務標籤 通訊協定 Port
BatchNodeManagement.<region> ANY 443
AzureMachineLearning TCP 443
Storage.<region> TCP 443

注意

關於儲存體傳出,後續步驟將套用服務端點原則,限制出站流量。

如需詳細資訊,請參閱 如何保護訓練環境設定輸入和輸出網路流量

如需詳細資訊,請參閱 如何保護訓練環境設定輸入和輸出網路流量

3.為子網路啟用儲存體端點

請依照以下步驟,為包含 Azure Machine Learning 計算叢集和計算執行個體的子網路啟用儲存體端點:

  1. Azure 入口網站,為 Azure Machine Learning 工作區選取 Azure 虛擬網路
  2. 從頁面左側選取子網路,然後選取包含您計算叢集和計算執行個體的子網路。
  3. 在出現的表單中,展開服務下拉式清單,然後啟用 Microsoft.Storage。 選取 [儲存] 以儲存變更。
  4. 將服務端點原則套用到您的工作區子網路。

A screenshot of the Azure portal showing how to enable storage endpoint for the subnet.

4.策展的環境

使用 Azure Machine Learning 策展環境時,請務必使用最新的環境版本。 環境的容器登錄也必須是 mcr.microsoft.com。 請使用下列步驟檢查容器登錄:

  1. Azure Machine Learning 工作室中,選取您的工作區,然後選取環境

  2. 驗證 Azure 容器登錄mcr.microsoft.com 的值開頭。

    重要

    如果容器登錄是 viennaglobal.azurecr.io,您不能使用發生資料外流的策展環境。 請嘗試升級至最新版的策劃環境。

  3. 使用 mcr.microsoft.com 時,您也必須允許輸出設定連至下列資源。 選取您要使用的設定選項:

    允許透過 TCP 通訊埠 443 連至下列服務標籤的輸出流量。 以包含您計算叢集或執行個體的 Azure 區域取代 <region>

    • MicrosoftContainerRegistry.<region>
    • AzureFrontDoor.FirstParty

下一步

如需詳細資訊,請參閱下列文章: