Поделиться через


Настройка ключей, управляемых клиентом, для управляемых дисков Azure

Azure Databricks вычисляет рабочие нагрузки в хранилище временных данных плоскости вычислений на управляемых дисках Azure. По умолчанию данные, хранящиеся на управляемых дисках, шифруются в период неактивности с использованием шифрования на стороне сервера и с применением ключей, управляемых Майкрософт. В этой статье описывается, как настроить управляемый клиентом ключ из хранилищ Azure Key Vault для рабочей области Azure Databricks для шифрования управляемых дисков. Инструкции по использованию ключа из HSM Azure Key Vault см. в статье "Настройка ключей, управляемых клиентом HSM" для управляемых дисков Azure.

Внимание

  • Ключи, управляемые клиентом для управляемого хранилища дисков, применяются к дискам данных, но не применяются к дискам операционной системы (ОС).
  • Ключи, управляемые клиентом для управляемого дискового хранилища, не применяются к бессерверным вычислительным ресурсам, таким как бессерверные хранилища SQL и обслуживание моделей. Диски, используемые для бессерверных вычислительных ресурсов, имеют небольшой срок действия и привязаны к жизненному циклу бессерверной рабочей нагрузки. При остановке или уменьшении масштаба вычислительных ресурсов виртуальные машины и их хранилище уничтожаются.

Требования

  • Рабочая область Azure Databricks должна находиться в плане "Премиум".

  • Ваша рабочая область Azure Key Vault и Azure Databricks должны находиться в одном регионе и в том же клиенте Microsoft Entra ID (прежнее название — Azure Active Directory). Они могут находиться в разных подписках.

  • Если вы хотите включить автоматическую смену, поддерживаются только ключи программного обеспечения и RSA HSM размером 2048-разрядная, 3072-разрядная и 4096-разрядная версия.

  • Эта функция не поддерживается для рабочих областей с соответствием FedRAMP. Чтобы получить дополнительные сведения, обратитесь к группе учетной записи Azure Databricks.

  • Чтобы использовать Azure CLI для этих задач, установите средство Azure CLI и установите расширение Databricks:

    az extension add --name databricks
    
  • Чтобы использовать PowerShell для этих задач, установите Azure PowerShell и установите модуль Databricks PowerShell. Кроме того, необходимо войти в систему:

    Connect-AzAccount
    

    Сведения о входе в учетную запись Azure в качестве пользователя см. в статье "Вход в PowerShell" с учетной записью пользователя Azure Databricks. Чтобы войти в учетную запись Azure в качестве субъекта-службы, ознакомьтесь с именем входа PowerShell с помощью субъекта-службы Идентификатора Microsoft Entra.

Шаг 1. Создание Хранилища ключей

Хранилище ключей можно создавать различными способами, включая портал Azure, Azure CLI, Powershell и при необходимости с помощью шаблонов ARM. В следующих разделах приведены процедуры использования Azure CLI и PowerShell. Сведения о других подходах см. в документации Майкрософт.

Использование 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 Key Vault, с помощью портал Azure, Azure CLI, Powershell и при необходимости с помощью шаблонов ARM. В этом разделе приведены процедуры 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 Key Vault, которые находятся в недоступном облаке, имеют другую форму.

Получение существующего ключа:

  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 Key Vault, которые находятся в недоступном облаке, имеют другую форму.

  4. Убедитесь, что существующий ключ включен, прежде чем продолжить az keyvault key show --name <key name> работу снова. Выходные данные отображаются "enabled": true.

Использование PowerShell

  1. Если вы планируете создать ключ, может потребоваться задать политику доступа в зависимости от того, как и когда он был создан. Например, если вы недавно создали Key Vault с помощью PowerShell, новый Key Vault может не иметь политики доступа, необходимой для создания ключа. В следующем примере параметр используется EmailAddress для задания политики. Дополнительные сведения см. в статье Майкрософт о Set-AzKeyVaultAccessPolicy.

    Задайте политику доступа в новом Key Vault:

    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. Остановите все вычислительные ресурсы, если вы обновляете рабочую область, чтобы первоначально добавить ключ

Если вы добавляете управляемый клиентом ключ для управляемых дисков в существующей рабочей области, остановите все вычислительные ресурсы (кластеры, пулы, классические или профессиональные хранилища SQL) перед обновлением.

После завершения обновления можно запустить остановленные вычислительные ресурсы. Для рабочей области, которая уже имеет управляемый клиентом ключ для управляемых дисков, можно повернуть ключ без прекращения вычислительных ресурсов.

Шаг 4. Создание или обновление рабочей области

Чтобы создать или обновить рабочую область с ключом, управляемым клиентом для управляемых дисков, выберите одну из следующих стратегий развертывания:

Использование портал Azure (без шаблона)

