資料管理

瞭解如何管理數據存取,以及如何在 Azure 機器學習 中驗證。

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

重要

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

認證型數據驗證

一般而言,認證型數據驗證牽涉到下列檢查:

  • 從認證型資料存放區存取資料的使用者是否已獲指派角色,其中包含的角色型存取控制 (RBAC) Microsoft.MachineLearningServices/workspaces/datastores/listsecrets/action

    • 需要此許可權,才能從用戶的數據存放區擷取認證。
    • 包含此許可權的內建角色已是參與者、Azure AI 開發人員或 Azure 機器學習 資料科學家。 或者,如果套用自定義角色,您必須確定此許可權已新增至該自定義角色。
    • 您必須知道 哪個 特定使用者嘗試存取數據。 它可以是具有使用者身分識別的實際使用者,或是具有計算受控識別的計算機(MSI)。 請參閱案例和驗證選項一節,以識別您需要新增許可權的身分識別。
  • 預存認證(服務主體、帳戶密鑰或共用存取簽章令牌)是否具有數據資源的存取權?

身分識別型數據驗證

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

  • 哪個使用者想要存取資源?
    • 根據存取資料時的內容,可以使用不同類型的驗證,例如:
      • 使用者身分識別
      • 計算受控識別
      • 工作區的受控識別
    • 作業,包括數據集Generate Profile選項、在您的訂用帳戶中的計算資源上執行,以及從該位置存取數據。 計算受控識別需要記憶體資源的許可權,而不是提交作業的使用者身分識別。
    • 若要根據使用者身分識別進行驗證,您必須知道哪個特定使用者嘗試存取儲存體資源。 如需使用者驗證的詳細資訊,請參閱 Azure 機器學習 的驗證。 如需服務層級驗證的詳細資訊,請參閱 Azure 機器學習 與其他服務之間的驗證。
  • 此使用者是否有讀取許可權?
    • 使用者身分識別或計算受控識別是否具有該記憶體資源的必要許可權? 許可權是使用 Azure RBAC 授與。
    • 儲存體帳戶的讀者會讀取儲存體中繼資料。
    • 儲存體 Blob 數據讀取器會讀取並列出記憶體容器和 Blob。
    • 如需詳細資訊,請參閱 適用於記憶體的 Azure 內建角色。
  • 此使用者是否有寫入的許可權?
    • 使用者身分識別或計算受控識別是否具有該記憶體資源的必要許可權? 許可權是使用 Azure RBAC 授與。
    • 儲存體帳戶的讀者會讀取儲存體中繼資料。
    • 儲存體 Blob 資料參與者會讀取、寫入和刪除 Azure 儲存體 容器和 Blob。
    • 如需詳細資訊,請參閱 適用於記憶體的 Azure 內建角色。

其他驗證的一般檢查

  • 存取來自何處?
    • 使用者:虛擬網路/子網範圍內的用戶端IP位址嗎?
    • 工作區:工作區是公用的,還是虛擬網路/子網中有私人端點?
    • 儲存體:記憶體是否允許公用存取,還是會限制透過服務端點或私人端點的存取?
  • 將執行哪些作業?
    • Azure Machine Learning 會處理資料存放區/資料集上的建立、讀取、更新和刪除 (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。

提示

若要從外部 機器學習 存取數據,例如,使用 Azure 儲存體 Explorer,該存取權可能依賴使用者身分識別。 如需特定資訊,請參閱您所使用的工具或服務文件。 如需 機器學習 如何與數據搭配運作的詳細資訊,請參閱設定 Azure 機器學習 與其他服務之間的驗證。

虛擬網路特定需求

下列資訊可協助您設定數據驗證,以從 機器學習 工作區存取虛擬網路後方的數據。

將記憶體帳戶的許可權新增至 機器學習 工作區受控識別

當您從 Studio 使用記憶體帳戶時,如果您想要查看資料集預覽,您必須在資料存放區設定的 Azure Machine Learning 工作室 中啟用使用工作區受控識別進行數據預覽和分析。 然後將記憶體帳戶的下列 Azure RBAC 角色新增至工作區受控識別:

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

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

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

保護與記憶體帳戶的通訊

若要保護 機器學習 與記憶體帳戶之間的通訊,請將記憶體設定為授與受信任 Azure 服務的存取權。

Azure 儲存體防火牆

當記憶體帳戶位於虛擬網路後方時,記憶體防火牆通常可以用來讓您的用戶端透過因特網直接連線。 不過,當您使用 Studio 時,您的用戶端不會連線到記憶體帳戶。 發出要求 機器學習 服務會連線到記憶體帳戶。 服務的 IP 位址未被記載,且經常變更。 啟用記憶體防火牆不允許工作室存取虛擬網路組態中的記憶體帳戶。

Azure 儲存體端點類型

當工作區使用私人端點,且記憶體帳戶也位於虛擬網路中時,當您使用 Studio 時,會發生額外的驗證需求:

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

Azure Data Lake Storage Gen1

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

Azure Data Lake Storage Gen2

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

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

下一步

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