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
- Un serveur SQL Server sur une machine virtuelle Azure avec SQL Server 2022 CU17 ou version ultérieure, configuré avec l’authentification Microsoft Entra.
- Un coffre de clés Azure et une clé créée dans celui-ci. Pour plus d’informations, consultez Créer un coffre de clés.
- Les identités managées sont prises en charge pour EKM avec AKV. L'identité managée principale pour SQL Server sur une machine virtuelle Azure est nécessaire :
- Pour se voir attribuer une identité gérée assignée par l’utilisateur ou une identité gérée assignée par le système. Pour plus d’informations, consultez Configurer des identités managées sur des machines virtuelles Azure et Activer l’authentification Microsoft Entra.
- Pour avoir le rôle
Key Vault Crypto Service Encryption User
pour l’identité managée principale assignée au coffre de clés si vous utilisez le contrôle d’accès basé sur les rôles Azure ou les permissions Dépliage de clé et Enveloppement de clé si vous utilisez la stratégie d’accès au coffre.
- Téléchargez la dernière version du connecteur SQL Server à partir du Centre de téléchargement Microsoft .
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 :
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
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>]
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.
- 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.