資料管理
了解如何管理資料存取,以及如何在 Azure Machine Learning 中驗證。
適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)
重要
本文適用於想要為 Azure Machine Learning 解決方案建立所需基礎架構的 Azure 系統管理員。
認證型資料驗證
一般而言,認證型資料驗證涉及到下列檢查:
確認從認證型資料存放區存取資料的使用者獲指派具有包含
Microsoft.MachineLearningServices/workspaces/datastores/listsecrets/action
之角色型存取控制 (RBAC) 的角色需要此權限,才能從使用者的資料存放區擷取認證。
已包含此權限的內建角色:
- 參與者
- Azure AI 開發人員
- Azure Machine Learning 資料科學家
- 或者,如果套用自訂角色,則必須將此權限新增至該自訂角色
您必須知道哪個特定使用者想要存取資料。 特定使用者可以是具有使用者身分識別的實際使用者。 它也可以是具有計算受控識別的電腦 (MSI)。 如需詳細資訊,請瀏覽案例和驗證選項一節,以判斷需要新增權限的身分識別。
儲存的認證 (服務主體、帳戶金鑰或共用存取簽章權杖) 是否具有資料資源的存取權?
身分識別型資料驗證
一般而言,身分識別型資料驗證牽涉到下列檢查:
- 哪個使用者想要存取資源?
- 根據存取資料時的內容,可以使用不同類型的驗證。 例如:
- 使用者身分識別
- 計算受控識別
- 工作區的受控識別
- 包括資料集
Generate Profile
選項的工作,會在您的訂用帳戶中的計算資源上執行,並從該位置存取資料。 因此,計算受控識別需要存取儲存體資源的權限,而不是提交該工作的使用者的身分識別。 - 若要根據使用者身分識別進行驗證,您必須知道哪個特定使用者嘗試存取儲存體資源。 如需使用者驗證的詳細資訊,請造訪 Azure Machine Learning 的驗證。 如需服務層級驗證的詳細資訊,請造訪 Azure Machine Learning 與其他服務之間的驗證。
- 根據存取資料時的內容,可以使用不同類型的驗證。 例如:
- 此使用者是否具有資源的讀取權限?
- 使用者身分識別或計算受控識別是否具有該儲存體資源的必要權限? 權限是使用 Azure RBAC 授與。
- 儲存體帳戶的讀者會讀取儲存體中繼資料。
- 儲存體 Blob 資料讀取者:讀取和列出 Azure 儲存體容器和 Blob。
- 儲存體檔案資料特殊權限讀者可讀取和列出 Azure 檔案共用中的檔案和目錄。
- 如需詳細資訊,請造訪儲存體的 Azure 內建角色。
- 此使用者是否具有資源的寫入權限?
- 使用者身分識別或計算受控識別是否具有該儲存體資源的必要權限? 權限是使用 Azure RBAC 授與。
- 儲存體帳戶的讀者會讀取儲存體中繼資料。
- 儲存體 Blob 資料參與者讀取、寫入和刪除 Azure 儲存體容器和 Blob。
- 儲存體檔案資料特殊權限參與者可讀取、寫入、刪除和修改 Azure 檔案共用中檔案和目錄的存取控制清單。
- 如需詳細資訊,請造訪儲存體的 Azure 內建角色。
驗證的其他一般檢查
- 究竟什麼是存取資源?
- 使用者:用戶端 IP 位址在虛擬網路/子網路範圍內嗎?
- 工作區:工作區是公用的,還是在虛擬網路/子網路中有私人端點?
- 儲存體:儲存體是否允許公用存取,或是否會透過服務端點或私人端點來限制存取?
- 規劃的作業為何?
- Azure Machine Learning 控制代碼
- 建立
- 讀取
- 更新
- 資料存放區/資料集上的 Delete (CRUD) 作業。
- Azure Machine Learning 工作室中資料資產的封存作業需要此 RBAC 作業:
Microsoft.MachineLearningServices/workspaces/datasets/registered/delete
- 資料存取呼叫 (例如預覽或結構描述) 會移至基礎儲存體,且需要額外的權限。
- Azure Machine Learning 控制代碼
- 此作業會在 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 角色新增至工作區受控識別:
如需詳細資訊,請造訪在 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 工作室。