Share via


設定 Azure 受控磁碟的客戶自控金鑰

計算平面中的 Azure Databricks 計算工作負載會將暫存數據儲存在 Azure 受控磁碟上。 預設情況下,儲存在受控磁碟中的資料會使用伺服器端加密搭配 Microsoft 受管理金鑰進行待用加密。 本文說明如何為 Azure Databricks 工作區設定 Azure 金鑰保存庫 保存庫的客戶自控密鑰,以用於受控磁碟加密。 如需從 Azure 金鑰保存庫 HSM 使用金鑰的指示,請參閱設定 Azure 受控磁碟的 HSM 客戶自控密鑰。

重要

  • 受控磁碟記憶體的客戶自控密鑰會套用至數據磁碟,但不適用於作業系統 (OS) 磁碟。
  • 受控磁碟記憶體的客戶自控密鑰不適用於無伺服器計算資源,例如無伺服器 SQL 倉儲模型服務。 用於無伺服器計算資源的磁碟是短期的,並繫結至無伺服器工作負載的生命週期。 當計算資源停止或相應減少時,VM 及其記憶體會終結。

需求

  • 您的 Azure Databricks 工作區必須位於 進階版 方案中

  • 您的 Azure 金鑰保存庫 和 Azure Databricks 工作區必須位於相同的區域和相同的 Microsoft Entra ID(先前稱為 Azure Active Directory) 租使用者中。 但兩者可位於不同的訂用帳戶中。

  • 如果您想要啟用自動輪替,僅支援大小為 2048 位、3072 位和 4096 位的軟體密鑰和 HSM RSA。

  • 符合 FedRAMP 規範的工作區不支援此功能。 如需詳細資訊,請連絡您的 Azure Databricks 帳戶小組。

  • 若要針對這些工作使用 Azure CLI, 請安裝 Azure CLI 工具 並安裝 Databricks 擴充功能:

    az extension add --name databricks
    
  • 若要針對這些工作使用Powershell, 請安裝 Azure PowerShell 並安裝 Databricks Powershell 模組。 您也必須登入:

    Connect-AzAccount
    

    若要以使用者身分登入您的 Azure 帳戶,請參閱 使用 Azure Databricks 使用者帳戶登入 PowerShell。 若要以服務主體身分登入 Azure 帳戶,請參閱 使用 Microsoft Entra ID 服務主體登入 PowerShell。

步驟 1:建立 金鑰保存庫

您可以透過許多方式建立 金鑰保存庫,包括 Azure 入口網站、Azure CLI、Powershell,以及選擇性地使用ARM範本。 下列各節提供使用 Azure CLI 和 Powershell 的程式。 如需其他方法,請參閱 Microsoft 檔

使用 Azure CLI

  1. 建立 金鑰保存庫:

    az keyvault create --name <keyVaultName> --resource-group <resourceGroupName> --location <location> --sku <sku> --enable-purge-protection
    
  2. 取得儲存庫 URI:

    az keyvault show --name <key-vault-name>
    

    vaultUri從回應複製值。

使用 PowerShell

建立新的儲存庫:

$keyVault = New-AzKeyVault -Name <key-vault-name> -ResourceGroupName <resource-group-name> -Location <location> -Sku <sku> -EnablePurgeProtection

取得現有的 金鑰保存庫:

$keyVault = Get-AzKeyVault -VaultName <key-vault-name>

步驟 2:準備金鑰

您可以使用 Azure 入口網站、Azure CLI、Powershell,以及選擇性地使用 ARM 範本,建立密鑰或擷取儲存在 Azure 金鑰保存庫 中的現有金鑰。 本節提供 Azure CLI 和 Powershell 的程序。 如需其他方式,請參閱 Azure 金鑰檔

使用 Azure CLI

您可以建立金鑰或擷取現有的金鑰。

建立金鑰:

  1. 執行以下命令:

    az keyvault key create \
    --name <key-name> \
    --vault-name <key-vault-name> \
    --protection software
    
  2. 記下輸出中的下列值:

    • 金鑰保存庫名稱:您的 金鑰保存庫 名稱
    • 金鑰名稱:金鑰的名稱
    • 金鑰版本:金鑰的版本
    • 密鑰保存庫資源群組:金鑰保存庫 的資源群組
  3. 取得金鑰資訊:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    複製欄位的值 kid ,也就是您的金鑰標識碼。

    完整索引鍵識別碼的格式通常為 https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>。 非公用雲端中的 Azure 金鑰保存庫 金鑰有不同的形式。

