Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Для этой функции требуется план "Премиум".
Чтобы расширить возможности управления данными, можно добавить собственный ключ для защиты доступа к определенным типам данных и управления им. Azure Databricks имеет несколько ключевых функций, управляемых клиентом. Чтобы сравнить связанные функции, ознакомьтесь с ключами, управляемыми клиентом, для шифрования.
Совет
В этой статье описывается настройка собственного ключа из хранилищ Azure Key Vault для управляемых служб. Инструкции по использованию ключа из управляемого HSM в Azure Key Vault см. в статье "Включение ключей, управляемых клиентом HSM" для управляемых служб.
Данные управляемых служб на уровне управления Azure Databricks шифруются в неактивном состоянии. Можно добавить ключ, управляемый клиентом, для управляемых служб, чтобы защитить и отслеживать доступ к следующим типам зашифрованных данных:
- Источник записных книжек на уровне управления Azure Databricks.
- Результаты интерактивного выполнения записных книжек (выполненных не как задания), которые хранятся на уровне управления. По умолчанию объемные результаты также хранятся в корневом контейнере рабочей области. Можно настроить Azure Databricks на хранение всех результатов интерактивного выполнения записных книжек в облачной учетной записи.
- Секреты, хранимые API диспетчера секретов.
- Журнал запросов и запросы Databricks SQL.
- Персональные токены доступа (PAT) или другие учетные данные, используемые для настройки интеграции Git с папками Git Databricks.
После добавления в рабочую область шифрования ключом, управляемым клиентом, 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 Key Vault и задать его разрешения. Это можно сделать с помощью портал Azure, интерфейса командной строки или API.
Внимание
Хранилище ключей должно находиться в том же клиенте Azure, что и рабочая область Azure Databricks.
Эти инструкции предоставляют несколько вариантов развертывания:
Использование портала Azure
Создайте или выберите хранилище ключей:
- Чтобы создать хранилище ключей, перейдите на страницу портала Azure для создания хранилища ключей. Нажмите кнопку + Создать. Введите имя группы ресурсов, имя хранилища ключей, регион и ценовую категорию. Щелкните Просмотр и создание, а затем нажмите кнопку Создать.
- Чтобы использовать существующее хранилище ключей, скопируйте его имя хранилища ключей на следующий шаг.
Получите идентификатор объекта приложения AzureDatabricks:
- На портале Azure перейдите к Microsoft Entra ID.
- Выберите корпоративные приложения в боковом меню.
-
AzureDatabricks
Найдите и щелкните корпоративное приложение в результатах. - В разделе Свойства скопируйте идентификатор объекта.
Предоставьте разрешения хранилищу ключей с помощью Azure RBAC:
Перейдите к экземпляру Azure Key Vault, который вы будете использовать для настройки ключей, управляемых клиентом, для управляемых служб вашей рабочей области.
На боковой панели щелкните Управление доступом (IAM).
Щелкните + Добавить > Добавлениеназначения ролей.
На вкладке роли выберите
Key Vault Crypto Service Encryption User
.На вкладке "Члены" щелкните + Выберите участников.
Найдите и выберите управляемое удостоверение учетной записи хранения Azure Databricks.
В выберите участников, также найдите и выберите
AzureDatabricks
.Щелкните Рецензирование и назначьте > рецензирование и назначьте.
Примечание.
Если хранилище ключей использует политики доступа вместо RBAC, выполните следующие инструкции:
Добавьте политику доступа в хранилище ключей с помощью портала Azure:
- Перейдите к инстанциям Azure Key Vault, которые будут использоваться для настройки ключей, управляемых клиентом, для управляемых сервисов вашего рабочего пространства.
- Откройте вкладку "Политики доступа" на левой панели.
- Нажмите кнопку Создать в верхней части страницы.
- В разделе Ключевых разрешений на вкладке Разрешения включите Get, Unwrap Keyи Wrap key.
- Нажмите кнопку Далее.
- На вкладке субъекта
введите и прокрутите страницу до первого результата корпоративного приложения с идентификатором приложения и выберите его. - Перейдите на вкладку "Просмотр и создание " и нажмите кнопку b.
Использование Azure CLI
Используйте Azure CLI, чтобы выполнить следующие инструкции.
Создайте хранилище ключей или выберите существующее хранилище ключей:
Чтобы создать хранилище ключей, используйте следующую команду Azure CLI и замените элементы в скобках своим регионом, именем хранилища ключей, именем группы ресурсов и расположением:
az keyvault create --location <region> \ --name <key-vault-name> \ --resource-group <resource-group-name> \ --location <location> \ --enable-purge-protection
Чтобы использовать существующее хранилище ключей, скопируйте имя хранилища ключей для следующего шага.
Получите идентификатор объекта приложения AzureDatabricks с помощью Azure CLI.
az ad sp show --id "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" \ --query "id" \ --output tsv
Убедитесь, что вы используете правильную подписку Azure:
az account set --subscription {subscription_id}
Использование Azure 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 или другой инструментарий.
Использование Azure CLI
Создайте ключ под хранилищем ключей. Тип ключа должен быть RSA.
Чтобы создать ключ в интерфейсе командной строки, выполните следующую команду:
az keyvault key create --name <key-name> \
--vault-name <key-vault-name> \
--protection software
Запишите следующие значения, которые можно получить из идентификатора ключа в свойстве kid
в ответе. Они будут использоваться в последующих шагах.
- URL-адрес хранилища ключей: начальная часть идентификатора ключа, содержащая имя хранилища ключей. Этот параметр имеет следующий формат
https://<key-vault-name>.vault.azure.net
. - Имя ключа: имя ключа.
- Версия ключа: версия ключа.
Полный идентификатор ключа обычно имеет форму https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>
. Ключи Azure Key Vault, которые находятся в недоступном облаке, имеют другую форму.
Чтобы использовать существующий ключ вместо создания, получите и скопируйте эти значения для ключа, чтобы их можно было использовать в следующих шагах. Перед продолжением убедитесь, что существующий ключ активен.
Использование Azure PowerShell
Можно создать ключ или получить существующий ключ:
Создайте ключ:
$key = Add-AzKeyVaultKey \ -VaultName $keyVault.VaultName \ -Name <key-name> \ -Destination 'Software'
Получение существующего ключа:
$key = Get-AzKeyVaultKey \ -VaultName $keyVault.VaultName \ -Name <key-name>
Предоставьте рабочей области Azure Databricks и управляемому удостоверению хранилища данных Azure Databricks роль пользователя шифрования службы криптообработки Key Vault в хранилище ключей.
$azureDatabricks = Get-AzureADServicePrincipal \ -Filter "appId eq '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d'" New-AzKeyVaultRoleAssignment -RoleDefinitionName "Key Vault Crypto Service Encryption User" -ObjectId $azureDatabricks.ObjectId New-AzKeyVaultRoleAssignment -RoleDefinitionName "Key Vault Crypto Service Encryption User" -ObjectId $managedService.ObjectId
Примечание.
Если хранилище ключей использует политики доступа вместо RBAC, используйте следующую команду:
$managedService = Get-AzureADServicePrincipal \
-Filter "appId eq '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d'"
Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \
-ObjectId $managedService.ObjectId \
-PermissionsToKeys wrapkey,unwrapkey,get
Шаг 3. Добавление ключа в рабочую область
Вы можете развернуть новую рабочую область с ключом, управляемым клиентом для управляемых служб, или добавить ключ в существующую рабочую область. Вы можете использовать azure CLI, PowerShell, шаблоны ARM, портал Azure или другие средства. В этом разделе содержатся сведения о нескольких вариантах развертывания:
- Использование портал Azure без шаблона
- Использование Azure CLI без шаблона
- Использование PowerShell без шаблона
- Применение изменений с помощью шаблона ARM
Использование портал Azure без шаблона
Щелкните " Создать ресурс " в левом верхнем углу страницы.
В строке поиска введите
Azure Databricks
и выберите параметр Azure Databricks .Нажмите кнопку "Создать " в мини-приложении Azure Databricks.
Введите значения для полей ввода на вкладках
"Основы" и сетевых .После перехода на вкладку "Шифрование ":
- Чтобы создать рабочую область, включите собственный ключ в разделе "Управляемые службы".
- Для обновления рабочей области включите управляемые службы.
Задайте поля шифрования.
- В поле идентификатор ключа вставьте идентификатор ключа Azure Key Vault.
- В раскрывающемся списке подписки введите имя подписки ключа Azure Key Vault.
Заполните оставшиеся вкладки и нажмите кнопку "Просмотр и создание " (для новой рабочей области) или "Сохранить " (для обновления рабочей области).
Внимание
При смене ключа необходимо сохранить старый ключ доступным в течение 24 часов.
Использование Azure CLI без шаблона
Предоставьте роль пользователя службы шифрования Key Vault для Azure Databricks и управляемого удостоверения учетной записи хранения Azure Databricks в вашем хранилище ключей.
az keyvault role assignment create \ --role "Key Vault Crypto Service Encryption User" \ --assignee-object-id <azure-databricks-service-object-id> az keyvault role assignment create \ --role "Key Vault Crypto Service Encryption User" \ --assignee <storage-account-managed-identity>
Примечание.
Если хранилище ключей использует политики доступа вместо RBAC, выполните следующие инструкции:
Замените <key-vault-name>
именем хранилища, которое использовалось на предыдущем шаге, и замените <object-id>
идентификатором AzureDatabricks
объекта приложения.
az keyvault set-policy -n <key-vault-name> \
--key-permissions get wrapKey unwrapKey \
--object-id <object-id>
Создайте или обновите рабочую область:
Для создания и обновления добавьте следующие поля в команду:
-
managed-services-key-name
: имя ключа -
managed-services-key-vault
: универсальный код ресурса (URI) хранилища ключей -
managed-services-key-version
: ключевая версия. Используйте определенную версию ключа, а неlatest
.
Пример создания рабочей области с помощью следующих полей:
az databricks workspace create --name <workspace-name> \ --resource-group <resource-group-name> \ --location <location> \ --sku premium \ --managed-services-key-name <key-name> \ --managed-services-key-vault <key-vault-uri> \ --managed-services-key-version <key-version>
Пример обновления рабочей области с помощью следующих полей:
az databricks workspace update --name <workspace-name> \ --resource-group <resource-group-name> \ --managed-services-key-name <key-name> \ --managed-services-key-vault <key-vault-uri> \ --managed-services-key-version <key-version>
-
Внимание
При смене ключа необходимо сохранить старый ключ доступным в течение 24 часов.
Использование PowerShell без шаблона
Чтобы создать или обновить рабочую область, добавьте следующие параметры в команду для нового ключа:
-
ManagedServicesKeyVaultPropertiesKeyName
: имя ключа -
ManagedServicesKeyVaultPropertiesKeyVaultUri
: URI ключа -
ManagedServicesKeyVaultPropertiesKeyVersion
: ключевая версия. Используйте определенную версию ключа, а неlatest
.
Пример создания рабочей области с этими полями:
New-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-location $keyVault.Location \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version
Пример обновления рабочей области с этими полями:
Update-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version
Внимание
При смене ключа необходимо сохранить старый ключ доступным в течение 24 часов.
Применение изменений с помощью шаблона ARM
Следующий шаблон ARM создает рабочую область с ключом, управляемым клиентом, с помощью версии 2023-02-01
API для ресурса Microsoft.Databricks/workspaces
. Сохраните этот текст локально в файле с именем databricks-cmk-template.json
.
Этот пример шаблона не включает все возможные функции Azure Databricks, например предоставление собственной виртуальной сети для развертывания рабочей области.
Внимание
Если вы уже используете шаблон, объедините дополнительные параметры, ресурсы и выходные данные этого шаблона в существующий шаблон.
{
"$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": ["standard", "premium"],
"metadata": {
"description": "The pricing tier of workspace."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"apiVersion": {
"type": "string",
"defaultValue": "2023-02-01",
"allowedValues": ["2023-02-01", "2021-04-01-preview"],
"metadata": {
"description": "The api version to create the workspace resources"
}
},
"keyvaultUri": {
"type": "string",
"metadata": {
"description": "The Key Vault URI for customer-managed key for managed services"
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The key name used for customer-managed key for managed services"
}
},
"keyVersion": {
"type": "string",
"metadata": {
"description": "The key version used for customer-managed key for managed services. Use the specific key version and not `latest`."
}
}
},
"variables": {
"managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Databricks/workspaces",
"name": "[parameters('workspaceName')]",
"location": "[parameters('location')]",
"apiVersion": "[parameters('apiVersion')]",
"sku": {
"name": "[parameters('pricingTier')]"
},
"properties": {
"ManagedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
"encryption": {
"entities": {
"managedServices": {
"keySource": "Microsoft.Keyvault",
"keyVaultProperties": {
"keyVaultUri": "[parameters('keyvaultUri')]",
"keyName": "[parameters('keyName')]",
"keyVersion": "[parameters('keyVersion')]"
}
}
}
}
}
}
],
"outputs": {
"workspace": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
}
}
}
Если вы уже используете другой шаблон, можно объединить параметры, ресурсы и выходные данные этого шаблона в существующий шаблон.
Чтобы использовать этот шаблон для создания или обновления рабочей области, выберите один из следующих вариантов развертывания:
Применение шаблона с помощью Azure CLI
Чтобы создать новую рабочую область с помощью Azure CLI, выполните следующую команду.
az deployment group create --resource-group <resource-group-name> \
--template-file <file-name>.json \
--parameters workspaceName=<new-workspace-name> \
keyvaultUri=<keyvaultUrl> \
keyName=<keyName> keyVersion=<keyVersion>
Примечание.
Используйте определенную версию ключа, а не latest
.
Чтобы обновить существующую рабочую область для использования управляемой клиентом рабочей области ключей (или для смены существующего ключа) с помощью Azure CLI:
Если шаблон ARM, который развернул рабочую область, никогда не добавлял ключи, управляемые клиентом, добавьте раздел
resources.properties.encryption
и связанные с ним параметры. См. описание шаблона ранее в этой статье.- Добавьте раздел
resources.properties.encryption
из шаблона. - В разделе
parameters
добавьте три новых параметраkeyvaultUri
,keyName
иkeyVersion
из шаблона. - В разделе
parameters
удалите"type": "string",
из шаблона.
- Добавьте раздел
Выполните ту же команду, что и для создания новой рабочей области. Пока имя группы ресурсов и имя рабочей области идентичны существующей рабочей области, эта команда будет обновлять существующую рабочую область, а не создавать новую рабочую область.
az deployment group create --resource-group <existing-resource-group-name> \ --template-file <file-name>.json \ --parameters workspaceName=<existing-workspace-name> \ keyvaultUri=<keyvaultUrl> \ keyName=<keyName> keyVersion=<keyVersion>
Кроме изменений в параметрах, связанных с ключом, используйте те же параметры, которые использовались для создания рабочей области.
Внимание
При смене ключа необходимо сохранить старый ключ доступным в течение 24 часов.
Применение шаблона с помощью портал Azure
Чтобы использовать шаблон на портале Azure для создания или обновления рабочей области:
Перейдите на страницу Настраиваемое развертывание.
Выберите Создать собственный шаблон в редакторе.
Вставьте его в JSON-файл.
Нажмите кнопку Сохранить.
Заполните параметры.
Чтобы обновить существующую рабочую область, используйте те же параметры, что и для создания рабочей области. Чтобы добавить ключ в первый раз, добавьте три параметра, связанные с ключом. Чтобы повернуть ключ, измените некоторые или все параметры, связанные с ключом. Убедитесь, что имя группы ресурсов и имя рабочей области идентичны существующей рабочей области. Если они совпадают, эта команда обновляет существующую рабочую область, а не создает новую.
Кроме изменений в параметрах, связанных с ключом, используйте те же параметры, которые использовались для создания рабочей области.
Щелкните Просмотр и создание.
Если нет проблем с проверкой, нажмите кнопку Создать.
Внимание
При смене ключа необходимо сохранить старый ключ доступным в течение 24 часов.
Дополнительные сведения см. в статье Краткое руководство. Создание и развертывание шаблонов ARM с помощью портала Azure.
Шаг 4 (необязательно): повторно импортируйте записные книжки
После первичного добавления ключа для управляемых служб в существующей рабочей области ваш ключ будут использовать только будущие операции записи. Существующие данные повторно не шифруются.
Можно экспортировать все записные книжки, а затем повторно их импортировать, чтобы ключ, который шифрует данные, защищался и управлялся вашим ключом. Можно использовать API экспорта и импорта рабочей области.
Смена ключа в дальнейшем
Если вы уже используете управляемый клиентом ключ для управляемых служб, можно обновить рабочую область с новой версией ключа или полностью новым ключом. Это называется сменой ключей.
Создайте новый ключ или смените существующий ключ в хранилище ключей. См. шаг 1. Настройка хранилища ключей.
Убедитесь, что новый ключ имеет соответствующие разрешения.
Убедитесь, что шаблон имеет правильную версию API. Оно должно быть равно или выше
2021-04-01-preview
.Обновите рабочую область с помощью нового ключа с помощью портала, интерфейса командной строки или PowerShell. См. шаг 3. Добавление ключа в рабочую область и выполнение инструкций по обновлению рабочей области. Убедитесь, что вы используете те же значения для имени группы ресурсов и имени рабочей области, чтобы обновить существующую рабочую область, а не создать новую рабочую область. Кроме изменений в параметрах, связанных с ключом, используйте те же параметры, которые использовались для создания рабочей области.
Внимание
При смене ключа необходимо сохранить старый ключ доступным в течение 24 часов.
При необходимости экспортируйте и повторно импортируйте существующие записные книжки , чтобы все существующие записные книжки использовали новый ключ.
Устранение неполадок
Случайное удаление ключа
Если удалить ключ в Azure Key Vault, то при входе в рабочую область произойдет сбой, а записные книжки не будут доступны для чтения с помощью Azure Databricks. Чтобы избежать этого, рекомендуется включить обратимое удаление. Этот параметр гарантирует, что при удалении ключа его можно будет восстановить в течение 30 дней. Если обратимое удаление включено, можно просто повторно активировать ключ, чтобы устранить проблему.
Сбой обновления ключа из-за разрешений хранилища ключей
Если у вас возникли проблемы с созданием рабочей области, проверьте, имеет ли хранилище ключей правильные разрешения. Ошибка, возвращаемая Azure, может не указываться в качестве основной причины. Кроме того, требуются следующие разрешения: get
, wrapKey
и unwrapKey
. См. шаг 1. Настройка хранилища ключей.
Потерянные ключи не подлежат восстановлению
Также если вы потеряли ключ и не можете его восстановить, все данные записной книжки, зашифрованные с помощью ключа, восстановить будет нельзя.