Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
Dans cet article, vous installez et configurez le connecteur SQL Server pour Azure Key Vault, puis configurez Transparent Data Encryption (TDE) à l’aide d’une clé dans Azure Key Vault.
Prerequisites
Avant de commencer à utiliser Azure Key Vault avec votre instance de SQL Server, assurez-vous que vous remplissez les conditions préalables suivantes :
Vous devez disposer d’un abonnement Azure.
Créer un locataire Microsoft Entra.
Passez en revue les principes du stockage EKM (Extensible Key Management) avec Azure Key Vault. Voir Gestion extensible des clés à l’aide de Azure Key Vault (SQL Server).
Vous pouvez modifier le Registre sur l’ordinateur SQL Server.
Installez la version de Visual Studio C++ Redistribuable basée sur la version de SQL Server que vous exécutez :
Version de SQL Server Version Redistribuable de Visual Studio C++ 2008, 2008 R2, 2012, 2014 Packages redistribuables Visual C++ pour Visual Studio 2013 2016, 2017, 2019, 2022, 2025 Redistributable Visual C++ pour Visual Studio 2015 Lisez l’accès Azure Key Vault derrière un pare-feu si vous envisagez d’utiliser le connecteur SQL Server pour Azure Key Vault derrière un pare-feu ou avec un serveur proxy.
Note
Dans SQL Server 2022 (16.x) CU 12 et versions ultérieures, SQL Server sur Linux prend en charge TDE Extensible Key Management avec Azure Key Vault. Les étapes 3 et 4 de ce guide ne sont pas requises pour SQL Server sur Linux.
Flux rapide
- Sélectionnez un modèle d’authentification à l’étape 1 : configurez le modèle d’authentification.
- Créez un coffre de clés et une clé dans Étape 2 : créer un coffre de clés.
- Installez le connecteur à l’étape 3 : installez le connecteur SQL Server.
- Configurez le prérequis du registre dans l’étape 4 : ajoutez la clé de registre pour prendre en charge le fournisseur EKM.
- Configurez SQL Server et validez le chiffrement à l’étape 5 : Configurer SQL Server.
Étape 1 : Configurer le modèle d’authentification
Important
Choisissez votre modèle d’authentification avant de continuer :
- Utilisez l’onglet Principal du service pour SQL Server localement.
- Utilisez l’onglet Identité managée pour SQL Server sur les machines virtuelles Azure ou les SQL Server activés par Azure Arc, où l’identité managée est prise en charge.
Matrice de prise en charge du modèle d’authentification :
| Modèle d’authentification | Version de SQL Server | Où SQL Server s’exécute | Soutenu |
|---|---|---|---|
| Service Principal | Versions prises en charge couvertes par cet article | Machine virtuelle Azure locale, SQL Server activée par Azure Arc | Oui |
| Identité gérée | SQL Server 2022 CU17 et versions ultérieures | La machine virtuelle Azure | Oui |
| Identité gérée | SQL Server 2025 et versions ultérieures | SQL Server activé par Azure Arc | Oui |
| Identité gérée | Any | On-premises | Non |
Pour accorder à votre instance SQL Server des autorisations d'accès à votre coffre de clés Azure, vous avez besoin d'un compte de principal de service dans Microsoft Entra ID.
Connectez-vous au portail Azure et effectuez l’une des étapes suivantes :
Sélectionnez le bouton Microsoft Entra ID.
Sélectionnez Plus de services, puis, dans le volet Tous les services, saisissez Microsoft Entra ID.
Inscrivez une application auprès de Microsoft Entra ID en procédant comme suit. Pour obtenir des instructions étape par étape, consultez la section Obtenir une identité pour l’application du billet de blog Azure Key Vault, Azure Key Vault – Étape par étape.
Dans la section Gestion de votre ressource Microsoft Entra ID, sélectionnez Inscriptions d’applications.
Sur la page Inscriptions d’applications, sélectionnez Nouvelle inscription.
Dans le volet Inscrire une application, entrez le nom de l'application pour l'utilisateur, puis sélectionnez Inscrire.
Dans le volet gauche, sélectionnez Certificats et secrets>Secrets client>Nouveau secret client.
Sous Ajoutez une clé secrète client, entrez une description et une date d’expiration appropriée, puis sélectionnez Ajouter. Vous ne pouvez pas choisir une période d'expiration supérieure à 24 mois. Pour plus d’informations, consultez Ajouter une clé secrète client.
Dans le volet Certificats et secrets, sous Valeur, sélectionnez le bouton Copier en regard de la valeur de la clé secrète client pour l’utiliser pour créer une clé asymétrique dans SQL Server.
Dans le volet gauche, sélectionnez Vue d’ensemble, puis, dans la zone ID d’application (client), copiez la valeur à utiliser pour créer une clé asymétrique dans SQL Server.
Étape 2 : créer un coffre de clés
Sélectionnez la méthode que vous souhaitez utiliser pour créer un coffre de clés.
Note
Seuls Azure Key Vault et Azure Key Vault Managed HSM sont pris en charge. Azure Cloud HSM n’est pas pris en charge.
Créez un coffre de clés à l’aide du Portail Azure
Pour créer un coffre de clés à l’aide du portail Azure, consultez Démarrage rapide : Créer un coffre de clés à l’aide du portail Azure.
Azure contrôle d’accès en fonction du rôle
Utilisez Azure contrôle d’accès en fonction du rôle (RBAC) pour gérer l’accès au Azure Key Vault. N’utilisez pas de stratégies d’accès héritées. Les stratégies d'accès héritées présentent des vulnérabilités de sécurité connues, ne prennent pas en charge Privileged Identity Management (PIM) et ne doivent pas être utilisées pour les données et charges de travail critiques. Pour plus d’informations sur les autorisations RBAC d’Azure Key Vault, consultez Rôles intégrés Azure pour les opérations du plan de données de Key Vault.
Accédez à la ressource du coffre de clés que vous avez créée, puis sélectionnez le paramètre Contrôle d’accès (IAM).
Sélectionnez Ajouter>Ajouter une attribution de rôle.
L’application EKM ou l’identité managée doit disposer du rôle Utilisateur du chiffrement du service de chiffrement Key Vault pour effectuer des opérations d’encapsulation et de désencapsulation. Rechercher Utilisateur du service de chiffrement Key Vault et sélectionnez le rôle. Sélectionnez Suivant.
Dans l’onglet Membres, sélectionnez l’option Sélectionner les membres, puis recherchez l’application Microsoft Entra ou l’identité managée que vous avez créée à l’étape 1. Sélectionnez l’application ou l’identité managée, puis le bouton Sélectionner .
Sélectionnez Vérifier + attribuer deux fois pour terminer l’attribution de rôle.
Créer une clé
L’utilisateur qui crée la clé a besoin du rôle Administrateur de coffre de clés. Comme pour les étapes précédentes, ajoutez le membre qui crée la clé et attribuez-lui le rôle.
Dans le volet Coffre de clés, sélectionnez Clés, puis l’option Générer/Importer. Cette action ouvre le volet Créer une clé . Sélectionnez l’option Générer et entrez un nom pour la clé. Le connecteur SQL Server exige que le nom de clé utilise uniquement les caractères « a-z », « A-Z », « 0-9 » et « - », avec une limite de 26 caractères.
Utilisez le type de clé RSA et la taille de clé RSA2048. Actuellement, EKM ne prend en charge que les clés RSA. Définissez les dates d’activation et d’expiration comme il convient et définissez Activé sur Oui.
Configurer un HSM managé Azure Key Vault (facultatif)
Azure Key Vault Managed HSM (module de sécurité matérielle) prend en charge SQL Server et SQL Server sur Azure Virtual Machines (VM) lorsque vous utilisez la dernière version du connecteur SQL Server, ainsi qu’Azure SQL. Le HSM géré est un service HSM entièrement géré, hautement disponible et monolocataire. Le HSM managé offre une base sécurisée pour les opérations de chiffrement et le stockage de clés. Le HSM managé est conçu pour répondre aux exigences de sécurité et de conformité les plus strictes.
L’étape 2 montre comment créer un coffre de clés et une clé dans Azure Key Vault. Vous pouvez éventuellement utiliser un HSM managé Azure Key Vault pour stocker ou créer une clé pour le connecteur SQL Server. Suivez ces étapes :
Créez un HSM managé Azure Key Vault à l’aide du portail Azure, de l’Azure CLI, de PowerShell ou d’un modèle ARM.
Activez le HSM managé. Seuls les administrateurs désignés affectés pendant la création peuvent l’activer. Dans le portail Azure, sélectionnez la ressource HSM managée, puis téléchargez le domaine de sécurité dans le menu Vue d’ensemble. Suivez l’un des guides de démarrage rapide pour activer votre HSM managé.
Accordez au principal de service Microsoft Entra ou à l’identité managée les autorisations nécessaires pour accéder au HSM managé. Le rôle Administrateur du HSM managé ne donne pas d’autorisations pour créer une clé. Comme à l’étape 2, l’application EKM ou l’identité managée a besoin du rôle Utilisateur de chiffrement HSM managé ou utilisateur de chiffrement du service de chiffrement HSM managé pour effectuer des opérations de wrap et de décompressage. Pour plus d’informations, consultez Rôles RBAC locaux intégrés pour HSM managé.
Dans le menu du service HSM managé par Azure Key Vault, sous Paramètre, sélectionnez Clés. Dans la fenêtre Clés, sélectionnez Générer/Importer/Restaurer la sauvegarde pour créer une clé ou importer une clé existante.
Note
Les algorithmes RSA-HSM_2048 et RSA-HSM_3072 sont pris en charge à partir de SQL Server 2022 (16.x) Mise à jour cumulative 13.
Azure Key Vault HSM managé prend en charge la rotation automatique des clés. Pour plus d’informations, consultez Configurer la rotation automatique des clés dans Azure Managed HSM.
HSM géré prend en charge les connexions à des points de terminaison privés. Si vous souhaitez obtenir plus d’informations, consultez Intégrer HSM managé avec Azure Private Link. Dans cette configuration, vous devez activer l’option de contournement de service approuvé Microsoft dans le paramètre de mise en réseau HSM managée Azure Key Vault.
Étape 3 : Installer le connecteur SQL Server
Demandez à un administrateur SQL Server de télécharger la dernière version du connecteur SQL Server pour Microsoft Azure Key Vault depuis le Centre de téléchargement Microsoft et d’exécuter le programme d’installation.
Par défaut, le connecteur est installé sur C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Vous pouvez modifier cet emplacement lors de l’installation. Si vous la modifiez, ajustez les scripts dans la section suivante.
Une installation réussie place Microsoft.AzureKeyVaultService.EKM.dll sur l’ordinateur. Ce composant est la DLL du fournisseur EKM cryptographique. Inscrivez-la avec SQL Server à l’aide de l’instructionCREATE CRYPTOGRAPHIC PROVIDER.
Le programme d’installation propose également des exemples de scripts pour le chiffrement SQL Server.
Pour obtenir des explications de code d’erreur, des paramètres de configuration ou des tâches de maintenance, consultez :
- Instructions de maintenance pour le connecteur SQL Server
- Explications de code d’erreur pour le connecteur SQL Server
Étape 4 : Ajouter une clé de Registre pour prendre en charge le fournisseur EKM
Warning
Seul un administrateur SQL Server qui sait exactement ce qu'il fait doit modifier le Registre. Des modifications incorrectes peuvent entraîner des problèmes graves. Sauvegardez le Registre avant d’apporter des modifications afin de pouvoir le restaurer en cas de problème.
Exécutez regedit pour ouvrir l'éditeur du Registre.
Créez une
SQL Server Cryptographic Providerclé de Registre à l’adresseHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.Cliquez avec le bouton droit sur la clé de Registre
SQL Server Cryptographic Provider, puis sélectionnez Autorisations.Accordez un contrôle total sur la
SQL Server Cryptographic Providerclé au compte d’utilisateur exécutant le service SQL Server.
Sélectionnez Apply (Appliquer), puis OK.
Fermez l'Éditeur du Registre et redémarrez le service SQL Server.
Note
Si vous utilisez TDE avec EKM ou Azure Key Vault sur une instance de cluster de basculement, ajoutez également
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Providerà la routine de point de contrôle du registre de cluster afin que le registre soit synchronisé entre les nœuds, ce qui facilite la récupération de la base de données après le basculement et la rotation des clés.Exécutez la commande PowerShell suivante pour ajouter la clé de Registre à la routine de point de contrôle :
Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
Étape 5 : Configurer SQL Server
Pour une remarque sur les niveaux d’autorisation minimaux nécessaires pour chaque action de cette section, voir B. Questions fréquentes.
Phase 1 : Configurer le fournisseur de chiffrement et les informations d’identification dans master
Choisissez votre modèle d’authentification et suivez les étapes correspondantes.
Exécutez sqlcmd ou ouvrez SQL Server Management Studio.
Configurez SQL Server pour utiliser EKM en exécutant le script Transact-SQL suivant :
-- Enable advanced options. USE master; GO EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXEC sp_configure 'EKM provider enabled', 1; GO RECONFIGURE;Enregistrez le connecteur SQL Server en tant que fournisseur EKM avec SQL Server.
Créez un fournisseur de services de chiffrement à l’aide du connecteur SQL Server, qui est un fournisseur EKM pour Azure Key Vault. Dans cet exemple, le nom du fournisseur est
AzureKeyVault_EKM.CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'; GONote
Le chemin d’accès ne peut pas dépasser 256 caractères.
Configurez des identifiants SQL Server pour un compte de connexion SQL Server afin d'utiliser le coffre de clés.
Ajoutez des informations d’identification à chaque connexion qui effectue le chiffrement à l’aide d’une clé à partir du coffre de clés. Il existe un mappage un-à-un entre les informations d’identification et les connexions. Chaque connexion doit avoir des informations d’identification uniques.
Modifiez ce script Transact-SQL de la manière suivante :
Modifiez l’argument
IDENTITY(DocsSampleEKMKeyVault) de sorte qu’il pointe vers votre coffre Azure Key Vault.- Si vous utilisez Azure global, remplacez l’argument
IDENTITYpar le nom de votre Azure Key Vault de l’Étape 2 : Créer un coffre de clés. - Si vous utilisez un cloud de Azure privé (par exemple, Azure Government, Microsoft Azure géré par 21Vianet ou Azure Allemagne), remplacez l
IDENTITY'argument par l'URI du coffre retourné dans Créer un coffre de clés et une clé à l'aide de PowerShell. N’incluez pashttps://dans l’URI du coffre de clés.
- Si vous utilisez Azure global, remplacez l’argument
Remplacez la première partie de l’argument
SECRETpar l’ID client Microsoft Entra de l’étape 1 : configurez le modèle d’authentification. Dans cet exemple, l’ID client estd956f6b9xxxxxxx.Important
Supprimez les traits d’union de l’ID d’application (client).
Terminez la deuxième partie de l’argument
SECRETavec le secret client de l’étape 1. La chaîne finale est une longue séquence de lettres et de chiffres sans traits d’union (à l’exception des traits d’union dans la clé secrète client elle-même).
USE master; CREATE CREDENTIAL sysadmin_ekm_cred -- Set IDENTITY to the vault name (public Azure) or full vault hostname without https:// (sovereign clouds / Managed HSM) -- See https://dotnet.territoriali.olinfo.it/azure/key-vault/general/about-keys-secrets-certificates#dns-suffixes-for-base-url WITH IDENTITY = 'DocsSampleEKMKeyVault', --<----Application (Client) ID ---><--Microsoft Entra app (Client) ID secret--> SECRET = 'd956f6b9xxxxxxxyrA8X~PldtMCvUZPxxxxxxxx' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM; -- Add the credential to the SQL Server administrator's domain login ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL sysadmin_ekm_cred;Pour obtenir un exemple d’utilisation de variables et de suppression programmatique des traits d’union de l’ID client, consultez CREATE CREDENTIAL.
Ouvrez la clé Azure Key Vault dans votre instance de SQL Server.
Que vous ayez créé une clé ou importé une clé asymétrique à l’étape 2 : Créez un coffre de clés, ouvrez la clé dans SQL Server à l’aide
CREATE ASYMMETRIC KEYde .Important
Remplissez les conditions préalables au Registre avant d’effectuer cette étape.
Dans les exemples suivants :
- Remplacez
EKMSampleASYKeypar le nom que vous souhaitez utiliser dans SQL Server. - Remplacez
ContosoRSAKey0par le nom de votre clé dans Azure Key Vault ou le HSM managé.
Utilisez un nom de clé sans version (recommandé pour la plupart des scénarios) :
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0', CREATION_DISPOSITION = OPEN_EXISTING;Utilisez une version spécifique d’une clé lorsque vous devez épingler des opérations à une version :
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379', CREATION_DISPOSITION = OPEN_EXISTING;Dans cet exemple,
1a4d3b9b393c4678831ccc60def75379est la version de clé spécifique que SQL Server utilise pour les opérations de base de données.- Remplacez
Créez une connexion à l'aide de la clé asymétrique dans SQL Server que vous avez créée à l'étape précédente.
-- Create a login that associates the asymmetric key with this login CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY EKMSampleASYKey;Déplacez le mappage des informations d’identification de la connexion administrateur d’origine vers la connexion créée à partir de la clé asymétrique.
SQL Server utilise la connexion créée à partir de la clé asymétrique (
TDE_Login) pour les opérations EKM. Pour vous assurer que SQL Server puisse accéder à Azure Key Vault pendant les opérations de chiffrement et de récupération, associez les informations d’identification àTDE_Loginau lieu du compte de connexion d’installation d’origine.-- Remove the service principal credential from the original setup login ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL sysadmin_ekm_cred; -- Map the service principal credential to the login created from the asymmetric key ALTER LOGIN TDE_Login ADD CREDENTIAL sysadmin_ekm_cred;
Phase 2 : Chiffrer et valider la base de données utilisateur
Configurer la base de données utilisateur à chiffrer
Créez une base de données de test à chiffrer à l’aide de la clé Azure Key Vault.
-- Create a test database for the TDE example. CREATE DATABASE TestTDE;Créez une clé de chiffrement de base de données à l’aide de la clé asymétrique du serveur (
EKMSampleASYKey).USE TestTDE; -- Create a DEK protected by the EKM asymmetric key. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;Activez TDE sur la base de données en définissant
ENCRYPTION ON.-- Enable TDE for the database. ALTER DATABASE TestTDE SET ENCRYPTION ON;
Vérifier l’utilisation des clés et l’état du chiffrement
Dans la
masterbase de données, exécutez la requête Transact-SQL suivante pour vérifier que la clé asymétrique EKM existe et capturez son empreinte numérique.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;L’instruction retourne une sortie similaire à ce qui suit :
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>Dans la base de données utilisateur (
TestTDE), exécutez la requête Transact-SQL suivante pour vérifier que TDE est activé et que la clé de chiffrement de base de données est protégée par une clé asymétrique.SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestTDE');L’instruction retourne une sortie similaire à ce qui suit :
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>Vérifiez que
encryptor_thumbprintcorrespond à l’empreinte renvoyée parsys.asymmetric_keys. Une incompatibilité indique généralement que la clé de chiffrement de base de données est protégée par une clé différente de celle attendue.
Nettoyage
Utilisez les étapes de nettoyage qui correspondent au modèle d’authentification que vous avez configuré.
Nettoyez les objets de test que vous avez créés dans cette procédure.
-- CLEAN UP: shared objects + service principal credential USE master; GO ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [TestTDE]; GO DROP LOGIN [TDE_Login]; GO DROP ASYMMETRIC KEY [EKMSampleASYKey]; DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM]; GO DROP CREDENTIAL [sysadmin_ekm_cred]; GOVérifiez si vous devez supprimer la clé de
SQL Server Cryptographic ProviderRegistre.Important
La
SQL Server Cryptographic Providerclé de Registre n'est pas supprimée automatiquement après la suppression des clés EKM.Supprimez cette clé de Registre uniquement lorsque vous n’avez plus besoin d’EKM sur l’instance. Le supprimer trop tôt peut perturber le fonctionnement d’EKM et les opérations de récupération.
Chemin du registre :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
Faire pivoter des clés asymétriques pour TDE avec Azure Key Vault
Utilisez un guide opérationnel dédié pour les étapes de rotation clés, notamment les scripts spécifiques à l’authentification, la vérification et les vérifications de sécurité :
Important
Ne supprimez pas les versions précédentes de la clé après une rotation. Les versions antérieures peuvent toujours être requises pour restaurer des sauvegardes, des fichiers journaux et des artefacts de récupération plus anciens.