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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

Внимание

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

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

  • Если хранилище ключей находится за виртуальной сетью, используюющей брандмауэр, параметр allow Trusted Microsoft Services to обход этого брандмауэра должен быть включен в меню сети хранилища ключей, если вы хотите использовать управляемое удостоверение, назначаемое пользователем, или управляемое удостоверение, назначаемое системой. После включения этого параметра доступные ключи не могут быть перечислены в меню TDE SQL Server в портал Azure. Чтобы задать отдельный ключ CMK, необходимо использовать идентификатор ключа. Если параметр разрешить доверенным службам Майкрософт обойти этот брандмауэр не включен, возвращается следующая ошибка:
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subsriptionID/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).
    • Если вы получите указанную выше ошибку, проверка, если хранилище ключей находится за виртуальной сетью или брандмауэром, и убедитесь, что параметр Разрешить доверенным службам Майкрософт обойти этот брандмауэр.
  • Назначаемое пользователем управляемое удостоверение для Управляемый экземпляр SQL в настоящее время поддерживается только в хранилищах ключей, имеющих общедоступный доступ из всех сетей. Он не поддерживается, если брандмауэр AKV фильтрует определенные виртуальные сети и IP-адреса или использует подключения к частной конечной точке.
  • Если несколько управляемых удостоверений, назначенных пользователем, назначаются серверу или управляемому экземпляру, если одно удостоверение удаляется с сервера с помощью панели удостоверений портал Azure, операция завершается успешно, но удостоверение не удаляется с сервера. Удаление всех назначаемых пользователями управляемых удостоверений сразу на портале Azure будет выполнено корректно.
  • Если сервер или управляемый экземпляр настроены с управляемым клиентом TDE и на сервере включено как назначаемое системой, так и назначаемое пользователем управляемые удостоверения, удаление с сервера управляемых удостоверений, назначаемых пользователями, без предварительного предоставления назначаемому системой управляемому удостоверению доступа к хранилищу ключей приведет к появлению сообщения Возникла непредвиденная ошибка. Убедитесь, что назначаемому системой управляемому удостоверению были предоставлены права на доступ к хранилищу ключей, прежде чем удалять с сервера основное назначаемое пользователем управляемое удостоверение (и любые другие такие удостоверения).

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

См. также