Поделиться через


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

Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure

Идентификатор Microsoft Entra, ранее Azure Active Directory, предоставляет автоматическое управляемое удостоверение для проверки подлинности в любой службе Azure, поддерживающей проверку подлинности Microsoft Entra, например Azure Key Vault, без предоставления учетных данных в коде. Дополнительные сведения см. в разделе Типы управляемых удостоверений.

Управляемые удостоверения бывают двух типов:

  • назначаемые системой;
  • назначаемые пользователями.

Дополнительные сведения см. в разделе "Управляемые удостоверения" в идентификаторе Microsoft Entra для SQL Azure.

Для TDE с ключом, управляемым клиентом (CMK) в SQL Azure, управляемое удостоверение на сервере используется для предоставления прав доступа к серверу в хранилище ключей или управляемом HSM. Например, управляемое удостоверение, назначаемое системой, должно наделяться разрешениями Azure Key Vault перед включением TDE с помощью CMK на сервере.

Помимо управляемого удостоверения, назначаемого системой, которое уже поддерживается для TDE с помощью CMK, управляемое удостоверение, назначаемое пользователем (UMI), которое назначается серверу, можно использовать для предоставления серверу доступа к хранилищу ключей или управляемому HSM. Необходимо включить доступ к хранилищу ключей или управляемому HSM, чтобы убедиться, что управляемому удостоверению, назначенному пользователем, назначены разрешения Get, wrapKey и unwrapKey в хранилище ключей или управляемом HSM. Так как управляемое удостоверение, назначаемое пользователем, является автономным ресурсом, который можно создать и предоставить доступ к хранилищу ключей или управляемому HSM, TDE с ключом, управляемым клиентом, теперь можно включить во время создания сервера или базы данных.

Примечание.

Чтобы назначить управляемое удостоверение, назначаемое пользователем, логическому серверу или управляемому экземпляру, пользователю необходимо иметь роль Azure RBAC Участник SQL Server или Участник Управляемого экземпляра SQL с любой другой ролью Azure RBAC, включающей действие Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action.

Преимущества использования UMI для управляемого клиентом TDE

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

  • Позволяет создавать логический сервер SQL Azure с включенным TDE и CMK.

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

  • Предоставляет возможность принудительного применения CMK во время создания сервера с помощью встроенной политики Azure.

Рекомендации по использованию UMI для управляемого клиентом TDE

  • По умолчанию TDE в Azure SQL использует основное управляемое удостоверение, назначенное пользователем, на сервере для доступа к хранилищу ключей или управляемому HSM. Если пользовательские удостоверения не назначены серверу, то системное управляемое удостоверение сервера используется для доступа к хранилищу ключей или управляемой HSM.
  • При использовании управляемой идентификации, назначенной пользователем для TDE с помощью CMK, назначьте эту идентификацию серверу и установите её в качестве основной идентификации для сервера.
  • Для основного управляемого удостоверения, назначаемого пользователем, требуется непрерывный доступ к хранилищу ключей или управляемая HSM (get, wrapKey, unwrapKey разрешения). Если доступ удостоверения к хранилищу ключей или управляемому HSM отозван или не предоставлены достаточные разрешения, база данных перейдет в недоступное состояние.
  • Если основное управляемое удостоверение, назначаемое пользователем, заменяется другим назначенным пользователем управляемым удостоверением, новому удостоверению должны быть предоставлены необходимые разрешения для хранилища ключей или управляемого устройства HSM перед обновлением основного удостоверения.
  • Чтобы переключить сервер с назначаемого пользователем управляемого удостоверения на управляемое удостоверение для хранилища ключей или управляемого устройства HSM, укажите управляемое удостоверение, назначаемое системой, с необходимым хранилищем ключей или разрешениями управляемого устройства HSM, а затем удалите все управляемые удостоверения, назначаемые пользователем, с сервера.

Внимание

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

Известные проблемы и ограничения

  • Если хранилище ключей или управляемый HSM находится за виртуальной сетью, использующей брандмауэр, параметр Разрешить Доверенным службам Microsoft обойти этот брандмауэр необходимо включить в меню Сети хранилища ключей или управляемого HSM, если вы хотите использовать управляемое удостоверение, назначаемое пользователем, или системное управляемое удостоверение. После включения этого параметра доступные ключи не могут быть перечислены в меню TDE SQL Server в портал Azure. Чтобы задать отдельный ключ CMK, необходимо использовать идентификатор ключа. Если параметр разрешить доверенным службам Майкрософт обойти этот брандмауэр не включен, возвращается следующая ошибка:
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subscriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
    • Если вы получите указанную выше ошибку, проверьте, находится ли хранилище ключей или управляемый HSM за виртуальной сетью или брандмауэром, и убедитесь, что параметр Разрешить доверенным службам Майкрософт обойти этот брандмауэр .
  • Если несколько управляемых удостоверений, назначенных пользователем, назначаются серверу или управляемому экземпляру, если одно удостоверение удаляется с сервера с помощью панели удостоверений портал Azure, операция завершается успешно, но удостоверение не удаляется с сервера. Удаление всех назначаемых пользователями управляемых удостоверений сразу на портале Azure будет выполнено корректно.
  • Если на сервере или управляемом экземпляре настроена функция TDE с управлением клиентом, а назначенные системой и пользователем управляемые удостоверения включены на сервере, то удаление управляемых удостоверений, назначенных пользователем, без предварительного предоставления назначенным системой управляемым удостоверениям доступа к хранилищу ключей или управляемому HSM приведет к возникновению сообщения об ошибке Непредвиденная ошибка. Убедитесь, что системное управляемое удостоверение было предоставлено доступ к хранилищу ключей или управляемому HSM перед удалением основного управляемого удостоверения, назначаемого пользователем (и любых других управляемых удостоверений, назначаемых пользователем) с сервера.

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