Применимо к:
База данных SQL Azure
Примечание.
- CMK уровня базы данных доступен для База данных SQL 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, отличном от База данных SQL Azure. Дополнительные сведения см. в разделе "Ключи, управляемые клиентом, с прозрачным шифрованием данных".
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Необходимые компоненты
- В этом руководстве предполагается, что у вас есть два клиента 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> Microsoft Entra ID>Enterprise и найти созданное приложение.
Необходимые ресурсы во втором клиенте
Примечание.
Модули Azure AD и MSOnline PowerShell устарели с 30 марта 2024 г. Дополнительные сведения см. в обновлении об отмене. После этой даты поддержка этих модулей ограничена поддержкой миграции в пакет SDK Для Microsoft Graph PowerShell и исправления безопасности. Устаревшие модули будут продолжать функционировать до 30 марта 2025 года.
Рекомендуется перенести в Microsoft Graph PowerShell для взаимодействия с идентификатором Microsoft Entra (ранее — Azure AD). Часто задаваемые вопросы о миграции см. в разделе "Вопросы и ответы о миграции".
Примечание. Версии 1.0.x MSOnline могут возникнуть сбоем после 30 июня 2024 г.
Во втором клиенте, где находится Azure Key Vault, создайте субъект-службу (приложение) с помощью идентификатора приложения из зарегистрированного приложения из первого клиента. Вот некоторые примеры того, как зарегистрировать мультитенантное приложение. Замените <TenantID> и <ApplicationID> идентификатором клиента клиента из идентификатора Microsoft Entra ID и идентификатора приложения из мультитенантного приложения соответственно:
Перейдите к приложениям >Enterprise и найдите созданное приложение.
Создайте Azure Key Vault, если у вас его нет, и создайте ключ.
Создайте или задайте политику доступа.
-
Выберите разрешения Get, Wrap Key, Unwrap Key в разделе "Разрешения ключа" при создании политики доступа.
- При создании политики доступа выберите мультитенантное приложение, созданное на первом шаге в параметре "Субъект ".
После создания политики доступа и ключа получите ключ из Azure Key Vault и запишите идентификатор ключа.
Создание нового База данных SQL Azure с ключами, управляемыми клиентом на уровне базы данных
Ниже приведены примеры создания базы данных на База данных SQL Azure с управляемым удостоверением, назначаемого пользователем, и настройка ключа, управляемого клиентом между клиентами, на уровне базы данных. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.
Перейдите в Центр SQL Azure в aka.ms/azuresqlhub.
В области базы данных SQL Azure выберите "Показать параметры".
В окне параметров базы данных SQL Azure выберите "Создать базу данных SQL".
На вкладке "Основы" формы "Создать База данных SQL" в разделе "Сведения о проекте" выберите нужную подписку Azure, группу ресурсов и сервер для базы данных. Затем используйте уникальное имя для имени базы данных. Если вы не создали логический сервер для База данных SQL Azure, см. статью "Создание сервера, настроенного с помощью TDE с помощью ключа, управляемого клиентом", для справки.
При переходе на вкладку "Безопасность " выберите "Настроить прозрачное шифрование данных " для ключа уровня базы данных.
В меню прозрачного шифрования данных выберите управляемый клиентом уровень базы данных (CMK).
Для управляемого удостоверения, назначаемого пользователем, выберите "Настроить" , чтобы включить удостоверение базы данных и добавить назначаемое пользователем управляемое удостоверение в ресурс, если требуемое удостоверение не отображается в меню "Удостоверение ". Затем выберите Применить.
В меню прозрачного шифрования данных выберите пункт "Изменить ключ". Выберите нужную подписку, хранилище ключей, ключ и версию для ключа, управляемого клиентом, который будет использоваться для TDE. Выберите кнопку Выбрать. После выбора ключа можно также добавить дополнительные ключи базы данных при необходимости с помощью URI хранилища ключей Azure (идентификатор объекта) в меню прозрачного шифрования данных.
Автоматическая смена ключей также может быть включена на уровне базы данных с помощью флажка автоматического поворота ключа в меню прозрачного шифрования данных.
Нажмите кнопку "Применить" , чтобы продолжить создание базы данных.
Нажмите кнопку "Далее": дополнительные параметры.
Нажмите кнопку "Далее": теги.
Рассмотрите возможность использования тегов Azure. Например, тег "Владелец" или "CreatedBy", чтобы определить, кто создал ресурс, и тег среды, чтобы определить, находится ли этот ресурс в рабочей среде, разработке и т. д. Дополнительные сведения см. в статье "Разработка стратегии именования и тегов для ресурсов Azure".
Выберите Review + create.
На странице Просмотр и создание после проверки нажмите кнопку Создать.
Примечание.
Создание базы данных завершится ошибкой, если управляемое удостоверение, назначаемое пользователем, не имеет правильных разрешений в хранилище ключей. Управляемое удостоверение, назначаемое пользователем, потребует разрешений Get, wrapKey и unwrapKey в хранилище ключей. Дополнительные сведения см. в разделе "Управляемые удостоверения" для прозрачного шифрования данных с помощью ключа, управляемого клиентом.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
Создайте базу данных, настроенную с помощью управляемого удостоверения, назначаемого пользователем, и кросстенантного управляемого клиентом TDE с помощью команды 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, который создает База данных 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"
},
"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 с управляемым удостоверением, назначаемым пользователем, и настройка ключа, управляемого клиентом между клиентами, на уровне базы данных. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.
В портал Azure перейдите к ресурсу базы данных 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.
Просмотр параметров ключа, управляемого клиентом на уровне базы данных, на База данных SQL Azure
Ниже приведены примеры получения ключей, управляемых клиентом на уровне базы данных. Ресурс 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 для перечисления каждого ключа на логическом сервере.
Используйте командлет Get-AzSqlDatabase.
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
Повторная проверка ключа на уровне базы данных, управляемого клиентом, на База данных SQL Azure
В случае недоступного средства защиты 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
Связанный контент