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

Применимо к: База данных 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 ID ранее назывался Azure Active Directory (Azure AD).

Предварительные условия

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

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

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

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

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

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

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

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

    • PowerShell:

      Connect-Entra -TenantID <TenantID>
      New-EntraServicePrincipal  -AppId <ApplicationID>
      
    • Azure CLI:

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

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

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

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

    Снимок экрана: меню политики доступа Azure Key Vault на портале Azure.

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

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

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

  1. Перейдите в Центр SQL Azure в aka.ms/azuresqlhub.

  2. В меню ресурсов разверните базу данных SQL Azure и выберите базы данных SQL.

  3. Выберите кнопку + Создать и выберите базу данных SQL.

    Снимок экрана: портал Azure с страницей баз данных SQL, кнопкой

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

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

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

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

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

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

    Снимок экрана меню идентификации в Azure portal.

    Примечание.

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

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

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

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

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

  10. Нажмите кнопку "Далее": дополнительные параметры.

  11. Нажмите кнопку "Далее": теги.

  12. Рассмотрите возможность использования тегов Azure. Например, тег "Владелец" или "CreatedBy", чтобы определить, кто создал ресурс, и тег среды, чтобы определить, находится ли этот ресурс в рабочей среде, разработке и т. д. Дополнительные сведения см. в статье "Разработка стратегии именования и тегов для ресурсов Azure".

  13. Выберите Review + create.

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

Примечание.

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

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

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

  1. Перейдите в Центр SQL Azure в aka.ms/azuresqlhub.

  2. В меню ресурсов разверните базу данных SQL Azure и выберите базы данных SQL.

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

  4. В меню ресурсов в разделе "Безопасность" выберите "Удостоверение".

  5. В разделе Назначаемая пользователем управляемая идентификация выберите команду Добавить.

  6. В панели выбора управляемого удостоверения, назначенного пользователем выберите соответствующее управляемое удостоверение.

  7. Нажмите кнопку "Добавить".

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

  9. В меню ресурсов в разделе "Безопасность" выберите "Шифрование данных".

  10. Для прозрачного шифрования данных выберите кнопку для ключа управления клиентом на уровне базы данных (CMK). Удостоверение базы данных для базы данных уже должно быть включено, так как вы настроили его на последнем шаге.

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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