擷取現有的索引鍵:

  1. 執行以下命令:

    az keyvault key show --name <key-name> --vault-name <key-vault-name>
    
  2. 請記下現有金鑰的下列詳細資料:

    • 金鑰保存庫名稱:您 金鑰保存庫 的名稱。
    • 金鑰名稱:金鑰的名稱。
    • 金鑰版本:金鑰的版本。
    • 密鑰保存庫資源群組:金鑰保存庫 的資源群組。
  3. 取得金鑰資訊:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    複製欄位的值 kid ,也就是您的金鑰標識碼。

    完整索引鍵識別碼的格式通常為 https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>。 非公用雲端中的 Azure 金鑰保存庫 金鑰有不同的形式。

  4. 確認您現有的金鑰已啟用,然後再 az keyvault key show --name <key name> 執行一次。 輸出會顯示 "enabled": true

使用 PowerShell

  1. 如果您打算建立金鑰,您可能需要根據建立金鑰的方式和時間來設定存取原則。 例如,如果您最近使用 PowerShell 建立 金鑰保存庫,新的 金鑰保存庫 可能缺少建立密鑰所需的存取原則。 下列範例會使用 EmailAddress 參數來設定原則。 如需相關詳細數據,請參閱有關 Set-AzKeyVaultAccessPolicyMicrosoft 文章。

    在新 金鑰保存庫 上設定存取原則:

    Set-AzKeyVaultAccessPolicy \
    -VaultName $keyVault.VaultName \
    -PermissionsToKeys all \
    -EmailAddress <email-address>
    
  2. 您可以建立金鑰或擷取現有的金鑰:

    • 建立金鑰:

      $key = Add-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name> \
      -Destination 'Software'
      
    • 擷取現有的索引鍵:

      $key = Get-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name>
      

步驟 3:如果您要更新工作區以一開始新增金鑰,請停止所有計算資源

如果您一開始在現有的工作區上新增受控磁碟的客戶自控密鑰,請在更新之前停止所有計算資源(叢集、集區、傳統或 Pro SQL 倉儲)。

更新完成之後,您可以 啟動已停止的計算資源。 對於已經有受控磁碟客戶管理密鑰的工作區,您可以 輪替 密鑰,而不需要終止計算資源。

步驟 4:建立或更新工作區

若要使用客戶管理的受控磁碟密鑰來建立或更新工作區,請選擇下列其中一個部署策略:

使用 Azure 入口網站 (沒有樣本)

