共用方式為


資料管理

了解如何管理資料存取,以及如何在 Azure Machine Learning 中驗證。

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

重要

本文適用於想要為 Azure Machine Learning 解決方案建立所需基礎架構的 Azure 系統管理員。

認證型資料驗證

一般而言,認證型資料驗證涉及到下列檢查:

  • 確認從認證型資料存放區存取資料的使用者獲指派具有包含 Microsoft.MachineLearningServices/workspaces/datastores/listsecrets/action 之角色型存取控制 (RBAC) 的角色

    • 需要此權限,才能從使用者的資料存放區擷取認證。

    • 已包含此權限的內建角色:

    • 您必須知道哪個特定使用者想要存取資料。 特定使用者可以是具有使用者身分識別的實際使用者。 它也可以是具有計算受控識別的電腦 (MSI)。 如需詳細資訊,請瀏覽案例和驗證選項一節,以判斷需要新增權限的身分識別。

  • 儲存的認證 (服務主體、帳戶金鑰或共用存取簽章權杖) 是否具有資料資源的存取權?

身分識別型資料驗證

一般而言,身分識別型資料驗證牽涉到下列檢查:

  • 哪個使用者想要存取資源?
    • 根據存取資料時的內容,可以使用不同類型的驗證。 例如:
      • 使用者身分識別
      • 計算受控識別
      • 工作區的受控識別
    • 包括資料集 Generate Profile 選項的工作,會在您的訂用帳戶中的計算資源上執行,並從該位置存取資料。 因此,計算受控識別需要存取儲存體資源的權限,而不是提交該工作的使用者的身分識別。
    • 若要根據使用者身分識別進行驗證,您必須知道哪個特定使用者嘗試存取儲存體資源。 如需使用者驗證的詳細資訊,請造訪 Azure Machine Learning 的驗證。 如需服務層級驗證的詳細資訊,請造訪 Azure Machine Learning 與其他服務之間的驗證
  • 此使用者是否具有資源的讀取權限?
  • 此使用者是否具有資源的寫入權限?

驗證的其他一般檢查

  • 究竟什麼是存取資源?
    • 使用者:用戶端 IP 位址在虛擬網路/子網路範圍內嗎?
    • 工作區:工作區是公用的,還是在虛擬網路/子網路中有私人端點?
    • 儲存體:儲存體是否允許公用存取,或是否會透過服務端點或私人端點來限制存取?
  • 規劃的作業為何?
    • Azure Machine Learning 控制代碼
      • 建立
      • 讀取
      • 更新
      • 資料存放區/資料集上的 Delete (CRUD) 作業。
    • Azure Machine Learning 工作室中資料資產的封存作業需要此 RBAC 作業:Microsoft.MachineLearningServices/workspaces/datasets/registered/delete
    • 資料存取呼叫 (例如預覽或結構描述) 會移至基礎儲存體,且需要額外的權限。
  • 此作業會在 Azure 訂用帳戶計算資源中,或 Microsoft 訂用帳戶託管的資源中執行?
    • 對資料集和資料存放區服務的所有呼叫 (除了 Generate Profile 選項之外) 使用 Microsoft 訂用帳戶中裝載的資源來執行作業。
    • 包括資料集 Generate Profile 選項的工作,會在您的訂用帳戶中的計算資源上執行,並從該位置存取資料。 因此,計算身分識別需要儲存體資源的權限,而不是提交該工作的使用者身分識別。

此圖顯示資料存取呼叫的一般流程。 在這裡,使用者會嘗試透過機器學習服務工作區進行資料存取呼叫,而不使用任何計算資源。

存取資料時顯示邏輯流程的圖表。

案例和驗證選項

下表列出要用於特定案例的身分識別:

組態 SDK 本機/筆記本虛擬機器 工作 (Job) 資料集預覽 資料存放區瀏覽
認證 + 工作區 MSI 認證 認證 工作區 MSI 認證 (僅限帳戶金鑰和共用存取簽章權杖)
無認證 + 工作區 MSI 計算 MSI/使用者身分識別 計算 MSI/使用者身分識別 工作區 MSI 使用者身分識別
認證 + 無工作區 MSI 認證 認證 認證 (私人網路下的資料集預覽不支援) 認證 (僅限帳戶金鑰和共用存取簽章權杖)
無認證 + 無工作區 MSI 計算 MSI/使用者身分識別 計算 MSI/使用者身分識別 使用者身分識別 使用者身分識別

