搭配使用客戶自控金鑰與 Azure Machine Learning

客戶自控金鑰概念文章中,您已了解 Azure Machine Learning 所提供的加密功能。 現在,請了解如何搭配使用客戶自控金鑰與 Azure Machine Learning。

Azure Machine Learning 依賴下列使用客戶自控金鑰的服務:

服務 用途
Azure Cosmos DB 儲存 Azure Machine Learning 的中繼資料
Azure AI 搜尋服務 儲存 Azure Machine Learning 的工作區中繼資料
Azure 儲存體 儲存 Azure Machine Learning 的工作區中繼資料
Azure Kubernetes Service 將已定型的模型裝載為推斷端點

您可使用相同的金鑰來協助保護 Azure Cosmos DB、Azure AI 搜尋服務和 Azure 記憶體。 您可以針對 Azure Kubernetes Service 使用不同的密鑰。

當您使用客戶自控金鑰搭配 Azure Cosmos DB、Azure AI 搜尋服務和 Azure 儲存體時,會在建立工作區時提供金鑰。 當您設定該資源時,會提供您搭配 Azure Kubernetes Service 使用的金鑰。

服務 用途
Azure Cosmos DB 儲存 Azure Machine Learning 的中繼資料
Azure AI 搜尋服務 儲存 Azure Machine Learning 的工作區中繼資料
Azure 儲存體 儲存 Azure Machine Learning 的工作區中繼資料
Azure Kubernetes Service 將已定型的模型裝載為推斷端點
Azure 容器執行個體 將已定型的模型裝載為推斷端點

您可使用相同的金鑰來協助保護 Azure Cosmos DB、Azure AI 搜尋服務和 Azure 記憶體。 您可以針對 Azure Kubernetes Service 和 Azure 容器執行個體使用不同的金鑰。

當您使用客戶自控金鑰搭配 Azure Cosmos DB、Azure AI 搜尋服務和 Azure 儲存體時,會在建立工作區時提供金鑰。 當您設定這些資源時,會提供您搭配 Azure 容器執行個體和 Azure Kubernetes Service 使用的金鑰。

必要條件

  • Azure 訂用帳戶。

  • 必須註冊下列 Azure 資源提供者:

    資源提供者 需要的原因
    Microsoft.MachineLearningServices 建立 Azure Machine Learning 工作區。
    Microsoft.Storage 會使用儲存體帳戶來作為工作區的預設儲存體。
    Microsoft.KeyVault 工作區會使用 Azure Key Vault 來儲存秘密。
    Microsoft.DocumentDB/databaseAccounts 記錄工作區中繼資料的 Azure Cosmos DB 執行個體。
    Microsoft.Search/searchServices Azure 搜尋可為工作區提供索引編製功能。

    如需有關註冊資源提供者的詳細資訊,請參閱解決資源提供者註冊的錯誤

限制

  • 建立工作區之後,工作區相依資源的客戶自控加密金鑰只能更新為原始 Azure Key Vault 資源中的另一個金鑰。
  • 訂用帳戶中由 Microsoft 管理的資源無法將擁有權轉移給您。
  • 您無法只刪除 Microsoft 所管理、用於客戶自控金鑰的資源,而不一併刪除工作區。
  • 包含客戶自控金鑰的金鑰保存庫必須與 Azure Machine Learning 工作區位於相同的 Azure 訂用帳戶中。
  • 機器學習計算的 OS 磁碟無法使用客戶自控金鑰加密,但如果工作區是以設定為 TRUEhbi_workspace參數建立,則可使用 Microsoft 管理的金鑰加密。 如需詳細資訊,請參閱資料加密

重要

使用客戶自控金鑰時,由於訂用帳戶中還有其他資源,因此訂用帳戶的成本會比較高。 若要估計成本,請使用 Azure 定價計算機

建立 Azure Key Vault

若要建立金鑰保存庫,請參閱建立金鑰保存庫。 在建立 Azure Key Vault 時,您必須啟用虛刪除清除保護

重要

金鑰保存庫必須位於將包含 Azure Machine Learning 工作區的相同 Azure 訂用帳戶中。

建立金鑰

提示

如果您在建立金鑰時遇到問題,原因可能出在訂用帳戶所套用的 Azure 角色型存取控制。 請確定您用來建立金鑰的安全性主體 (使用者、受控識別、服務主體等) 已獲派金鑰保存庫執行個體的參與者角色。 您也必須在金鑰保存庫中設定存取原則,以便向安全性主體授與建立取得刪除清除授權。

如果您打算為工作區使用使用者指派的受控識別,則也必須向受控識別指派這些角色和存取原則。

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

  1. Azure 入口網站選取金鑰保存庫執行個體。 然後,從左側選取 [金鑰]

  2. 從頁面頂端選取 [+ 產生/匯入]。 使用下列值來建立金鑰:

    • 將 [選項] 設定為 [產生]
    • 輸入金鑰的 [名稱]。 名稱應該要能識別計畫用途。 例如: my-cosmos-key
    • 將 [金鑰類型] 設定為 [RSA]
    • 建議您至少選取 [3072] 來作為 [RSA 金鑰大小]
    • 讓 [已啟用] 保持設定為 [是]。

    (選擇性) 您可以設定啟用日期、到期日和標籤。

  3. 選取 [建立] 來建立金鑰。

