Распространенные ошибки при прозрачном шифровании данных с использованием управляемых клиентом ключей в Azure Key Vault

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

В этой статье описывается, как выявить и устранить проблемы с доступом к ключу в Azure Key Vault, из-за которых база данных, настроенная на использование прозрачного шифрования данных (TDE) с управляемыми клиентом ключами в Azure Key Vault, стала недоступной.

Примечание.

Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).

Введение

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

Если проблему доступа к ключам в основном хранилище Azure Key Vault разрешить в течение первых 30 минут, база данных автоматически восстановится и подключится к сети. Это означает, что во всех сценариях с периодическими или временными сбоями в сети вмешательство пользователя не требуется и база данных автоматически подключится к сети. В большинстве случаев для устранения проблемы с доступом к ключу в основном хранилище ключей требуется вмешательство пользователя.

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

Если база данных остается недоступной дольше 30 минут, она не восстановится автоматически. Если необходимый доступ к ключу в Azure Key Vault был восстановлен по прошествии этого времени, вам нужно вручную повторно проверить доступ к ключу, чтобы база данных подключилась к сети. Для подключения базы данных к сети может потребоваться много времени (в зависимости от размера базы данных). После подключения базы данных к сети ранее настроенные значения таких параметров, как группа отработки отказа, журнал PITR и теги, будут утрачены. Поэтому рекомендуется реализовать систему отправки уведомлений с помощью групп действий, которая позволит быть в курсе проблем с доступом к ключам в основным хранилище и устранять их как можно скорее.

Распространенные ошибки, из-за которых базы данных становятся недоступными

Большинство проблем, возникающих при использовании TDE с Key Vault, вызваны одной из следующих ошибок конфигурации:

Хранилище ключей недоступно или не существует.

  • Хранилище ключей случайно удалено.
  • Брандмауэр разрешает доступ к Azure Key Vault, но запрещает доступ к службам Майкрософт.
  • Временная ошибка сети, которая приводит к недоступности хранилища ключей.

Нет разрешения на доступ к хранилищу ключей или ключ не существует.

  • Ключ случайно удален, отключен или истек его срок действия.
  • Управляемое удостоверение сервера (назначенное системой или пользователем) было случайно удалено.
  • Сервер был перемещен в другую подписку. Новое управляемое удостоверение (назначенное системой или пользователем) должно быть назначено серверу при его перемещении в другую подписку.
  • Разрешения, предоставленные для управляемого удостоверения сервера для ключей являются недостаточными (они не включают разрешения Get, Wrap и Unwrap).
  • Разрешения для управляемого удостоверения сервера были отменены в хранилище ключей.

Определение и исправление распространенных ошибок

В этом разделе перечислены действия по устранению распространенных ошибок.

Отсутствует идентификатор сервера

Сообщение об ошибке

401 AzureKeyVaultNoServerIdentity — удостоверение сервера неправильно настроено на сервере. Обратитесь в службу поддержки.

Обнаружение

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

Исправление

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

На портале Azure перейдите в хранилище ключей и выберите Политики доступа. Выполните следующие действия:

  1. Нажмите кнопку Добавить, чтобы добавить AppId для сервера, созданного на предыдущем шаге.
  2. Назначьте следующие разрешения ключа: Get, Wrap и Unwrap

Дополнительные сведения см. в статье "Назначение управляемого удостоверения серверу".

Внимание

Если логический сервер для База данных SQL Azure или Управляемый экземпляр SQL Azure перемещается в новый клиент Microsoft Entra после начальной настройки TDE с key Vault, эта конфигурация управляемого удостоверения должна быть переопределена в новом клиенте.

Отсутствующее хранилище ключей

Сообщение об ошибке

503 AzureKeyVaultConnectionFailed. Операцию не удалось завершить на сервере, так как не удалось подключиться к Azure Key Vault.

Обнаружение

Чтобы определить URI ключа и хранилище ключей, сделайте следующее:

  1. Чтобы получить URI ключа определенного экземпляра сервера, используйте следующий командлет или команду:

  2. Используйте URI ключа для идентификации хранилища ключей:

    • Azure PowerShell. Вы можете проверить свойства переменной $MyServerKeyVaultKey, чтобы получить сведения о хранилище ключей.

    • Azure CLI. Проверьте возвращенный средство защиты шифрования сервера для получения сведений о хранилище ключей.

Исправление

Убедитесь, что хранилище ключей доступно:

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

Отсутствует ключ

Сообщения об ошибках

404 ServerKeyNotFound. Запрашиваемый ключ сервера не найден в текущей подписке.

409 ServerKeyDoesNotExists. Ключ сервера не существует.

Обнаружение

