Управление удостоверениями и ключами для TDE с ключами, управляемыми клиентом на уровне базы данных

Применимо к: База данных 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).

Необходимые компоненты

Необходимые ресурсы в первом клиенте

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

Прежде чем настроить TDE для База данных SQL Azure с помощью межтенантной cmK, необходимо иметь мультитенантное приложение Microsoft Entra, которое настроено с управляемым удостоверением, назначенным пользователем, как федеративные учетные данные удостоверения для приложения. Следуйте одному из руководств в предварительных требованиях.

  1. В первом клиенте, где вы хотите создать База данных SQL Azure, создайте и настройте мультитенантное приложение Microsoft Entra.

  2. Создание управляемого удостоверения, назначаемого пользователем.

  3. Настройте управляемое удостоверение, назначаемое пользователем, в качестве учетных данных федеративного удостоверения для мультитенантного приложения.

  4. Запишите имя приложения и идентификатор приложения. Это можно найти в приложениях портал 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 г.

  1. Во втором клиенте, где находится Azure Key Vault, создайте субъект-службу (приложение) с помощью идентификатора приложения из зарегистрированного приложения из первого клиента. Ниже приведены некоторые примеры регистрации мультитенантного приложения. <ApplicationID> Замените и на <TenantID> идентификатор клиента из идентификатора Microsoft Entra и идентификатора приложения из мультитенантного приложения соответственно:

    • PowerShell:

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • Azure CLI:

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Перейдите к приложениям портал Azure> Microsoft Entra ID>Enterprise и найдите созданное приложение.

  3. Создайте Azure Key Vault, если у вас его нет, и создайте ключ.

  4. Создайте или задайте политику доступа.

    1. Выберите разрешения Get, Wrap Key, Unwrap Key в разделе "Разрешения ключа" при создании политики доступа.
    2. При создании политики доступа выберите мультитенантное приложение, созданное на первом шаге в параметре "Субъект ".

    Снимок экрана: меню политики доступа хранилища ключей в портал Azure.

  5. После создания политики доступа и ключа извлеките ключ из Key Vault и запишите идентификатор ключа.

Создание нового База данных SQL Azure с ключами, управляемыми клиентом на уровне базы данных

Ниже приведены примеры создания базы данных на База данных SQL Azure с управляемым удостоверением, назначаемого пользователем, и настройка ключа, управляемого клиентом между клиентами, на уровне базы данных. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.

  1. Перейдите на страницу Выберите вариант развертывания SQL на портале Azure.

  2. Если вы еще не вошли на портал Azure, выполните вход при появлении соответствующего запроса.

  3. В разделе Базы данных SQL оставьте для параметра Тип ресурса значение Отдельная база данных и нажмите кнопку Создать.

  4. На вкладке "Основы" формы "Создать База данных SQL" в разделе "Сведения о проекте" выберите нужную подписку Azure, группу ресурсов и сервер для базы данных. Затем используйте уникальное имя для имени базы данных. Если вы не создали логический сервер для База данных SQL Azure, см. статью "Создание сервера, настроенного с помощью TDE с помощью ключа, управляемого клиентом", для справки.

  5. При переходе на вкладку "Безопасность" выберите "Настроить прозрачное шифрование данных".

    Снимок экрана: портал Azure и меню

  6. В меню прозрачного шифрования данных выберите управляемый клиентом уровень базы данных (CMK).

    Снимок экрана: меню прозрачного шифрования данных портал Azure.

  7. Для управляемого удостоверения, назначаемого пользователем, выберите "Настроить" , чтобы включить удостоверение базы данных и добавить назначаемое пользователем управляемое удостоверение в ресурс, если требуемое удостоверение не отображается в меню "Удостоверение ". Затем выберите Применить.

    Снимок экрана: меню портал Azure Identity.

    Примечание.

    Вы можете настроить федеративное удостоверение клиента здесь, если вы настраиваете межтенантную CMK для TDE.

  8. В меню прозрачного шифрования данных выберите пункт "Изменить ключ". Выберите нужную подписку, хранилище ключей, ключ и версию для ключа, управляемого клиентом, который будет использоваться для TDE. Выберите кнопку Выбрать. После выбора ключа можно также добавить дополнительные ключи базы данных при необходимости с помощью URI хранилища ключей Azure (идентификатор объекта) в меню прозрачного шифрования данных.

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

    Снимок экрана: меню прозрачного шифрования данных в портал Azure ссылки на добавление дополнительных ключей.

  9. Нажмите кнопку "Применить" , чтобы продолжить создание базы данных.

  10. В нижней части страницы щелкните Просмотреть и создать.

  11. На странице Просмотр и создание после проверки нажмите кнопку Создать.