В этом разделе описывается, как использовать портал Azure для создания или обновления рабочей области с ключами, управляемыми клиентом, для управляемых дисков без использования шаблона.

  1. Начните создавать или обновлять рабочую область:

    Создайте новую рабочую область с ключом:

    1. Перейдите на домашнюю страницу портала Azure и щелкните "Создать ресурс " в левом верхнем углу страницы.
    2. В строке поиска введите Azure Databricks и щелкните Azure Databricks.
    3. Выберите "Создать " в мини-приложении Azure Databricks.
    4. Введите значения в полях формы на вкладках "Основы" и "Сеть".
    5. На вкладке "Шифрование" выберите "Использовать собственный ключ проверка" в разделе Управляемые диски.

    Первоначально добавьте ключ в существующую рабочую область:

    1. Завершение любых вычислительных ресурсов (кластеров, пулов).
    2. Перейдите на домашнюю страницу портал Azure для Azure Databricks.
    3. Перейдите в существующую рабочую область Azure Databricks.
    4. Откройте вкладку "Шифрование" на левой панели.
    5. В разделе "Ключи, управляемые клиентом", включите Управляемые диски.
  2. Задайте поля шифрования.

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

    • В поле "Идентификатор ключа" вставьте идентификатор ключа azure Key Vault.
    • В раскрывающемся списке подписки введите имя подписки ключа Azure Key Vault.
    • Чтобы включить автоматическую смену ключа, включите автоматическую смену ключа.
  3. Заполните оставшиеся вкладки и нажмите кнопку "Просмотр и создание " (для новой рабочей области) или "Сохранить " (для обновления рабочей области).

  4. После развертывания рабочей области перейдите к новой рабочей области Azure Databricks.

  5. На вкладке "Обзор " рабочей области Azure Databricks щелкните "Управляемая группа ресурсов".

  6. На вкладке Обзор управляемой группы ресурсов найдите объект типа Набор шифрования дисков, созданный в этой группе ресурсов. Скопируйте имя набора шифрования дисков.

  7. В портал Azure перейдите в Azure Key Vault, который использовался для настройки ключа, используемого для этой функции.

  8. Откройте вкладку Политики доступа на панели слева. После открытия вкладки нажмите кнопку "Создать " в верхней части страницы.

  9. На вкладке "Разрешения" в разделе "Разрешения ключа" включите get, unwrap Key и Wrap key.

  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: включение автоматического поворота ключа (true или false). Это необязательное поле. Значение по умолчанию — 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. Добавьте политику доступа с разрешением ключа в Key Vault. Используйте имя хранилища и идентификатор субъекта из предыдущих шагов:

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

Использование PowerShell (без шаблона)

Для новых и обновленных рабочих областей добавьте следующие параметры в команду:

  • location: расположение рабочей области
  • ManagedDiskKeyVaultPropertiesKeyName: имя ключа
  • ManagedDiskKeyVaultPropertiesKeyVaultUri: универсальный код ресурса (URI) Key Vault
  • ManagedDiskKeyVaultPropertiesKeyVersion: ключевая версия
  • ManagedDiskRotationToLatestKeyVersionEnabled: включение автоматического поворота ключа (true или false). Это необязательное поле. Значение по умолчанию — 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. Добавьте политику доступа с разрешениями ключа в Key Vault:

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

Использование шаблона ARM (портал Azure или CLI)

Вы можете изучить шаблоны быстрого запуска Azure в документации По Azure. Список параметров развертывания шаблона ARM см. в документации по шаблону ARM.

При создании рабочей области ресурс набора шифрования дисков также создается в управляемой группе ресурсов рабочей области. Он имеет управляемое удостоверение, назначаемое системой, которое используется для доступа к Хранилищу ключей. Прежде чем вычислительные ресурсы Azure Databricks могут использовать этот ключ для шифрования данных, необходимо получить идентификатор субъекта набора шифрования дисков, а затем предоставить удостоверение GETWRAPи UNWRAP разрешения ключа в Key Vault.

Databricks рекомендует создать или обновить рабочую область и предоставить разрешения Key Vault в том же развертывании шаблона. Перед предоставлением разрешений Key Vault необходимо создать или обновить рабочую область, за исключением одного исключения. Если вы обновляете существующую рабочую область ключа, управляемого клиентом управляемого пользователем диска, чтобы использовать новый ключ в новом Key Vault, необходимо предоставить существующему набору шифрования дисков разрешение на доступ к новому хранилищу ключей, а затем обновить рабочую область с помощью новой конфигурации ключа.

Пример шаблона в этом разделе выполняет оба из следующих действий:

  • Создает или обновляет рабочую область для добавления параметров ключа, управляемого клиентом, управляемого клиентом
  • Предоставляет набору шифрования дисков доступ к Key Vault

