Getting Started
Prise en main de SQL EKM
Guide de démarrage rapide pour chiffrer votre première base de données avec DuoKey EKM
Vue d'ensemble
DuoKey SQL EKM fournit une gestion externe des clés pour le chiffrement transparent des données (TDE) de Microsoft SQL Server. Ce guide vous accompagne à travers les étapes essentielles pour chiffrer votre première base de données.
Prérequis
- Microsoft SQL Server 2016 ou version ultérieure (édition Enterprise ou Developer sous Windows)
- Windows Server 2012 R2 ou version ultérieure (ou Windows 10/11 pour le développement)
- Privilèges d'administrateur sur la machine SQL Server
- SQL Server Management Studio (SSMS) installé
- Accès à la plateforme cloud DuoKey
- Connectivité réseau (HTTPS port 443) vers la plateforme DuoKey
- La DLL du fournisseur EKM est signée avec Authenticode et sa chaîne de signature est approuvée sur la machine
- Le fichier config.toml du fournisseur est présent dans C:\ProgramData\DKE\EKM\config.toml
Étapes de démarrage rapide
Créer l'application SQL EKM dans la plateforme DuoKey
Créez votre application SQL EKM dans la plateforme DuoKey :
- Connectez-vous à la plateforme cloud DuoKey
- Accédez à la section Apps
- Cliquez sur « Create New APP »
- Sélectionnez « DuoKey for SQL » et cliquez sur « Install Now »
- Renseignez les détails requis et attribuez les rôles
- Sélectionnez un Vault pour vos clés
- Téléchargez le fichier d'installation
- Notez la clé d'agent enrôlée fournie avec le fichier d'installation
Conservez le fichier d'installation et sa clé d'agent enrôlée en lieu sûr : la clé d'agent est l'unique valeur que SQL Server utilise pour s'authentifier auprès de DuoKey.
Installer le fournisseur EKM sur SQL Server
Déployez le fournisseur DuoKey EKM sur votre SQL Server. Le fournisseur est une DLL unique signée avec Authenticode, dke_ekm_provider.dll, livrée par le fichier d'installation de l'application DuoKey.
- Exécutez le fichier d'installation de l'application DuoKey pour déployer le fournisseur
- Placez
dke_ekm_provider.dlldans un dossier que le service SQL Server peut lire, par exempleC:\Program Files\DKE\EKM(et nonC:\Windows\System32) - Vérifiez que le fichier
config.tomldu fournisseur est présent dansC:\ProgramData\DKE\EKM\config.toml - Vérifiez que la DLL est signée et que sa chaîne de signature est approuvée sur la machine
SQL Server refuse de charger une DLL EKM non signée. Le fournisseur doit être signé avec Authenticode et sa chaîne de signature approuvée sur la machine SQL Server avant de pouvoir être enregistré.
Le fournisseur est une DLL unique. Il n'y a aucune bibliothèque annexe à installer, ni aucune clé de registre à configurer : tous les paramètres de connexion résident dans config.toml, que le fichier d'installation livre.
Configurer SQL Server
Configurez SQL Server pour utiliser le fournisseur DuoKey EKM :
-- Enable advanced options
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GOCREATE CRYPTOGRAPHIC PROVIDER DuoKeyProvider
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GO-- Create provider credential (SECRET is the enrolled agent key from the setup file)
CREATE CREDENTIAL DuoKeyCredential
WITH IDENTITY = 'dke-ekm-service',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Map credential to login
ALTER LOGIN [sa]
ADD CREDENTIAL DuoKeyCredential;
GOLe SECRET est l'unique clé d'agent enrôlée de votre fichier d'installation : remplacez <agent-key> par cette valeur. L'IDENTITY n'est qu'une étiquette ; il peut s'agir de n'importe quel nom de votre choix.
-- Open the pre-provisioned RSA-2048 master key that lives in the DuoKey vault.
-- PROVIDER_KEY_NAME must match the master key name provisioned for your app.
USE master;
CREATE ASYMMETRIC KEY SQL_EKM_Key
FROM PROVIDER DuoKeyProvider
WITH PROVIDER_KEY_NAME = 'TDE_MASTER',
CREATION_DISPOSITION = OPEN_EXISTING;
GOLa clé maître RSA-2048 est pré-provisionnée dans le Vault DuoKey et n'en sort jamais. Utilisez CREATION_DISPOSITION = OPEN_EXISTING pour référencer la clé existante : n'en créez pas de nouvelle.
-- Create a login mapped to the asymmetric key (used by TDE)
CREATE LOGIN SQL_EKM_Login
FROM ASYMMETRIC KEY SQL_EKM_Key;
GO
-- Create the TDE credential (SECRET is again the enrolled agent key)
CREATE CREDENTIAL SQL_EKM_TdeCred
WITH IDENTITY = 'dke-ekm-tde',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DuoKeyProvider;
GO
-- Map the TDE credential to the key login
ALTER LOGIN SQL_EKM_Login
ADD CREDENTIAL SQL_EKM_TdeCred;
GOChiffrer votre première base de données
-- Create a test database
CREATE DATABASE TestDB;
GO
USE TestDB;
CREATE TABLE Employees (
ID INT PRIMARY KEY,
Name VARCHAR(100),
SSN VARCHAR(11)
);
GO-- Create Database Encryption Key
USE TestDB;
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER ASYMMETRIC KEY SQL_EKM_Key;
GO
-- Enable encryption
ALTER DATABASE TestDB
SET ENCRYPTION ON;
GOSELECT
DB_NAME(database_id) AS DatabaseName,
encryption_state,
CASE encryption_state
WHEN 3 THEN 'Encrypted'
WHEN 2 THEN 'Encryption in progress'
ELSE 'Other'
END AS Status,
percent_complete
FROM sys.dm_database_encryption_keys
WHERE DB_NAME(database_id) = 'TestDB';
GOTester et vérifier
-- Insert test data
USE TestDB;
INSERT INTO Employees (ID, Name, SSN)
VALUES (1, 'John Doe', '123-45-6789');
GO
-- Query data (works transparently)
SELECT * FROM Employees;
GO
-- Final verification
SELECT
d.name AS DatabaseName,
d.is_encrypted,
dek.encryption_state
FROM sys.databases d
LEFT JOIN sys.dm_database_encryption_keys dek
ON d.database_id = dek.database_id
WHERE d.name = 'TestDB';
GOLorsque encryption_state = 3, votre base de données est entièrement chiffrée et protégée par DuoKey.
Référence rapide de résolution des problèmes
Problèmes courants et solutions
| Problème | Solution rapide |
|---|---|
| EKM non activé | sp_configure 'EKM provider enabled', 1; RECONFIGURE; |
| Impossible d'ouvrir la clé | Vérifiez que PROVIDER_KEY_NAME correspond à la clé maître provisionnée et utilisez CREATION_DISPOSITION = OPEN_EXISTING |
| Le fournisseur ne se charge pas | Vérifiez que la DLL est signée et approuvée, et que le chemin de FROM FILE est lisible par le service SQL Server |
| DLL introuvable | Vérifiez que dke_ekm_provider.dll se trouve dans le dossier d'installation, p. ex. C:\Program Files\DKE\EKM |
| Erreur de connexion | Vérifiez la connectivité réseau vers DuoKey (port 443) et le fichier config.toml dans C:\ProgramData\DKE\EKM |
| Erreur d'identifiant | Vérifiez que le SECRET correspond à la clé d'agent enrôlée du fichier d'installation |
Et ensuite ?
Sauvegarde et restauration
Sauvegardez les bases de données chiffrées et restaurez-les sur d'autres serveurs
Rotation des clés
Effectuez la rotation des clés de chiffrement pour renforcer la sécurité
Désinstallation
Supprimez correctement le fournisseur EKM