本節說明如何使用 Azure 入口網站,使用受控磁碟的客戶自控密鑰來建立或更新工作區,而不需使用範本。

  1. 開始建立或更新工作區:

    使用金鑰建立新的工作區:

    1. 移至 Azure 入口網站首頁 ,然後按下 頁面左上角的 [建立資源 ]。
    2. 在搜尋列中,輸入 Azure Databricks 並按兩下 [Azure Databricks]。
    3. 從 Azure Databricks 小工具中選取 [建立 ]。
    4. 在索引標籤 [基本][網络] 的表單字段中輸入值。
    5. 在 [加密] 索引標籤中,選取 [受控磁碟 區段中的 [使用您自己的金鑰] 複選框。

    開始將金鑰新增至現有的工作區:

    1. 終止任何計算資源(叢集、集區)。
    2. 移至 Azure Databricks Azure 入口網站 首頁。
    3. 流覽至現有的 Azure Databricks 工作區。
    4. 從左側面板開啟 [ 加密 ] 索引標籤。
    5. 在 [客戶管理的金鑰] 區段底下,啟用 受控磁碟
  2. 設定加密欄位。

    Show fields in the Managed Disks section of the Azure Databricks blade

    • 在 [金鑰標識碼] 字段中,貼上 Azure 金鑰保存庫 金鑰的金鑰標識碼。
    • 在 [訂用帳戶] 下拉式清單中,輸入 Azure 金鑰保存庫 密鑰的訂用帳戶名稱。
    • 若要啟用金鑰的自動輪替,請啟用 [啟用金鑰自動輪替]。
  3. 完成其餘索引標籤,然後按兩下 [ 檢閱 + 建立 ] 或 [儲存 ] (用於更新工作區)。

  4. 部署工作區之後,流覽至新的 Azure Databricks 工作區。

  5. 從 Azure Databricks 工作區的 [ 概觀 ] 索引標籤中,按兩下 [ 受控資源群組]。

  6. 在受控資源群組的 [概觀] 索引標籤中,尋找在此資源群組中建立的磁碟加密集類型的物件。 複製磁碟加密集的名稱。

  7. 在 Azure 入口網站 中,移至用來設定您用於此功能之密鑰的 Azure 金鑰保存庫。

  8. 從左側面板開啟 [存取原則] 索引標籤。 開啟索引標籤之後,按兩下 頁面頂端的 [建立 ]。

  9. 在 [密鑰限] 區段下的 [許可權] 索引標籤中,啟用 [取得]、[解除包裝密鑰] 和 [包裝金鑰]。

  10. 按一下 [下一步] 。

  11. 在 [ 主體 ] 索引標籤上,於搜尋列中,於 Azure Databricks 工作區的受控資源群組內輸入磁碟加密集的名稱。 選取結果,然後按 [下一步]。

    Enter the name of disk encryption set and select the result

  12. 按兩下 [ 檢閱 + 建立] 索引標籤,然後按兩下 [ 建立]。

使用 Azure CLI (沒有範本)

針對新的和更新的工作區,將這些參數新增至您的命令:

  • disk-key-name:金鑰的名稱
  • disk-key-vault:保存庫的名稱
  • disk-key-version:金鑰版本
  • disk-key-auto-rotation:啟用金鑰的自動輪替 (truefalse)。 這是非必填欄位。 預設值為 false

在下列命令中,使用上一個步驟中回應中的儲存庫 URI 值來取代 <key-vault-uri>。 此外,您可以在上一個步驟的回應中,找到索引鍵名稱和密鑰版本值。kid

  1. 建立或更新工作區:

    • 使用這些受控磁碟參數建立工作區的範例:

      az databricks workspace create --name <workspace-name> \
      --resource-group <resource-group-name> \
      --location <location> \
      --sku premium --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      
    • 使用這些受控磁碟參數更新工作區的範例:

      az databricks workspace update \
      --name <workspace-name> \
      --resource-group <resource-group-name> \
      --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      

    在上述任一命令的輸出中,會有物件 managedDiskIdentity 。 儲存 principalId 這個物件內的屬性值。 這會在後續步驟中當做主體標識碼使用。

  2. 將具有金鑰許可權的存取原則新增至 金鑰保存庫。 使用先前步驟中的儲存庫名稱和主體識別碼:

    az keyvault set-policy \
    --name <key-vault-name> \
    --object-id <principal-id> \
    --key-permissions get wrapKey unwrapKey
    

使用 Powershell (沒有範本)

針對新的和更新的工作區,將這些參數新增至您的命令:

  • location:工作區位置
  • ManagedDiskKeyVaultPropertiesKeyName:機碼名稱
  • ManagedDiskKeyVaultPropertiesKeyVaultUri:金鑰保存庫 URI
  • ManagedDiskKeyVaultPropertiesKeyVersion:金鑰版本
  • ManagedDiskRotationToLatestKeyVersionEnabled:啟用金鑰的自動輪替 (truefalse)。 這是非必填欄位。 預設值為 false。
  1. 建立或更新工作區:

    • 使用受控磁碟參數建立工作區的範例:

      $workspace = New-AzDatabricksWorkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -location $keyVault.Location \
      -Sku premium \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
    • 使用受控磁碟參數更新工作區的範例:

      $workspace = Update-AzDatabricksworkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
  2. 將具有金鑰許可權的存取原則新增至 金鑰保存庫:

    Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \
    -ObjectId $workspace.ManagedDiskIdentityPrincipalId \
    -PermissionsToKeys wrapkey,unwrapkey,get
    

使用 ARM 樣本 (Azure 入口網站 或 CLI)

您可以在 Azure 檔中探索 Azure 快速入門範本 。 如需 ARM 範本部署選項的清單,請參閱 ARM 範本檔

當您建立工作區時,也會在工作區的受控資源群組內建立磁碟加密集資源。 它具有系統指派的受控識別,可用來存取您的 金鑰保存庫。 在 Azure Databricks 計算使用此金鑰來加密您的資料之前,您必須先擷取磁碟加密集的主體標識碼,然後將、 WRAPUNWRAP 金鑰許可權授GET與您的 金鑰保存庫。

Databricks 建議您建立或更新工作區,並在相同的範本部署中授與 金鑰保存庫 許可權。 您必須先建立或更新工作區,才能授與 金鑰保存庫 許可權,但有一個例外。 如果您更新現有的受控磁碟客戶自控金鑰工作區,以在新 金鑰保存庫 中使用新金鑰,您必須將現有的磁碟加密集許可權授與存取新的 金鑰保存庫,然後使用新的密鑰組態更新工作區。

本節中的範例範本會執行下列兩項作業:

  • 建立或更新工作區以新增受控磁碟客戶管理的金鑰設定
  • 授與磁碟加密集對 金鑰保存庫的存取權

您可以使用下列 ARM 樣本範例,其會執行兩件事:

  • 使用受控磁碟客戶管理的金鑰建立或更新工作區。
  • 建立金鑰存取原則。

如果您已經使用 ARM 範本,您可以將範例範本中的參數、資源和輸出合併到現有的範本。

{
   "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
       "workspaceName": {
           "type": "string",
           "metadata": {
               "description": "The name of the Azure Databricks workspace to create"
           }
       },
       "pricingTier": {
           "type": "string",
           "defaultValue": "premium",
           "allowedValues": [
               "premium"
           ],
           "metadata": {
               "description": "The pricing tier of workspace"
           }
       },
       "apiVersion": {
           "type": "string",
           "defaultValue": "2023-02-01",
           "allowedValues": [
               "2023-02-01",
               "2022-04-01-preview"
           ],
           "metadata": {
               "description": "The API version to use to create the workspace resources"
           }
       },
       "keyVaultName": {
           "type": "string",
           "metadata": {
               "description": "The Key Vault name used for CMK"
           }
       },
       "keyName": {
           "type": "string",
           "metadata": {
               "description": "The key name used for CMK"
           }
       },
       "keyVersion": {
           "type": "string",
           "metadata": {
               "description": "The key version used for CMK"
           }
       },
       "keyVaultResourceGroupName": {
           "type": "string",
           "metadata": {
               "description": "The resource group name of the Key Vault used for CMK"
           }
       },
       "enableAutoRotation": {
           "type": "bool",
           "defaultValue": false,
           "allowedValues": [
               true,
               false
           ],
           "metadata": {
               "description": "Whether managed disk picks up new key versions automatically"
           }
       }
   },
   "variables": {
       "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
   },
   "resources": [
       {
           "type": "Microsoft.Databricks/workspaces",
           "name": "[parameters('workspaceName')]",
           "location": "[resourceGroup().location]",
           "apiVersion": "[parameters('apiVersion')]",
           "sku": {
               "name": "[parameters('pricingTier')]"
           },
           "properties": {
               "managedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
               "encryption": {
                   "entities": {
                       "managedDisk": {
                           "keySource": "Microsoft.Keyvault",
                           "keyVaultProperties": {
                               "keyVaultUri": "[concat('https://', parameters('keyVaultName'), environment().suffixes.keyvaultDns)]",
                               "keyName": "[parameters('keyName')]",
                               "keyVersion": "[parameters('keyVersion')]"
                           },
                           "rotationToLatestKeyVersionEnabled": "[parameters('enableAutoRotation')]"
                       }
                   }
               }
           }
       },
       {
           "type": "Microsoft.Resources/deployments",
           "apiVersion": "2020-06-01",
           "name": "addAccessPolicy",
           "resourceGroup": "[parameters('keyVaultResourceGroupName')]",
           "dependsOn": [
               "[resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName'))]"
           ],
           "properties": {
               "mode": "Incremental",
               "template": {
                   "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
                   "contentVersion": "0.9.0.0",
                   "resources": [
                       {
                           "type": "Microsoft.KeyVault/vaults/accessPolicies",
                           "apiVersion": "2019-09-01",
                           "name": "[concat(parameters('keyVaultName'), '/add')]",
                           "properties": {
                               "accessPolicies": [
                                   {
                                       "objectId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.principalId]",
                                       "tenantId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.tenantId]",
                                       "permissions": {
                                           "keys": [
                                               "get",
                                               "wrapKey",
                                               "unwrapKey"
                                           ]
                                       }
                                   }
                               ]
                           }
                       }
                   ]
               }
           }
       }
   ],
   "outputs": {
       "workspace": {
           "type": "object",
           "value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
       }
   }
}