Примечание.

Создание базы данных завершится ошибкой, если управляемое удостоверение, назначаемое пользователем, не имеет правильных разрешений в хранилище ключей. Управляемое удостоверение, назначаемое пользователем, потребует разрешений Get, wrapKey и unwrapKey в хранилище ключей. Дополнительные сведения см. в разделе "Управляемые удостоверения" для прозрачного шифрования данных с помощью ключа, управляемого клиентом.

Обновление существующей База данных SQL Azure с помощью ключей, управляемых клиентом на уровне базы данных

Ниже приведены примеры обновления существующей базы данных на База данных SQL Azure с управляемым удостоверением, назначаемым пользователем, и настройка ключа, управляемого клиентом между клиентами, на уровне базы данных. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.

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

  2. В разделе "Безопасность" выберите "Удостоверение". Добавление управляемого удостоверения, назначаемого пользователем для этой базы данных, а затем нажмите кнопку "Сохранить".

  3. Теперь перейдите в меню "Шифрование данных" в разделе "Безопасность " для базы данных. Выберите управляемый клиентом ключ уровня базы данных (CMK). Удостоверение базы данных для базы данных уже должно быть включено, так как вы настроили удостоверение на последнем шаге.

  4. Выберите "Изменить ключ". Выберите нужную подписку, хранилище ключей, ключ и версию для ключа, управляемого клиентом, который будет использоваться для TDE. Выберите кнопку Выбрать. После выбора ключа можно также добавить дополнительные ключи базы данных по мере необходимости с помощью URI хранилища ключей Azure (идентификатор объекта) в меню шифрования данных.

    Установите флажок автоматического поворота ключа, если вы хотите включить автоматическую смену ключей на уровне базы данных.

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

  5. Выберите Сохранить.

Просмотр параметров ключа, управляемого клиентом на уровне базы данных, на База данных SQL Azure

Ниже приведены примеры получения ключей, управляемых клиентом на уровне базы данных. Ресурс Microsoft.Sql/servers/databases ARM по умолчанию отображает только средство защиты TDE и управляемое удостоверение, настроенные в базе данных. Чтобы развернуть полный список ключей, используйте параметр -ExpandKeyList. Кроме того, фильтры, такие как -KeysFilter "current" и значение времени (например, 2023-01-01) можно использовать для получения текущих ключей, используемых и ключей, используемых в прошлом в определенный момент времени. Эти фильтры поддерживаются только для отдельных запросов базы данных, а не для запросов на уровне сервера.

Чтобы просмотреть ключи, управляемые клиентом уровня базы данных, в портал Azure, перейдите в меню "Шифрование данных" ресурса базы данных SQL.

Вывод списка всех ключей на логическом сервере

Чтобы получить список всех ключей (а не только основной предохранитель), используемый каждой базой данных на сервере, он должен быть по отдельности запрашивается с фильтрами ключей. Ниже приведен пример запроса 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, как описано в прозрачное шифрование данных (TDE) с помощью CMK, после исправления доступа к ключу можно использовать повторную операцию ключа, чтобы сделать базу данных доступной. Примеры см. в следующих инструкциях или командах.

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

Восстановление управляемого клиентом ключа уровня базы данных на База данных SQL Azure

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

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

Примечание.

Чтобы использовать параметр ключа шифрования уровня сервера для отдельных баз данных, логический сервер для База данных SQL Azure должен быть настроен для использования управляемого службой ключа для TDE.

Следующие шаги

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