使用虛擬網路 (VNet) 保護 Azure Machine Learning 工作區資源

提示

Microsoft 建議使用 Azure 機器學習 受控虛擬網路,而不是本文中的步驟。 使用受控虛擬網路,Azure Machine Learning 會處理工作區和受控計算的網路隔離作業。 您也可以為工作區所需的資源新增私人端點,例如 Azure 儲存體帳戶。 如需詳細資訊,請參閱工作區受管理的網路隔離

使用 Azure 虛擬網路 (VNet) 保護 Azure Machine Learning 工作區資源和計算環境。 本文會使用範例案例,展示如何設定完整的虛擬網路。

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

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

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

必要條件

本文假設您已熟悉下列主題:

範例案例

在本節中,您會了解如何設定一般網路案例,以保護 Azure Machine Learning 與私人 IP 位址的通訊。

下表比較服務在有及沒有 VNet 的情況下如何存取 Azure Machine Learning 網路的不同部分:

案例 工作區 相關聯的資源 定型計算環境 推斷計算環境
無虛擬網路 公用 IP 公用 IP 公用 IP 公用 IP
公用工作區,虛擬網路中的所有其他資源 公用 IP 公用 IP (服務端點)
- 或 -
私人 IP (私人端點)
公用 IP 私人 IP
保護虛擬網路中的資源 私人 IP (私人端點) 公用 IP (服務端點)
- 或 -
私人 IP (私人端點)
私人 IP 私人 IP
  • 工作區 -為您的工作區建立私人端點。 私人端點會透過數個私人 IP 位址,將工作區連線至 Vnet。
    • 公用存取 - 您可以選擇性地啟用受保護工作區的公用存取。
  • 相關聯的資源 - 使用服務端點或私人端點來連線至工作區資源,例如 Azure 儲存體、Azure Key Vault。 針對 Azure Container Service,請使用私人端點。
    • 服務端點會向 Azure 服務提供您虛擬網路的身分識別。 在您的虛擬網路中啟用服務端點之後,您就可以新增虛擬網路規則,保護 Azure 服務資源對您虛擬網路的存取。 服務端點會使用公用 IP 位址。
    • 私人端點是一種網路介面,可安全地將您連線到 Azure Private Link 所提供的服務。 私人端點會使用您 VNet 中的私人 IP 位址,有效地將服務帶入您的 VNet 中。
  • 訓練計算存取 - 使用公用或私人 IP 位址存取訓練計算目標,例如 Azure Machine Learning 計算執行個體,以及 Azure Machine Learning 計算叢集。
  • 推斷計算存取 - 使用私人 IP 位址存取 Azure Kubernetes Services (AKS) 計算叢集。

下幾節會說明如何保護前述的網路案例。 若要保護您的網路,您必須:

  1. 保護工作區和相關聯的資源
  2. 保護定型環境
  3. 保護推斷環境
  4. 選擇性:啟用工作室功能
  5. 設定防火牆設定
  6. 設定 DNS 名稱解析

公用工作區和受保護資源

重要

雖然這是 Azure Machine Learning 支援的組態,但 Microsoft 不建議使用。 虛擬網路後方的 Azure 儲存體帳戶中的資料可以在公用工作區上公開。 在生產環境中使用它之前,您應該先向安全性小組確認此設定。

如果您想要透過公用網際網路存取工作區,同時讓所有相關聯的資源在虛擬網路中受到保護,請使用下列步驟:

  1. 建立 Azure 虛擬網路。 此網路可保護工作區所使用的資源。

  2. 使用下列其中一個選項來建立可公開存取的工作區:

    OR

  3. 使用服務端點私人端點,將下列服務新增至虛擬網路。 也允許信任的 Microsoft 服務存取這些服務:

  4. 在您工作區的 Azure 儲存體帳戶屬性中,將您的用戶端 IP 位址新增至防火牆設定中的允許清單。 如需詳細資訊,請參閱設定防火牆和虛擬網路

保護工作區和相關聯的資源

使用下列步驟來保護您的工作區和相關聯的資源。 這些步驟可讓您的服務在虛擬網路中進行通訊。

  1. 建立 Azure 虛擬網路。 此網路可保護工作區和其他資源。 然後,建立已啟用 Private Link 的工作區,以啟用您的 VNet 與工作區之間的通訊。

  2. 使用服務端點私人端點,將下列服務新增至虛擬網路。 也允許信任的 Microsoft 服務存取這些服務:

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

    將存取權授與信任的 Azure 服務
    Azure Container Registry 私人端點 允許信任的服務
  1. 建立 Azure 虛擬網路。 此虛擬網路可保護工作區和其他資源。 然後,建立已啟用 Private Link 的工作區,以啟用您的 VNet 與工作區之間的通訊。

  2. 使用服務端點私人端點,將下列服務新增至虛擬網路。 也允許信任的 Microsoft 服務存取這些服務:

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

    將存取權授與信任的 Azure 服務
    Azure Container Registry 私人端點 允許信任的服務

