Применимо к:
База данных SQL Azure
Примечание.
- На уровне базы данных TDE CMK доступен для всех выпусков базы данных Azure SQL. Он недоступен для Управляемого экземпляра SQL Azure, локального экземпляра SQL Server, виртуальных машин Azure и Azure Synapse Analytics (выделенных пулов SQL (ранее — хранилище данных SQL)).
- Это же руководство можно применить к настройке ключей, управляемых клиентом на уровне базы данных, в том же клиенте, за исключением параметра федеративного идентификатора клиента. Дополнительные сведения об управляемых клиентом ключах уровня базы данных см. в разделе Прозрачное шифрование данных (TDE) с ключами, управляемыми клиентом, на уровне базы данных.
В этом руководстве мы рассмотрим шаги по созданию, обновлению и получению База данных SQL Azure с прозрачным шифрованием данных (TDE) и ключами, управляемыми клиентом (CMK) на уровне базы данных, используя управляемое удостоверение, назначаемое пользователем, для доступа к Azure Key Vault. Azure Key Vault находится в другом клиенте Microsoft Entra, чем Azure SQL Database. Дополнительные сведения см. в разделе "Межарендные ключи, управляемые клиентом, с прозрачным шифрованием данных".
Предварительные условия
- В этом руководстве предполагается, что у вас есть два клиента Microsoft Entra.
- Первый состоит из ресурса базы данных SQL Azure, многопользовательского приложения Microsoft Entra и управляемого удостоверения, присвоенного пользователем.
- Второй арендатор размещает Azure Key Vault.
- Подробные инструкции по настройке межтенантной CMK и разрешений RBAC, необходимых для настройки приложений Microsoft Entra и Azure Key Vault, см. одно из следующих руководств.
- Azure CLI версии 2.52.0 или более поздней.
- Модуль Az PowerShell версии 10.3.0 или более поздней.
- Разрешения RBAC, необходимые для CMK уровня базы данных, являются теми же разрешениями, которые необходимы для CMK уровня сервера. В частности, те же разрешения RBAC, которые применимы при использовании Azure Key Vault, Управляемых удостоверений и Межтенантной CMK для TDE на уровне сервера, применимы на уровне базы данных. Дополнительные сведения об управлении ключами и политике доступа см. в разделе "Управление ключами".
Необходимые ресурсы для первого арендатора
В этой инструкции предположим, что первый арендатор относится к независимому поставщику программного обеспечения (ISV), а второй арендатор — к их клиенту. Дополнительные сведения об этом сценарии см. в разделе Межтенантные ключи, управляемые клиентом, с прозрачным шифрованием данных.
Прежде чем настроить TDE для базы данных SQL Azure с помощью кросстенантного CMK, необходимо иметь мультитенантное приложение Microsoft Entra, настроенное с пользовательским управляемым удостоверением, назначенным в качестве удостоверяющего федеративного удостоверения для приложения. Следуйте одному из руководств в предварительных требованиях.
В первом клиенте, где вы хотите создать базу данных SQL Azure, создайте и настройте мультитенантное приложение Microsoft Entra.
Создание назначаемого пользователем управляемого удостоверения.
Настройте пользовательское управляемое удостоверение в роли учетных данных федеративного удостоверения для мультитенантного приложения.
Запишите имя приложения и идентификатор приложения. Это можно найти в портале Azure>, в разделe Microsoft Entra ID>, корпоративные приложения, и найдите созданное приложение.
Необходимые ресурсы во втором клиенте
Примечание.
Модули Azure AD и MSOnline PowerShell устарели с 30 марта 2024 г. Дополнительные сведения см. в обновлении об отмене. После этой даты поддержка этих модулей ограничена поддержкой миграции в пакет SDK Для Microsoft Graph PowerShell и исправления безопасности. Устаревшие модули будут продолжать функционировать до 30 марта 2025 года.
Рекомендуем перейти на Microsoft Graph PowerShell для взаимодействия с Microsoft Entra ID (ранее Azure AD). Часто задаваемые вопросы о миграции см. в разделе "Вопросы и ответы о миграции".
Примечание. Версии 1.0.x MSOnline могут испытывать сбои с 30 июня 2024 г.
Во втором клиенте, где находится Azure Key Vault, создайте субъект-службу (приложение) с помощью идентификатора приложения из зарегистрированного приложения из первого клиента. Вот некоторые примеры того, как зарегистрировать мультитенантное приложение. Замените <TenantID> и <ApplicationID> идентификатором клиента клиента из идентификатора Microsoft Entra ID и идентификатора приложения из мультитенантного приложения соответственно:
Перейдите на портал Azure, Microsoft Entra ID, приложения для предприятий и найдите созданное приложение.
Создайте Azure Key Vault, если у вас его нет, и создайте ключ.
Создайте или задайте политику доступа.
- Выберите разрешения Get, Wrap Key, Unwrap Key в разделе разрешения ключа при создании политики доступа.
- При создании политики доступа в параметре Principal выберите мультитенантное приложение, созданное на первом шаге.
После создания политики доступа и ключа получите ключ из Azure Key Vault и запишите идентификатор ключа.
Создание новой базы данных SQL Azure с ключами, управляемыми клиентом на уровне базы данных
Ниже приведены примеры создания базы данных в Azure SQL Database с назначаемым пользователем управляемым удостоверением и настройки ключа, управляемого клиентом, для работы между различными арендаторами на уровне базы данных. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.
Перейдите в Центр SQL Azure в aka.ms/azuresqlhub.
В меню ресурсов разверните базу данных SQL Azure и выберите базы данных SQL.
Выберите кнопку + Создать и выберите базу данных SQL.
На вкладке "Основы" формы "Создать База данных SQL" в разделе "Сведения о проекте" выберите нужную подписку Azure, группу ресурсов и сервер для базы данных. Затем используйте уникальное имя для имени базы данных. Если вы не создали логический сервер для Azure SQL Database, см. статью "Создание сервера, настроенного с помощью TDE с использованием клиентского ключа CMK в разных клиентах" для получения дополнительной информации.
При переходе на вкладку "Безопасность " выберите "Настроить прозрачное шифрование данных " для ключа уровня базы данных.
В меню прозрачного шифрования данных выберите ключ, управляемый клиентом, на уровне базы данных (CMK).
Для назначаемого пользователем управляемого удостоверения выберите Настроить, чтобы включить идентификатор базы данных и добавить назначаемое пользователем управляемое удостоверение в ресурс, если требуемый идентификатор отсутствует в меню "Удостоверение". Затем выберите Применить.
В меню прозрачного шифрования данных выберите пункт "Изменить ключ". Выберите нужную подписку, хранилище ключей, ключ и версию для ключа, управляемого клиентом, который будет использоваться для TDE. Выберите кнопку Выбрать. После выбора ключа можно также добавить дополнительные ключи базы данных при необходимости с помощью URI хранилища ключей Azure (идентификатор объекта) в меню прозрачного шифрования данных.
Автоматическая смена ключа также может быть включена на уровне базы данных с помощью флажка автоматического обновления ключа в меню прозрачного шифрования данных.
Нажмите кнопку "Применить" , чтобы продолжить создание базы данных.
Нажмите кнопку "Далее": дополнительные параметры.
Нажмите кнопку "Далее": теги.
Рассмотрите возможность использования тегов Azure. Например, тег "Владелец" или "CreatedBy", чтобы определить, кто создал ресурс, и тег среды, чтобы определить, находится ли этот ресурс в рабочей среде, разработке и т. д. Дополнительные сведения см. в статье "Разработка стратегии именования и тегов для ресурсов Azure".
Выберите Review + create.
На странице Просмотр и создание после проверки нажмите кнопку Создать.
Примечание.
Создание базы данных завершится ошибкой, если управляемое удостоверение, назначаемое пользователем, не имеет правильных разрешений в хранилище ключей. Назначенное пользователем управляемое удостоверение должно иметь разрешения Get, wrapKey и unwrapKey в хранилище ключей. Дополнительные сведения см. в разделе "Управляемые удостоверения" для прозрачного шифрования данных с помощью ключа, управляемого клиентом.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
Создайте базу данных, настроенную с использованием управляемого идентификатора, назначенного пользователем, и межарендного шифрования данных управляемого клиентом с помощью команды az sql db create.
Идентификатор ключа из второго клиента можно использовать в поле encryption-protector. Идентификатор приложения мультитенантного приложения можно использовать в поле federated-client-id. Этот --encryption-protector-auto-rotation параметр можно использовать для включения автоматического поворота ключей на уровне базы данных.
Чтобы получить идентификатор ресурса управляемого удостоверения, назначаемого пользователем, выполните поиск по запросу Управляемые удостоверения на портале Azure. Найдите свое управляемое удостоверение и перейдите в раздел Свойства. Пример идентификатора ресурса UMI выглядит следующим образом./subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
az sql db create --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --encryption-protector-auto-rotation True
Создайте базу данных, настроенную с управляемым удостоверением, назначенным пользователем, и межарендным шифрованием TDE, управляемым клиентом, на уровне базы данных с использованием PowerShell.
Инструкции по установке модуля Az PowerShell см. в разделе "Установка Azure PowerShell".
Используйте командлет New-AzSqlDatabase.
Замените в примере приведенные ниже значения.
-
<ResourceGroupName>: имя группы ресурсов для логического сервера Azure SQL.
-
<DatabaseName>: используйте уникальное имя базы данных SQL Azure
-
<ServerName>: используйте уникальное имя логического сервера Azure SQL.
-
<UserAssignedIdentityId> — список управляемых удостоверений, назначаемых пользователем, которые должны быть назначены серверу (может быть одно или несколько).
-
<CustomerManagedKeyId>: идентификатор ключа из второго клиента Azure Key Vault
-
<FederatedClientId>: идентификатор приложения мультитенантного приложения
-
-EncryptionProtectorAutoRotation: можно использовать для включения автоматического поворота ключей на уровне базы данных
Чтобы получить идентификатор ресурса управляемого удостоверения, назначаемого пользователем, выполните поиск по запросу Управляемые удостоверения на портале Azure. Найдите свое управляемое удостоверение и перейдите в раздел Свойства. Пример идентификатора ресурса UMI выглядит следующим образом./subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
# create a server with user-assigned managed identity and cross-tenant customer-managed TDE with automatic key rotation enabled
$params = @{
ResourceGroupName = '<ResourceGroupName>'
ServerName = '<ServerName>'
DatabaseName = '<DatabaseName>'
AssignIdentity = $true
UserAssignedIdentityId = '<UserAssignedIdentityId>'
EncryptionProtector = '<CustomerManagedKeyId>'
FederatedClientId = '<FederatedClientId>'
EncryptionProtectorAutoRotation = $true
}
New-AzSqlDatabase @params
Ниже приведен пример шаблона ARM, который создает Azure SQL Database с управляемым удостоверением, назначенным пользователем, и управляемым клиентом шифрованием прозрачных данных (TDE) на уровне базы данных. Для межтенантного CMK используйте идентификатор ключа из второго клиента Azure Key Vault и идентификатор приложения из мультитенантного приложения.
Дополнительные сведения и шаблоны ARM см. в шаблонах Azure Resource Manager для Базы данных SQL Azure.
Используйте инструкции из разделов о пользовательском развертывании на портале Azure и создании собственного шаблона с помощью редактора. Затем необходимо сохранить конфигурацию после того, как вставлен пример.
Чтобы получить идентификатор ресурса управляемого удостоверения, назначаемого пользователем, выполните поиск по запросу Управляемые удостоверения на портале Azure. Найдите свое управляемое удостоверение и перейдите в раздел Свойства. Пример идентификатора ресурса UMI выглядит следующим образом /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"location": {
"type": "String"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Обновление существующей База данных SQL Azure с помощью ключей, управляемых клиентом на уровне базы данных
Ниже приведены примеры обновления существующей базы данных на базе данных SQL Azure с управляемым удостоверением, назначаемым пользователем, и настройки ключа, управляемого клиентом между арендаторами, на уровне базы данных. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.
Перейдите в Центр SQL Azure в aka.ms/azuresqlhub.
В меню ресурсов разверните базу данных SQL Azure и выберите базы данных SQL.
Выберите ресурс базы данных SQL , который требуется обновить с помощью ключа, управляемого клиентом на уровне базы данных.
В меню ресурсов в разделе "Безопасность" выберите "Удостоверение".
В разделе Назначаемая пользователем управляемая идентификация выберите команду Добавить.
В панели выбора управляемого удостоверения, назначенного пользователем выберите соответствующее управляемое удостоверение.
Нажмите кнопку "Добавить".
Выберите Сохранить.
В меню ресурсов в разделе "Безопасность" выберите "Шифрование данных".
Для прозрачного шифрования данных выберите кнопку для ключа управления клиентом на уровне базы данных (CMK). Удостоверение базы данных для базы данных уже должно быть включено, так как вы настроили его на последнем шаге.
Выберите "Изменить ключ". Выберите нужную подписку, хранилище ключей, ключ и версию для ключа, управляемого клиентом, который будет использоваться для TDE. Выберите кнопку Выбрать. После выбора ключа можно также добавить дополнительные ключи базы данных по мере необходимости с помощью URI хранилища ключей Azure (идентификатор объекта) в меню шифрования данных.
Установите флажок автоматического поворота ключа, если вы хотите включить автоматическую смену ключей на уровне базы данных.
Выберите Сохранить.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
Обновите базу данных, настроенную с использованием назначенного пользователем управляемого удостоверения и межарендаторского управления TDE, используя команду az sql db create.
Идентификатор ключа из второго клиента можно использовать в поле encryption-protector. Идентификатор приложения мультитенантного приложения можно использовать в поле federated-client-id.
Чтобы получить идентификатор ресурса управляемого удостоверения, назначаемого пользователем, выполните поиск по запросу Управляемые удостоверения на портале Azure. Найдите свое управляемое удостоверение и перейдите в раздел Свойства. Пример идентификатора ресурса UMI выглядит следующим образом /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>. Этот --encryption-protector-auto-rotation параметр можно использовать для включения автоматического поворота ключей на уровне базы данных.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
$keys Список — это разделенный пробелом список ключей, которые должны быть добавлены в базу данных, и $keysToRemove это разделенный пробелом список ключей, которые необходимо удалить из базы данных.
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
Обновите базу данных, настроенную с помощью управляемого удостоверения, назначаемого пользователем, и общего межарендаторского управления шифрованием данных (TDE) на уровне базы данных с помощью PowerShell.
Инструкции по установке модуля Az PowerShell см. в разделе "Установка Azure PowerShell".
Используйте командлет Set-AzSqlDatabase.
Замените в примере приведенные ниже значения.
-
<ResourceGroupName>: имя группы ресурсов для логического сервера Azure SQL.
-
<DatabaseName>: используйте уникальное имя базы данных SQL Azure
-
<ServerName>: используйте уникальное имя логического сервера Azure SQL.
-
<UserAssignedIdentityId> — список управляемых удостоверений, назначаемых пользователем, которые должны быть назначены серверу (может быть одно или несколько).
-
<CustomerManagedKeyId>: идентификатор ключа из второго клиента Azure Key Vault
-
<FederatedClientId>: идентификатор приложения мультитенантного приложения
-
<ListOfKeys>: разделенный запятыми список ключей, управляемых клиентом уровня базы данных, которые необходимо добавить в базу данных.
-
<ListOfKeysToRemove>: разделенный запятыми список ключей, управляемых клиентом уровня базы данных, которые будут удалены из базы данных.
-
-EncryptionProtectorAutoRotation: можно использовать для включения автоматического поворота ключей на уровне базы данных
Чтобы получить идентификатор ресурса управляемого удостоверения, назначаемого пользователем, выполните поиск по запросу Управляемые удостоверения на портале Azure. Найдите свое управляемое удостоверение и перейдите в раздел Свойства. Пример идентификатора ресурса UMI выглядит следующим образом /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
Примером является -KeyList и -KeysToRemove:
$keysToAdd = "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000","https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
$keysToRemove = "https://yourvault.vault.azure.net/keys/yourkey3/fd021f84a0d94d43b8ef33154bca0000"
Ниже приведен пример шаблона ARM, который обновляет базу данных SQL Azure с удостоверением, управляемым и назначенным пользователем, и настраиваемым клиентом TDE на уровне базы данных. Для межтенантного CMK используйте идентификатор ключа из второго клиента Azure Key Vault и идентификатор приложения из мультитенантного приложения.
Дополнительные сведения и шаблоны ARM см. в шаблонах Azure Resource Manager для Базы данных SQL Azure.
Используйте инструкции из разделов о пользовательском развертывании на портале Azure и создании собственного шаблона с помощью редактора. Затем необходимо сохранить конфигурацию после того, как вставлен пример.
Чтобы получить идентификатор ресурса управляемого удостоверения, назначаемого пользователем, выполните поиск по запросу Управляемые удостоверения на портале Azure. Найдите свое управляемое удостоверение и перейдите в раздел Свойства. Пример идентификатора ресурса UMI выглядит следующим образом /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-a286-474d-b6f0-29c42ac74554/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Пример параметров encryption_protector и keys_to_add:
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
Внимание
Чтобы удалить ключ из базы данных, значение словаря ключей определенного ключа должно быть передано как null. Например, "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null.
Просмотр параметров ключа, управляемого клиентом, на уровне базы данных в базе данных Azure SQL
Ниже приведены примеры получения ключей, управляемых клиентом на уровне базы данных. Ресурс Microsoft.Sql/servers/databases ARM по умолчанию отображает только средство защиты TDE и управляемое удостоверение, настроенные в базе данных. Чтобы развернуть полный список ключей, используйте параметр -ExpandKeyList. Кроме того, фильтры, такие как -KeysFilter "current" и значение времени (например, 2023-01-01) можно использовать для получения текущих ключей, используемых и ключей, используемых в прошлом в определенный момент времени. Эти фильтры поддерживаются только для отдельных запросов базы данных, а не для запросов на уровне сервера.
Чтобы просмотреть ключи, управляемые клиентом уровня базы данных, в портал Azure, перейдите в меню "Шифрование данных" ресурса базы данных SQL.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Инструкции по установке модуля Az PowerShell см. в разделе "Установка Azure PowerShell".
Используйте командлет Get-AzSqlDatabase.
# Retrieve the basic database level customer-managed key settings from a database
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName>
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter '2023-02-03 00:00:00'
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName> | Select DatabaseName, EncryptionProtector
Используйте REST API 2022-08-01-preview для База данных SQL Azure.
Получить основные параметры ключа управления клиентом на уровне базы данных.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Получение основных настроек ключей, управляемых клиентом на уровне базы данных, из базы данных и всех когда-либо добавленных ключей.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Получение базовых настроек ключа, управляемого клиентом, уровня базы данных и текущих используемых ключей из базы данных.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Получение основных параметров ключа, управляемого клиентом уровня базы данных, из базы данных и ключей, используемых в определенный момент времени.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('2023-02-04T01:57:42.49Z'))
Вывод списка всех ключей на логическом сервере
Чтобы получить список всех ключей (а не только основного защитника), используемых каждой базой данных на сервере, их необходимо запрашивать индивидуально через фильтры ключей. Ниже приведен пример запроса PowerShell для перечисления каждого ключа на логическом сервере.
Используйте командлет .
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
Проверьте ключ, управляемый клиентом, на уровне базы данных в базе данных Azure SQL
В случае недоступного средства защиты TDE, как описано в прозрачном шифровании данных SQL Azure с помощью ключа, управляемого клиентом, после исправления доступа к ключу можно использовать операцию повторного ключа, чтобы сделать базу данных доступной. Примеры см. в следующих инструкциях или командах.
Используя портал Azure, найдите ресурс базы данных SQL. Выбрав ресурс базы данных SQL, перейдите на вкладку прозрачное шифрование данных меню "Шифрование данных" в разделе "Параметры безопасности". Если база данных потеряла доступ к Azure Key Vault, появится кнопка повторного нажатия клавиши , и у вас будет возможность повторно изменить существующий ключ, выбрав "Повторить существующий ключ" или другой ключ, выбрав " Выбрать ключ резервного копирования".
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Используйте REST API 2022-08-01-preview для База данных SQL Azure.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revalidate?api-version=2022-08-01-preview
Восстановление управляемого клиентом ключа уровня базы данных на База данных SQL Azure
Базу данных, настроенную с помощью CMK уровня базы данных, можно вернуть к шифрованию уровня сервера, если сервер настроен с помощью ключа, управляемого службой, с помощью следующих команд.
Чтобы вернуть параметр ключа, управляемого клиентом на уровне базы данных, к ключу шифрования уровня сервера в портале Azure, перейдите на вкладку прозрачного шифрования данных меню шифрования данных ресурса базы данных SQL. Выберите ключ шифрования уровня сервера и нажмите кнопку "Сохранить ", чтобы сохранить параметры.
Примечание.
Чтобы использовать параметр ключа шифрования уровня сервера для отдельных баз данных, логический сервер для База данных SQL Azure должен быть настроен для использования управляемого службой ключа для TDE.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Используйте REST API 2022-08-01-preview для База данных SQL Azure.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revert?api-version=2022-08-01-preview
Связанный контент