Partage via


Prise en charge des identités gérées pour la gestion extensible des clés avec Azure Key Vault

s’applique à :SQL Server sur une machine virtuelle Azure (Windows uniquement)

Cet article explique comment utiliser des identités managées pour EKM (Extensible Key Management) avec Azure Key Vault (AKV) sur SQL Server sur des machines virtuelles Azure (VM).

Aperçu

À compter de sql Server 2022 Cumulative Update 17 (CU17), les identités managées sont prises en charge pour EKM avec AKV et Managed Hardware Security Modules (HSM) sur SQL Server sur des machines virtuelles Azure. Les identités managées sont la méthode d’authentification recommandée pour permettre à différents services Azure d’authentifier sql Server sur la ressource de machine virtuelle Azure sans utiliser de mots de passe ou de secrets. Pour plus d’informations sur les identités managées, consultez types d’identités managées.

Remarque

Les identités managées sont uniquement prises en charge pour SQL Server sur des machines virtuelles Azure et non pour SQL Server localement.

Pour plus d’informations sur la configuration d’EKM avec AKV pour SQL Server localement, consultez Configurer sql Server TDE Extensible Key Management à l’aide d’Azure Key Vault.

Conditions préalables

Ajouter une clé de Registre pour le fournisseur EKM

Avant de pouvoir créer des informations d’identification à l’aide d’une identité managée, vous devez ajouter une clé de Registre pour permettre au fournisseur EKM d’utiliser des identités managées. Cette étape doit être effectuée par l’administrateur de l’ordinateur. Pour obtenir des instructions détaillées, consultez Étape 4 : Ajouter une clé de Registre pour prendre en charge le fournisseur EKM.

Créer des informations d’identification de serveur à l’aide d’identités managées

L’exemple suivant montre comment créer des informations d’identification pour une identité managée à utiliser avec AKV :

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

Vous pouvez vérifier le nom AKV en interrogeant sys.credentials:

SELECT name, credential_identity
FROM sys.credentials

La clause WITH IDENTITY = 'Managed Identity' nécessite une identité managée principale affectée à SQL Server sur une machine virtuelle Azure.

Pour plus d’informations sur la configuration d’EKM avec AKV, consultez Configurer sql Server TDE Extensible Key Management à l’aide d’Azure Key Vault.

Création d’informations d’identification à utiliser avec des modules de sécurité matériels gérés (HSM)

Pour créer des informations d’identification à utiliser avec azure Key Vault Managed Hardware Security Modules (HSM), utilisez la syntaxe suivante :

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

Pour plus d’informations sur la configuration d’EKM avec AKV, consultez Configurer sql Server TDE Extensible Key Management à l’aide d’Azure Key Vault.

Commandes T-SQL pour mettre à niveau la configuration EKM existante pour utiliser des identités managées

Si votre configuration actuelle utilise EKM avec AKV à l’aide d’un secret, vous devez supprimer les informations d’identification existantes et créer des informations d’identification à l’aide d’une identité managée. Les commandes T-SQL suivantes montrent comment mettre à niveau votre configuration EKM existante pour utiliser des identités managées :

  1. Créez les informations d’identification à l’aide d’une identité managée :

    CREATE CREDENTIAL [<akv-name>.vault.azure.net] 
        WITH IDENTITY = 'Managed Identity'
        FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov
    
  2. S’il existe des informations d’identification à l’aide d’un secret associé à la connexion du domaine d’administration SQL Server, supprimez les informations d’identification existantes :

    ALTER LOGIN [<domain>\<login>]
    DROP CREDENTIAL [<existing-credential-name>]
    
  3. Associez les nouvelles informations d’identification à la connexion du domaine d’administration SQL Server :

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

Vous pouvez vérifier la vue de base de données chiffrée pour vérifier le chiffrement de la base de données à l’aide de la requête suivante :

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

Pour plus d’informations sur la configuration d’EKM avec AKV, consultez Configurer sql Server TDE Extensible Key Management à l’aide d’Azure Key Vault.

Messages d’erreur

L'indicateur de trace 4675 peut être utilisé pour vérifier les informations d’identification créées avec une identité gérée. Si l’instruction CREATE CREDENTIAL a été exécutée sans indicateur de trace 4675 activé, aucun message d’erreur n’est émis si l’identité managée principale n’est pas définie pour le serveur. Pour résoudre ce scénario, les informations d’identification doivent être supprimées et recréées une fois l’indicateur de trace activé.

Aucune identité gérée principale n’est assignée

Si une identité managée principale n’est pas affectée à sql Server sur la machine virtuelle Azure, les opérations de sauvegarde et de restauration échouent avec un message d’erreur indiquant que l’identité managée n’est pas sélectionnée.

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).`

La version du connecteur SQL Server ne prend pas en charge l’identité managée pour EKM avec AKV

Si une version précédente du connecteur SQL Server est utilisée, l’erreur suivante se produit lors de l’exécution de l’instruction T-SQL CREATE ASYMMETRIC KEY à l’aide d’informations d’identification du serveur avec une identité managée :

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

Limitations

  • L’identité managée au niveau du serveur est prise en charge uniquement pour SQL Server sur une machine virtuelle Azure, et non sur SQL Server localement. L’identité managée au niveau du serveur n’est pas prise en charge pour Linux.
  • La prise en charge des identités gérées pour EKM avec AKV et la sauvegarde et restauration vers l’URL à l’aide d’identités gérées (et) sont les seuls services Azure qui prennent en charge l'identité gérée pour SQL Server sur les machines virtuelles Azure.
    • La prise en charge des identités managées pour EKM avec AKV nécessite la dernière version du connecteur SQL Server. Veillez à télécharger et installer la dernière version à partir du Centre de téléchargement Microsoft .
  • L’authentification Microsoft Entra ne peut être activée qu’avec une identité managée principale pour SQL Server sur une machine virtuelle Azure. L’identité managée principale est utilisée pour toutes les instances SQL Server sur la machine virtuelle.