Diagram showing how the workspace and associated resources communicate inside a VNet.

如需如何完成這些步驟的詳細指示,請參閱保護 Azure Machine Learning 工作區

如需如何完成這些步驟的詳細指示,請參閱保護 Azure Machine Learning 工作區

限制

保護您的工作區和虛擬網路內相關聯的資源具有下列限制:

  • 工作區和預設儲存體帳戶必須位於相同的 VNet 中。 不過,允許相同 VNet 內的子網路。 例如,一個子網路中的工作區和另一個子網路中的儲存體。

    建議工作區的 Azure Key Vault 和 Azure Container Registry 也位於相同的 VNet 中。 不過,這兩個資源也可以位於對等互連 VNet 中。

保護定型環境

在本節中,您會了解如何在 Azure Machine Learning 中保護定型環境。 也會了解 Azure Machine Learning 如何完成定型作業,以了解網路設定如何一起運作。

若要保護定型環境,請使用下列步驟:

  1. 在虛擬網路中建立 Azure Machine Learning 計算執行個體和電腦叢集,以執行定型工作。

  2. 如果您的計算叢集或計算執行個體使用公用 IP 位址,即須允許輸入通訊,讓管理服務可以提交作業至計算資源。

    提示

    可在有或沒有公用 IP 位址的情況下,建立計算叢集和計算執行個體。 若建立時使用公用 IP 位址,則會取得使用公用 IP 的負載平衡器,以接受來自 Azure 批次服務和 Azure Machine Learning 服務的輸入存取。 若使用防火牆,則須設定使用者定義路由 (UDR)。 若建立時未使用公用 IP,則會取得私人連結服務,不使用公用 IP 接受來自 Azure 批次服務和 Azure Machine Learning 服務的輸入存取。

  1. 在虛擬網路中建立 Azure Machine Learning 計算執行個體和電腦叢集,以執行定型工作。

  2. 如果您的計算叢集或計算執行個體使用公用 IP 位址,即須允許輸入通訊,讓管理服務可以提交作業至計算資源。

    提示

    可在有或沒有公用 IP 位址的情況下,建立計算叢集和計算執行個體。 若建立時使用公用 IP 位址,則會取得使用公用 IP 的負載平衡器,以接受來自 Azure 批次服務和 Azure Machine Learning 服務的輸入存取。 若使用防火牆,則須設定使用者定義路由 (UDR)。 若建立時未使用公用 IP,則會取得私人連結服務,不使用公用 IP 接受來自 Azure 批次服務和 Azure Machine Learning 服務的輸入存取。

Diagram showing how to secure managed compute clusters and instances.

如需如何完成這些步驟的詳細指示,請參閱保護定型環境

如需如何完成這些步驟的詳細指示,請參閱保護定型環境

定型作業提交範例

在本節中,您會了解 Azure Machine Learning 如何在服務之間安全地進行通訊,以提交定型作業。 此範例展示您的所有設定如何一起運作,以保護通訊安全。

  1. 用戶端會將定型指令碼和定型資料上傳至使用服務或私人端點保護的儲存體帳戶。

  2. 用戶端會透過私人端點將定型作業提交至 Azure Machine Learning 工作區。

  3. Azure Batch 服務會從工作區接收作業。 然後,其會透過計算資源的公用負載平衡器,將定型作業提交至計算環境。

  4. 計算資源會接收該作業並開始定型。 計算資源會使用金鑰保存庫儲存的資訊來存取儲存體帳戶,以下載訓練檔案並上傳輸出。

Diagram showing the secure training job submission workflow.

限制

  • Azure 計算執行個體和 Azure 計算叢集必須位於與工作區及其相關聯的資源相同的 VNet、區域和訂用帳戶中。

保護推斷環境

受控線上端點可啟用網路隔離,以保護下列網路流量:

  • 輸入評分要求。
  • 與工作區、Azure Container Registry 和Azure Blob 儲存體的輸出通訊。

如需詳細資訊,請參閱啟用受控線上端點的網路隔離