允許 Azure Cosmos DB 存取金鑰

  1. 若要設定金鑰保存庫,請在 Azure 入口網站中選取金鑰保存庫,然後從左側功能表中選取 [存取原則]
  2. 若要建立 Azure Cosmos DB 的權限,請選取頁面頂端的 [+ 建立]。 在 [金鑰權限] 底下,選取 [取得]、[將金鑰解除包裝] 和 [包裝金鑰] 權限。
  3. 在 [主體] 底下,搜尋 Azure Cosmos DB,然後加以選取。 在所有區域中 (Azure Government 除外),這個項目的主體識別碼是 a232010e-820c-4083-83bb-3ace5fc29d0b。 至於 Azure Government,主體識別碼是 57506a73-e302-42a9-b869-6f12d9ec29e9
  4. 選取 [檢閱 + 建立],然後選取 [建立]。

建立使用客戶自控金鑰的工作區

建立 Azure Machine Learning 工作區。 建立工作區時必須選取 [Azure Key Vault] 和 [金鑰]。 根據您建立工作區的方式,您可以透過不同方式指定這些資源:

警告

包含客戶自控金鑰的金鑰保存庫必須與工作區位於相同的 Azure 訂用帳戶中。

  • Azure 入口網站:在設定工作區時,從下拉式輸入方塊中選取金鑰保存庫和金鑰。

  • SDK、REST API 和 Azure Resource Manager 範本:提供金鑰保存庫的 Azure Resource Manager 識別碼,以及金鑰的 URL。 若要取得這些值,請使用 Azure CLI 和下列命令:

    # Replace `mykv` with your key vault name.
    # Replace `mykey` with the name of your key.
    
    # Get the Azure Resource Manager ID of the key vault
    az keyvault show --name mykv --query id
    # Get the URL for the key
    az keyvault key show --vault-name mykv -n mykey --query key.kid
    

    金鑰保存庫識別碼值會類似 /subscriptions/{GUID}/resourceGroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/mykv。 金鑰的 URL 會類似 https://mykv.vault.azure.net/keys/mykey/{GUID}

如需使用客戶自控金鑰來建立工作區的範例,請參閱下列文章:

建立方法 發行項
CLI 使用 Azure CLI 建立工作區
Azure 入口網站/
Python SDK
建立及管理工作區
Azure Resource Manager
範本
使用範本來建立工作區
REST API 使用 REST 建立、執行和刪除 Azure Machine Learning 資源

工作區建立完成後,您會發現訂用帳戶中已建立 Azure 資源群組。 這是除了工作區資源群組外的群組。 此資源群組會包含與金鑰搭配使用、由 Microsoft 管理的資源。 此資源群組會使用 <Azure Machine Learning workspace resource group name><GUID> 的公式來命名。 其會包含 Azure Cosmos DB 執行個體、Azure 儲存體帳戶和 Azure AI 搜尋服務。

提示

  • Azure Cosmos DB 執行個體的要求單位會視需要自動縮放。
  • 如果 Azure Machine Learning 工作區使用私人端點,此資源群組也會包含 Microsoft 管理的 Azure 虛擬網路。 此 VNet 可用來保護受控服務與工作區之間的通訊。 您無法提供自有的 VNet 來與 Microsoft 管理的資源搭配使用。 您也無法修改虛擬網路。 例如,您無法變更其使用的 IP 位址範圍。

重要

若訂用帳戶沒有足夠的配額可供這些服務使用,則會發生失敗。

警告

請勿刪除資源群組,其含有此 Azure Cosmos DB 執行個體,或此群組中自動建立的任何資源。 如果您需要刪除資源群組或其中的由 Microsoft 管理的服務,就必須刪除用到這些項目的 Azure Machine Learning 工作區。 相關聯的工作區遭到刪除時,資源群組資源也會一併刪除。

如需使用 Azure Cosmos DB 之客戶自控金鑰的詳細資訊,請參閱為 Azure Cosmos DB 帳戶設定客戶自控金鑰

Azure Container Instance

重要

在 SDK 或 CLI v2 中無法部署至 Azure 容器執行個體。 僅只透過 SDK 和 CLI v1。

將已定型的模型部署到 Azure 容器執行個體 (ACI) 時,可以使用客戶自控金鑰來加密所部署的資源。 如需產生金鑰的詳細資訊,請參閱使用客戶管理金鑰來加密資料

若要在將模型部署到 Azure 容器執行個體時使用金鑰,請使用 AciWebservice.deploy_configuration() 建立新的部署設定。 使用下列參數提供金鑰資訊:

  • cmk_vault_base_url:包含金鑰之金鑰保存庫的 URL。
  • cmk_key_name:金鑰的名稱。
  • cmk_key_version:金鑰的版本。

如需建立和使用部署設定的相關詳細資訊,請參閱下列文章:

Azure Kubernetes Service

您可以隨時使用客戶管理的金鑰來加密已部署的 Azure Kubernetes Service 資源。 如需詳細資訊,請參閱攜帶您自己的金鑰搭配 Azure Kubernetes Service

此程序可讓您對 Kubernetes 叢集中已部署之虛擬機器的資料和 OS 磁碟進行加密。

重要

此程序僅適用於 AKS K8s 1.17 版或更高版本。

下一步