Чтобы определить URI ключа и хранилище ключей, сделайте следующее:

  • Чтобы получить URI ключа, добавленного к экземпляру логического сервера SQL Server, используйте следующие командлет или команду в отсутствующем хранилище ключей: Эти команды возвращают список ключей.

Исправление

Убедитесь, что средство защиты TDE присутствует в Key Vault:

  1. Определите хранилище ключей и перейдите к нему на портале Azure.
  2. Убедитесь, что ключ, определенный по URI ключа, присутствует.

Отсутствуют разрешения

Сообщение об ошибке

401 AzureKeyVaultMissingPermissions. У сервера отсутствуют необходимые разрешения для Azure Key Vault.

Обнаружение

Чтобы определить URI ключа и хранилище ключей, сделайте следующее:

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

Исправление

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

  • В портал Azure перейдите к политикам доступа к хранилищу >ключей. Найдите управляемое удостоверение сервера (назначенное системой или пользователем).
  • При наличии удостоверения сервера убедитесь, что у него есть следующие основные разрешения: Get, WrapKey и UnwrapKey.
  • Если удостоверение севера отсутствует, добавьте его с помощью кнопки Добавить.

Получение состояния TDE из журнала действий

Чтобы разрешить мониторинг состояния базы данных в связи с проблемами с доступом к ключам в Azure Key Vault, в журнал действий для ИД ресурса, основанного на URL-адресе Azure Resource Manager, будут заноситься следующие события.

Примечание.

Появление событий в журнале действий может занять как минимум 15-30 минут с момента возникновения проблемы доступа к хранилищу ключей.

Событие, когда служба теряет доступ к ключу в Azure Key Vault

База данных SQL Azure

EventName: MakeDatabaseInaccessible

Состояние: запущено

Описание: база данных {database_name} на сервере {server_name} потеряла доступ к ключу Azure Key Vault и теперь переходит в недоступное состояние.

Управляемый экземпляр SQL Azure

EventName: MakeManagedDbInaccessible

Состояние: запущено

Описание: база данных {database_name} на управляемом сервере {server_name} потеряла доступ к ключу Azure Key Vault и теперь переходит в недоступное состояние.

Событие, когда проблема не была устранена в течение 30 минут, а доступ к ключу Azure Key Vault должен быть проверен вручную.

База данных SQL Azure

EventName: MakeDatabaseInaccessible

Состояние: выполнено успешно

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

Управляемый экземпляр SQL Azure

EventName: MakeManagedDbInaccessible

Состояние: выполнено успешно

Описание: база данных {database_name} на управляемом сервере {server_name} недоступна и для нее требуется, чтобы пользователь повторно установил доступ к ключу Azure Key Vault.

Событие, когда повторная проверка доступа к ключу в Azure Key Vault прошла успешно и база данных подключилась к сети

База данных SQL Azure

EventName: MakeDatabaseAccessible

Состояние: запущено

Описание: доступ к ключу Azure Key Vault был восстановлен; выполняется операция по обеспечению доступа к базе данных {database_name} на сервере {server_name}.

Управляемый экземпляр SQL Azure

EventName: MakeManagedDatabaseAccessible

Состояние: запущено

Описание: доступ к ключу Azure Key Vault был восстановлен; выполняется операция по обеспечению доступа к базе данных {database_name} на управляемом сервере {server_name}.

Событие, когда база данных успешно подключается к сети

База данных SQL Azure

EventName: MakeDatabaseAccessible

Состояние: выполнено успешно

Описание: доступ к ключу Azure Key Vault был восстановлен; база данных {database_name} на сервере {server_name} подключена к сети.

Управляемый экземпляр SQL Azure

EventName: MakeManagedDatabaseAccessible

Состояние: выполнено успешно

Описание: доступ к ключу Azure Key Vault был восстановлен; база данных {database_name} на управляемом сервере {server_name} подключена к сети.

Событие, когда повторная проверка доступа к ключу в Azure Key Vault завершилась ошибкой

База данных SQL Azure

EventName: MakeDatabaseAccessible

Состояние: Сбой

Описание: доступ к ключу Azure Key Vault был восстановлен; произошел сбой выполнения операции по обеспечению доступа к базе данных {database_name} на сервере {server_name}

Управляемый экземпляр SQL Azure

EventName: MakeManagedDatabaseAccessible

Состояние: Сбой

Описание: доступ к ключу Azure Key Vault был восстановлен; произошел сбой выполнения операции по обеспечению доступа к базе данных {database_name} на управляемом сервере {server_name}

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

  • См. дополнительные сведения о работоспособности ресурсов Azure.
  • Настройте группы действий, чтобы получать уведомления и оповещения на основе ваших предпочтений, например по электронной почте, в виде SMS, push-уведомлений или голосовых сообщений, с использованием приложения логики, веб-перехватчика, ITSM или runbook службы автоматизации.