在本節中,您會了解使用 Azure CLI 延伸模組 ML v1 或 Azure Machine Learning Python SDK v1 時,保護推斷環境的可用選項。 若為 v1 部署,建議使用 Azure Kubernetes Services (AKS) 叢集,以進行大規模的實際執行環境部署。

您有兩個選項適用於虛擬網路中 AKS 叢集:

  • 將預設 AKS 叢集部署或連結至您的 VNet。
  • 將私人 AKS 叢集連結至您的 VNet。

預設 AKS 叢集具有控制平面 (含公用 IP 位址)。 您可以在部署期間將預設 AKS 叢集新增至 VNet,或在建立叢集之後連結該叢集。

私人 AKS 叢集具有只能透過私人 IP 存取的控制平面。 在建立叢集之後,必須連結私人 AKS 叢集。

如需有關如何新增預設和私人叢集的詳細指示,請參閱保護推斷環境

無論使用預設 AKS 叢集或私人 AKS 叢集,若 AKS 叢集位於 VNET,則在該 AKS 叢集所屬的 VNET 中,您的工作區及其相關資源 (儲存體、金鑰保存庫和 ACR) 皆須具有私人端點或服務端點。

下列網路圖顯示私人 AKS 叢集連結至虛擬網路的受保護 Azure Machine Learning 工作區。

Diagram showing an attached private AKS cluster.

選擇性:啟用公用存取

您可以使用私人端點來保護 VNet 後方的工作區,而且仍允許透過公用網際網路存取。 初始設定與保護工作區和相關聯的資源相同。

在使用私人端點保護工作區之後,請使用下列步驟,讓用戶端可以使用 SDK 或 Azure Machine Learning 工作室從遠端開發:

  1. 啟用工作區的公用存取
  2. 設定 Azure 儲存體防火牆,以允許與透過公用網際網路連線的用戶端 IP 位址進行通訊。
  1. 啟用工作區的公用存取
  2. 設定 Azure 儲存體防火牆,以允許與透過公用網際網路連線的用戶端 IP 位址進行通訊。

選擇性:啟用工作室功能

如果您的儲存體位於 VNet 中,則必須使用額外的設定步驟來啟用工作室中的完整功能。 預設會停用下列功能:

  • 在工作室中預覽資料。
  • 在設計工具中將資料視覺化。
  • 在設計工具中部署模型。
  • 提交 AutoML 實驗。
  • 啟動標記專案。

若要啟用完整的工作室功能,請參閱在虛擬網路中使用 Azure Machine Learning 工作室

限制

ML 輔助資料標記不支援在虛擬網路後方的預設儲存體帳戶。 請改使非預設的儲存體帳戶,進行 ML 輔助資料標記。

提示

只要其不是預設儲存體帳戶,資料標記所使用的帳戶就可以在虛擬網路後方受到保護。

設定防火牆設定

設定您的防火牆,以控制 Azure Machine Learning 工作區資源和公用網際網路之間的流量。 雖然建議 Azure 防火牆,但您可以使用其他防火牆產品。

如需防火牆設定的詳細資訊,請參閱在防火牆後方使用工作區

自訂 DNS

如果需要將自訂 DNS 解決方案用於您的虛擬網路,您必須為您的工作區新增主機記錄。

如需所需網域名稱和 IP 位址的詳細資訊,請參閱如何搭配自訂 DNS 伺服器使用工作區

Microsoft Sentinel

Microsoft Sentinel 為可整合 Azure Machine Learning 的安全性解決方案。 例如:使用透過 Azure Machine Learning 提供的 Jupyter Notebook。 如需詳細資訊,請參閱使用 Jupyter 筆記本來搜捕安全性威脅

公用存取

若確定使用公用端點,Microsoft Sentinel 可為您自動建立工作區。 在此組態中,安全性作業中心 (SOC) 分析師和系統管理員會透過 Sentinel 連線至工作區中的筆記本。

如需此流程的相關資訊,請參閱從 Microsoft Sentinel 建立 Azure Machine Learning 工作區

Diagram showing Microsoft Sentinel public connection.

私人端點

若要保護工作區和 VNet 中的相關資源,則須先建立 Azure Machine Learning 工作區。 您也必須在工作區的同一個 VNet 內建立虛擬機器「跳板機」,並啟用其 Azure Bastion 連線能力。 類似公用組態,SOC 分析師和系統管理員可使用 Microsoft Sentinel 進行連線,但某些作業則須使用 Azure Bastion 連線至 VM。

如需此組態的詳細資訊,請參閱從 Microsoft Sentinel 建立 Azure Machine Learning 工作區

Daigram showing Microsoft Sentinel connection through a VNet.

下一步

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