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


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

применимо к:SQL Server на виртуальной машине Azure (только для Windows)

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

Обзор

Начиная с накопительного обновления 17 (CU17) для SQL Server 2022, управляемые удостоверения поддерживаются для EKM с AKV и управляемыми аппаратными модулями безопасности (HSM) на виртуальных машинах Azure. Управляемые удостоверения — это рекомендуемый метод проверки подлинности, позволяющий различным службам Azure выполнять проверку подлинности SQL Server на ресурсе виртуальной машины Azure без использования паролей или секретов. Дополнительные сведения об управляемых удостоверениях см. в Типы управляемых удостоверений.

Заметка

Управляемые удостоверения поддерживаются только для SQL Server на виртуальных машинах Azure и не поддерживаются для SQL Server, развернутого локально.

Сведения о настройке EKM с помощью AKV для локальной среды SQL Server см. в статье Настройка управления расширяемыми ключами SQL Server TDE с помощью Azure Key Vault.

Необходимые условия

  • SQL Server на виртуальной машине Azure с SQL Server 2022 CU17 или более поздней версии , настроенным с помощью аутентификации Microsoft Entra.
  • Azure Key Vault и ключ, созданный в хранилище ключей. Дополнительные сведения см. в статье Создание хранилища ключей.
  • Управляемые удостоверения поддерживаются для EKM с AKV. Основное управляемое удостоверение для SQL Server на виртуальной машине Azure требуется:
  • Скачайте последнюю версию соединителя SQL Server из центра загрузки Майкрософт .

Добавьте раздел реестра для поставщика EKM

Прежде чем создавать учетные данные с помощью управляемого удостоверения, необходимо добавить раздел реестра, чтобы поставщик EKM мог использовать управляемые удостоверения. Этот шаг должен выполняться администратором компьютера. Подробные инструкции см. в разделе и шаге 4: Добавление раздела реестра для поддержки поставщика EKM.

Создание учетных данных сервера с помощью управляемых удостоверений

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

CREATE CREDENTIAL [<akv-name>.vault.azure.net] 
    WITH IDENTITY = 'Managed Identity'
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov

Вы можете проверить имя AKV, сделав запрос sys.credentials.

SELECT name, credential_identity
FROM sys.credentials

Для условия WITH IDENTITY = 'Managed Identity' требуется основное управляемое удостоверение, назначенное SQL Server на Azure VM.

Дополнительные сведения о настройке EKM с помощью AKV см. в статье Настройка расширенного управления ключами SQL Server TDE с помощьюAzure Key Vault.

Создание учетных данных для использования с управляемыми аппаратными модулями безопасности (HSM)

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

CREATE CREDENTIAL [<akv-name>.managedhsm.azure.net] 
    WITH IDENTITY = 'Managed Identity'
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov

Дополнительные сведения о настройке EKM с помощью AKV см. в статье Настройка расширенного управления ключами SQL Server TDE с помощьюAzure Key Vault.

Команды T-SQL для обновления существующей конфигурации EKM для использования управляемых удостоверений

Если ваша текущая конфигурация использует EKM с AKV с секретом, необходимо удалить существующие учетные данные доступа и создать новые с помощью управляемого удостоверения. В следующих командах T-SQL показано, как обновить существующую конфигурацию EKM для использования управляемых удостоверений:

  1. Создайте учетные данные с помощью управляемого удостоверения:

    CREATE CREDENTIAL [<akv-name>.vault.azure.net] 
        WITH IDENTITY = 'Managed Identity'
        FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
    
  2. Если есть учетные данные, использующие секрет, связанный с именем входа домена администрирования SQL Server, удалите существующие учетные данные:

    ALTER LOGIN [<domain>\<login>]
    DROP CREDENTIAL [<existing-credential-name>]
    
  3. Свяжите новые учетные данные с именем входа домена администрирования SQL Server:

    ALTER LOGIN [<domain>\<login>]
    ADD CREDENTIAL [<akv-name>.vault.azure.net]
    

Вы можете проверить зашифрованное представление базы данных, чтобы проверить шифрование базы данных с помощью следующего запроса:

SELECT * 
FROM sys.dm_database_encryption_keys 
WHERE database_id=db_id('<your-database-name>')

Дополнительные сведения о настройке EKM с помощью AKV см. в статье Настройка расширенного управления ключами SQL Server TDE с помощьюAzure Key Vault.

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

Флаг трассировки 4675 можно использовать для проверки учетных данных, созданных с управляемым удостоверением. Если инструкция CREATE CREDENTIAL выполнялась без включения флага трассировки 4675, сообщение об ошибке не отображается, если основное управляемое удостоверение не установлено для сервера. Чтобы устранить эту проблему, учетные данные необходимо удалить и создать заново после включения флага трассировки.

Основное управляемое удостоверение не назначено

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

Msg 37563, Level 16, State 2, Line 14
The primary managed identity is not selected for this server. Enable the primary managed identity for Microsoft Entra authentication for this server. For more information see (https://aka.ms/sql-server-managed-identity-doc).`

Версия соединителя SQL Server не поддерживает управляемую идентичность для EKM с Azure Key Vault.

Если используется предыдущая версия соединителя SQL Server, при выполнении инструкции T-SQL CREATE ASYMMETRIC KEY с использованием учетных данных сервера с управляемым удостоверением возникает следующая ошибка:

Msg 37576, Level 16, State 2, Line 60
The current SQL Server Connector version for Microsoft Azure Key Vault does not support the managed identity (see https://aka.ms/sql-server-managed-identity-doc). Upgrade the SQL Server Connector to its latest version

Ограничения

  • Управляемое удостоверение на уровне сервера поддерживается только для SQL Server на виртуальной машине Azure, а не в локальной среде SQL Server. Для Linux не поддерживается управляемое удостоверение на уровне сервера.
  • Поддержка управляемых удостоверений для EKM с AKV и , а также резервное копирование и восстановление на URL-адрес с помощью управляемых удостоверений являются единственными службами Azure, поддерживающими управляемое удостоверение для SQL Server на виртуальных машинах Azure.
    • Для поддержки управляемых удостоверений для EKM с AKV требуется последняя версия соединителя SQL Server. Скачайте и установите последнюю версию из Центра загрузки Майкрософт.
  • Проверка подлинности Microsoft Entra может быть включена только с одним основным управляемым удостоверением для SQL Server на виртуальной машине Azure. Основное управляемое удостоверение используется для всех экземпляров SQL Server на виртуальной машине.