使用範本搭配您想要的任何工具,包括 Azure 入口網站、CLI 或其他工具。 下列範本部署策略包含詳細資料:

使用 Azure 入口網站 套用ARM範本

若要在 Azure 入口網站 中使用 ARM 範本建立或更新工作區,請執行下列動作:

  1. 只有當您一開始將密鑰新增至現有的工作區時,才會終止任何計算資源(叢集、集區)。 如果您無法執行此步驟,資源會在更新期間自動終止,這可能會導致某些類型的工作負載發生問題。 在新增金鑰之前,請規劃終止所有計算資源的停機時間。 更新完成之後,您將 啟動已停止的計算資源。 對於已經有受控磁碟客戶管理密鑰的工作區,您可以 輪替 密鑰,而不需要終止計算資源。

  2. 登入 Azure 入口網站

  3. 按兩下 [建立資源],然後按兩下 [使用自定義範本部署] 的 [範本部署]。

  4. 在 [ 自定義部署] 頁面上,按下 編輯器中的 [建置您自己的範本]。

  5. 在編輯器中貼上範例範本的內容。

    Edit deployment page of the Azure custom deployment portal

  6. 按一下 [檔案] 。

  7. 輸入您的參數值。

    若要更新現有的工作區,請使用您用來建立工作區的相同參數。 若要第一次新增客戶管理的密鑰,請在 底下 resources.properties.encryption.entities.managedDisk 新增金鑰相關參數,如上述範本所示。 若要輪替金鑰,請變更部分或所有與金鑰相關的參數。

    重要

    如果您更新工作區,範本中的資源組名和工作區名稱必須與資源組名和現有工作區的工作區名稱相同。

    Project details page of the Azure custom deployment portal

  8. 按一下 [檢閱 + 建立]。

  9. 解決任何驗證問題,然後按兩下 [ 建立]。