Вы можете использовать следующий пример шаблона 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 или другие средства. Подробные сведения включаются в следующие стратегии развертывания шаблонов:

Применение шаблона ARM с помощью портал Azure

Чтобы создать или обновить рабочую область с помощью шаблона ARM в портал Azure, сделайте следующее:

  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. Устраните все проблемы с проверкой и нажмите кнопку "Создать".

Внимание

При смене ключа не удаляйте старый ключ до завершения обновления рабочей области.

Применение шаблона ARM с помощью Azure CLI

В этом разделе описывается создание или обновление рабочей области с ключом с помощью шаблона ARM с помощью Azure CLI.

  1. Только если вы изначально добавляете ключ в существующую рабочую область, завершаете все вычислительные ресурсы (кластеры, пулы). Если выполнить этот шаг не удалось, ресурсы автоматически завершаются во время обновления, что может вызвать проблемы для некоторых типов рабочих нагрузок. Вы можете планировать это обновление и планирование простоя. Этот шаг не нужен, если вы просто поворачиваете ключ.

  2. Проверьте, включает ли шаблон раздел для resources.properties.encryption.entities.managedDisk и связанных параметровkeyvaultName, keyNameи keyVersionkeyVaultResourceGroupNameт. е. Если они отсутствуют, ознакомьтесь с приведенным ранее в этом разделе примером шаблона и слиянием в этом разделе и параметрами в шаблоне.

  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. Щелкните версию API, равную или более поздней 2022-04-01-preview версии 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. Вручную запустите все вычислительные ресурсы, которые были завершены ранее.

Если какие-либо вычислительные ресурсы не удается запустить успешно, обычно это связано с тем, что необходимо предоставить разрешение набора шифрования дисков для доступа к Key Vault.

Смена ключа в дальнейшем

В существующей рабочей области есть два типа поворотов ключей, которые уже имеют ключ:

  • Автоматическая смена. Если rotationToLatestKeyVersionEnabled используется true ваша рабочая область, набор шифрования дисков обнаруживает изменение версии ключа и указывает на последнюю версию ключа.
  • Смена вручную. Вы можете обновить существующую рабочую область ключей, управляемую клиентом, управляемым клиентом, с новым ключом. Следуйте приведенным выше инструкциям, как если бы вы изначально добавили ключ в существующую рабочую область, при этом важно, что вам не нужно завершать выполнение вычислительных ресурсов.

Для обоих типов поворота служба хранилища виртуальных машин Azure автоматически получает новый ключ и использует его для шифрования ключа шифрования данных. Вычислительные ресурсы Azure Databricks не влияют. Дополнительные сведения см . в документации по Azure, управляемой клиентом.

Перед сменой ключа не нужно завершать вычислительные ресурсы.

Устранение неполадок

Сбой кластера KeyVaultAccessForbidden

Проблема заключается в том, что кластер не может начаться со следующей ошибки:

Cloud Provider Launch Failure: KeyVaultAccessForbidden

Предоставьте набору шифрования дисков, созданному в управляемой группе ресурсов рабочей области, разрешение на доступ к вашему хранилищу ключей. Необходимые разрешения: GET, WRAPKEY, UNWRAPKEY.

Повторно изучите подраздел Шаг 4. Создание или обновление рабочей области для вашего типа развертывания и обратите особое внимание на обновление политики доступа к хранилищу ключей и требуемые для этого разрешения.

Отсутствуют ключевые параметры

Проблема заключается в отсутствии параметров ключа, управляемого клиентом, управляемым клиентом.

Убедитесь, что шаблон ARM использует правильную версию API для ресурса Microsoft.Databricks/workspaces. Функция ключа, управляемого клиентом, для управляемого диска доступна только с версией API не ниже 2022-04-01-preview. При использовании других версий API рабочая область создается или обновляется, однако параметры управляемого диска игнорируются.

Обновление рабочей области завершается сбоем ApplicationUpdateFail

Проблема заключается в сбое обновления рабочей области или операции исправления для рабочей области с поддержкой управляемого диска со следующей ошибкой:

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

Предоставьте набору шифрования дисков доступ к Key Vault, а затем выполните операции обновления рабочей области, такие как добавление тегов.

Отсутствует политика доступа

Эта проблема является следующей ошибкой:

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

Политика доступа с указанным выше идентификатором объекта недопустима в Key Vault. Его необходимо удалить, чтобы добавить новые политики доступа в Хранилище ключей.

Потерянные ключи не подлежат восстановлению

Восстановление потерянных ключей невозможно. В случае потери или отзыва ключа без возможности его восстановления вычислительные ресурсы Azure Databricks больше не будут работать. Другие функции рабочей области не затрагиваются.

Ресурсы