針對 SDK V1,工作中的資料驗證一律會使用計算 MSI。 針對 SDK V2,工作中的資料驗證取決於您的工作設定。 根據該作業設定,它可以是使用者身分識別或計算 MSI。

提示

如果您需要從 Machine Learning 外部存取資料,例如使用 Azure 儲存體總管,則該存取可能會依賴使用者身分識別。 如需特定資訊,請參閱您規劃使用的工具或服務文件。 如需 Machine Learning 如何與資料搭配運作的詳細資訊,請造訪設定 Azure Machine Learning 與其他服務之間的驗證

虛擬網路特定需求

此資訊可協助您從 Machine Learning 工作區設定資料驗證,以存取虛擬網路後方的資料。

將儲存體帳戶的權限新增至 Machine Learning 工作區受控識別

從工作室使用儲存體帳戶時,如果您想要查看資料集預覽,必須在資料存放區設定中啟用 [在 Azure Machine Learning 工作室中使用工作區受控識別來預覽及分析資料]。 然後將這些儲存體帳戶 Azure RBAC 角色新增至工作區受控識別:

  • Blob 資料讀者
  • 如果儲存體帳戶使用私人端點來連線至虛擬網路,您必須將儲存體帳戶私人端點的讀取者角色授與受控識別。

如需詳細資訊,請造訪在 Azure 虛擬網路中使用 Azure Machine Learning 工作室

下列各節說明在虛擬網路中搭配使用儲存體帳戶與工作區的限制。

保護與儲存體帳戶的通訊

若要保護 Machine Learning 與儲存體帳戶之間的通訊,請將儲存體設定為授與受信任 Azure 服務的存取權

Azure 儲存體防火牆

針對位於虛擬網路後方的儲存體帳戶,儲存體防火牆可以用來允許您的用戶端透過網際網路直接連線。 不過,使用工作室時,您的用戶端不會連線到儲存體帳戶。 提出要求的 Machine Learning 服務會連線到儲存體帳戶。 服務的 IP 位址未被記載,且經常變更。 啟用儲存體防火牆不會允許工作室存取虛擬網路設定中的儲存體帳戶。

Azure 儲存體端點類型

當工作區使用私人端點且儲存體帳戶也在虛擬網路中時,使用工作室將會有額外的驗證需求。

  • 如果儲存體帳戶使用服務端點,工作區私人端點和儲存體服務端點必須位於與虛擬網路相同的子網路中。
  • 如果儲存體帳戶使用私人端點,則工作區私人端點和儲存體私人端點必須位於相同的虛擬網路中。 在此情況下,兩者可以位於不同的子網路。

Azure Data Lake Storage Gen1

使用 Azure Data Lake Storage Gen1 作為資料存放區時,您只能使用 POSIX 樣式的存取控制清單。 您可以向工作區的受控識別指派資源存取權,就像其他任何安全性主體一樣。 如需詳細資訊,請造訪 Azure Data Lake Storage Gen1 中的存取控制

Azure Data Lake Storage Gen2 \(部分機器翻譯\)

使用 Azure Data Lake Storage Gen2 作為資料存放區時,您可以使用 Azure RBAC 和 POSIX 樣式的存取控制清單 (ACL) 來控制虛擬網路內的資料存取。

  • 若要使用 Azure RBAC,請遵循資料存放區:Azure 儲存體帳戶中所述的步驟。 Data Lake Storage Gen2 以 Azure 儲存體為基礎,因此適用使用 Azure RBAC 的相同步驟。
  • 若要使用 ACL:可為工作區的受控識別指派存取權,就像其他任何安全性主體一樣。 如需詳細資訊,請造訪檔案和目錄的存取控制清單

下一步

如需如何在網路中啟用工作室的詳細資訊,請參閱在 Azure 虛擬網路中使用 Azure Machine Learning 工作室