重要

如果您輪替密鑰,在工作區更新完成之前,請勿刪除舊密鑰。

使用 Azure CLI 套用 ARM 範本

本節說明如何使用 ARM 範本搭配 Azure CLI,以密鑰建立或更新工作區。

  1. 只有當您一開始將密鑰新增至現有的工作區時,才會終止任何計算資源(叢集、集區)。 如果您無法執行此步驟,資源會在更新期間自動終止,這可能會導致某些類型的工作負載發生問題。 您可以考慮排程此更新並規劃停機時間。 如果您只是 輪替 密鑰,則不需要此步驟。

  2. 檢查樣本是否包含 的區段 resources.properties.encryption.entities.managedDisk 及其相關參數 keyvaultNamekeyNamekeyVersionkeyVaultResourceGroupName。 如果不存在,請參閱本節稍早的範例範本,並將該區段中的參數和參數合併到您的範本中。

  3. 執行 az deployment group create 命令。 如果資源組名和工作區名稱與現有工作區的資源組名和工作區名稱相同,此命令會更新現有的工作區,而不是建立新的工作區。 如果您要更新現有的部署,請務必使用與先前所使用的相同資源群組和工作區名稱。

    az deployment group create --resource-group <existing-resource-group-name>  \
                               --template-file <file-name>.json \
                               --parameters workspaceName=<workspace-name> \
                                            keyvaultName=<key-vault-name> \
                                            keyName=<key-name> keyVersion=<key-version> \
                                            keyVaultResourceGroupName=<key-vault-resource-group>
    

    重要

    如果您輪替金鑰,則只能在工作區更新完成之後刪除舊密鑰。

步驟 5:確認您的計算資源使用金鑰 (選擇性)

