Configurer SQL Server
Configurer SQL Server
Préparer Microsoft SQL Server à utiliser le fournisseur EKM DuoKey pour le TDE
Vue d'ensemble
Ce guide explique comment configurer Microsoft SQL Server pour utiliser le fournisseur EKM DuoKey avec le chiffrement transparent des données (Transparent Data Encryption, TDE). La configuration comporte deux parties : une préparation ponctuelle du fichier de connexion du fournisseur sur l'hôte, puis les étapes SQL qui activent EKM, enregistrent le fournisseur, créent un identifiant et ouvrent la clé maître.
Fichier de configuration du fournisseur
Avant d'exécuter la moindre commande SQL, complétez le fichier config.toml que vous avez déployé dans C:\ProgramData\DKE\EKM\ lors de l'installation. Il contient les paramètres de connexion que le fournisseur utilise pour joindre la plateforme DuoKey.
# DuoKey endpoint
server_url = "https://<cockpit-host>"
# Tenant and application identifiers from your SQL EKM App
tenant_id = "<tenant-id>"
app_id = "<app-id>"
# Agent key used by the provider to authenticate (single value)
agent_key = "<agent-key>"
# Optional: mutual TLS
# client_cert_path = "C:\\ProgramData\\DKE\\EKM\\client.pem"
# client_key_path = "C:\\ProgramData\\DKE\\EKM\\client.key"Aux côtés de config.toml, le fournisseur gère un fichier keystore.json dans le même dossier. Il associe la clé asymétrique SQL à la clé DuoKey, afin que les bases protégées par TDE se rouvrent automatiquement après un redémarrage du service SQL Server. Ne le supprimez pas tant que des bases sont chiffrées.
Prérequis
- Application SQL EKM créée dans la plateforme DuoKey
- Bibliothèque du fournisseur EKM et config.toml déployés sur l'hôte
- Clé d'agent issue de l'application SQL EKM
- SQL Server Management Studio (SSMS) installé
- Privilèges Sysadmin sur SQL Server
Étapes de configuration
Activer la prise en charge du fournisseur EKM
Commencez par activer la gestion extensible des clés (Extensible Key Management) dans SQL Server. Ouvrez SSMS et exécutez :
-- Enable advanced options
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GOCette étape n'est requise qu'une seule fois par instance SQL Server.
Créer le fournisseur cryptographique
Enregistrez la bibliothèque du fournisseur EKM DuoKey depuis le dossier où vous l'avez déployée.
CREATE CRYPTOGRAPHIC PROVIDER DkeEkm
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GOLa bibliothèque doit être signée par une chaîne de confiance approuvée sur cette machine. Si la signature n'est pas approuvée, cette commande échoue et SQL Server ne chargera pas le fournisseur. Consultez le guide d'installation pour vérifier la signature.
Créer l'identifiant du fournisseur
Créez un identifiant qui porte la clé d'agent utilisée par le fournisseur pour s'authentifier auprès de DuoKey.
CREATE CREDENTIAL DkeEkmCredential
WITH IDENTITY = 'DuoKey EKM',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DkeEkm;
GO| Paramètre | Description |
|---|---|
IDENTITY | Un libellé libre pour l'identifiant. Il n'est pas validé auprès de la plateforme. |
SECRET | La valeur unique de clé d'agent issue de votre application SQL EKM. |
Le SECRET est une seule valeur : la clé d'agent. Il n'y a ni identifiant client, ni secret client, ni mot de passe à combiner, et aucun format de séparateur à respecter.
Associer l'identifiant à une connexion
Associez l'identifiant à la connexion qui gérera les bases chiffrées.
ALTER LOGIN [sa]
ADD CREDENTIAL DkeEkmCredential;
GOUtilisez la connexion qui administre le TDE, généralement un compte sysadmin.
Ouvrir la clé maître TDE
La clé maître TDE réside dans DuoKey. Vous en ouvrez une référence depuis SQL Server plutôt que de générer une nouvelle clé localement.
Ouvrir la clé asymétrique existante
USE master;
CREATE ASYMMETRIC KEY TDE_Master
FROM PROVIDER DkeEkm
WITH PROVIDER_KEY_NAME = 'TDE_MASTER',
CREATION_DISPOSITION = OPEN_EXISTING;
GO| Paramètre | Description |
|---|---|
PROVIDER_KEY_NAME | Le nom de la clé dans la plateforme DuoKey. |
CREATION_DISPOSITION | OPEN_EXISTING référence la clé déjà provisionnée dans DuoKey. |
Utilisez CREATION_DISPOSITION = OPEN_EXISTING et ne spécifiez pas WITH ALGORITHM. La clé maître est provisionnée dans DuoKey ; SQL Server ne fait qu'ouvrir un handle vers celle-ci.
Créer une connexion à partir de la clé asymétrique
Créez une connexion adossée à la clé maître et associez-y l'identifiant du fournisseur. C'est la connexion moteur que le TDE utilise pour atteindre la clé.
USE master;
CREATE LOGIN TDE_Master_Login
FROM ASYMMETRIC KEY TDE_Master;
GO
ALTER LOGIN TDE_Master_Login
ADD CREDENTIAL DkeEkmCredential;
GOVérification
Vérifiez votre configuration à l'aide de ces requêtes.
SELECT
name,
guid,
is_enabled
FROM sys.cryptographic_providers;
GOSELECT
name,
credential_identity
FROM sys.credentials
WHERE name = 'DkeEkmCredential';
GOUSE master;
SELECT
ak.name AS KeyName,
ak.algorithm_desc,
cp.name AS ProviderName,
cp.is_enabled
FROM sys.asymmetric_keys ak
INNER JOIN sys.cryptographic_providers cp
ON ak.cryptographic_provider_guid = cp.guid
WHERE ak.name = 'TDE_Master';
GOSi la jointure renvoie une ligne avec le fournisseur activé, SQL Server a ouvert avec succès la clé maître via DuoKey et vous êtes prêt à activer le TDE sur une base.
Bonnes pratiques
Sécurité
- Limitez l'accès à l'identifiant EKM aux sysadmins
- Protégez config.toml par des ACL de dossier strictes
- Activez l'audit SQL Server
- Planifiez une rotation régulière de la clé d'agent
Performance
- Assurez un réseau stable vers DuoKey
- Surveillez la latence des opérations sur les clés
- Maintenez l'horloge de l'hôte synchronisée
Maintenance
- Documentez toute la configuration
- Testez régulièrement la reprise après sinistre
- Conservez keystore.json tant que des bases sont chiffrées