若要確認工作區已啟用受控磁碟客戶管理的金鑰功能:

  1. 執行下列其中一項動作,以擷取您的 Azure Databricks 工作區詳細數據:

    • Azure 入口網站

      1. Azure 入口網站 中,按兩下 [工作區],然後按下工作區的名稱。
      2. 在工作區頁面上,按兩下 [ JSON 檢視]。
      3. 按兩下等於或高於 2022-04-01-preview API 版本的 API 版本。
    • Azure CLI

      執行以下命令:

      az databricks workspace show --resource-group <resource group name> --name <workspace name>
      

      受控磁碟加密參數位於 下 properties。 例如:

      "properties": {
           "encryption": {
               "entities": {
                   "managedDisk": {
                     "keySource": "Microsoft.Keyvault",
                     "keyVaultProperties": {
                         "keyVaultUri": "<key-vault-uri>",
                         "keyName": "<key-name>",
                         "keyVersion": "<key-version>"
                     },
                     "rotationToLatestKeyVersionEnabled": "<rotation-enabled>"
                 }
            }
        }
      
    • Powershell

      Get-AzDatabricksWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name> |
        Select-Object -Property ManagedDiskKeySource,
         ManagedDiskKeyVaultPropertiesKeyVaultUri,
         ManagedServicesKeyVaultPropertiesKeyName,
         ManagedServicesKeyVaultPropertiesKeyVersion,
         ManagedDiskRotationToLatestKeyVersionEnabled
      

      檢閱輸出中傳回之屬性的值:

      ManagedDiskKeySource                           : Microsoft.Keyvault
      ManagedDiskKeyVaultPropertiesKeyVaultUri       : <key-vault-uri>
      ManagedServicesKeyVaultPropertiesKeyName       : <key-name>
      ManagedServicesKeyVaultPropertiesKeyVersion    : <key-version>
      ManagedDiskRotationToLatestKeyVersionEnabled   : <rotation-enabled>
      
  2. 為您的工作區建立任何計算資源,以用於測試:

  3. Azure 入口網站 中,按兩下 [工作區],然後按下工作區的名稱。

  4. 在工作區頁面上,按兩下工作區所屬的受控資源群組名稱。

  5. 在 [資源群組] 頁面的 [資源] 下,按兩下虛擬機的名稱。

  6. 在虛擬機頁面左側的 [設定] 下,按兩下[磁碟]。

    在 [磁碟] 頁面的 [數據磁碟] 下,確認磁碟的 [加密] 字段具有 值 SSE with CMK

步驟 6:啟動先前終止的計算資源

只有在您第一次更新工作區以新增金鑰時,才需要此步驟,在此情況下,您在上一個步驟中終止任何執行中的計算資源。 如果您已建立新的工作區或只是 輪替密鑰,則計算資源不會在先前的步驟中終止,在此情況下您可以略過此步驟。

  1. 確定工作區更新已完成。 如果密鑰是範本的唯一變更,這通常會在不到五分鐘內完成,否則可能需要更多時間。
  2. 手動啟動您稍早終止的任何計算資源。

如果有任何計算資源無法成功啟動,通常是因為您需要授與磁碟加密集許可權,才能存取您的 金鑰保存庫。

稍後輪替金鑰

現有工作區上的金鑰輪替類型有兩種,這些工作區已經有金鑰:

  • 自動輪替:如果是rotationToLatestKeyVersionEnabledtrue工作區,磁碟加密集會偵測密鑰版本變更,並指向最新的密鑰版本。
  • 手動輪替:您可以使用新的金鑰來更新現有的受控磁碟客戶自控密鑰工作區。 請遵循上述指示,如同您一開始將密鑰新增至現有工作區一樣,有重要的差異在於您不需要終止任何執行中的計算資源。

針對這兩種輪替類型,Azure 虛擬機記憶體服務會自動挑選新的密鑰,並用它來加密數據加密密鑰。 您的 Azure Databricks 計算資源不會受到影響。 如需詳細資訊,請參閱 Azure 檔中的客戶管理金鑰

輪替金鑰之前,您不需要終止計算資源。

疑難排解

叢集失敗, KeyVaultAccessForbidden

問題是叢集無法以下列錯誤啟動:

Cloud Provider Launch Failure: KeyVaultAccessForbidden

授與在工作區受控資源群組中建立磁碟加密的權限,以存取您的 Key Vault。 所需權限:GETWRAPKEYUNWRAPKEY

為您的部署類型重新閱讀步驟 4:建立或更新工作區小節,並特別注意具有特定權限的 Key Vault 存取原則更新。

遺失金鑰參數

問題在於缺少受控磁碟客戶管理的金鑰參數。

確認您的 ARM 範本對 Microsoft.Databricks/workspaces 資源使用正確的 API 版本。 受控磁碟客戶自控金鑰功能僅適用於 2022-04-01-preview 以後的 API 版本。 如果您使用其他 API 版本,仍會建立或更新工作區,但會忽略受控磁碟參數。

工作區更新失敗, ApplicationUpdateFail

問題是已啟用受控磁碟的工作區更新或修補作業失敗,並出現下列錯誤:

Failed to update application: `<workspace name>`, because patch resource group failure. (Code: ApplicationUpdateFail)

授與磁碟加密集對 金鑰保存庫的存取權,然後執行工作區更新作業,例如新增標籤。

存取原則遺失

問題是下列錯誤:

ERROR CODE: BadRequest MESSAGE: Invalid value found at accessPolicies[14].ObjectId: <objectId>

在 金鑰保存庫 中,具有上述對象標識符的存取原則無效。 您必須將其移除,才能將新的存取原則新增至您的 金鑰保存庫。

遺失的金鑰無法復原

遺失的金鑰無法復原。 如果遺失或撤銷金鑰且無法復原,Azure Databricks 計算資源將不再工作。 工作區的其他功能則不受影響。

資源