Aller au contenu principal

Getting Started

S'applique à :
SQL Server 2016+Windows Server 2012 R2+Windows uniquementEnterprise / Developer

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​

1

Créer l'application SQL EKM dans la plateforme DuoKey

Créez votre application SQL EKM dans la plateforme DuoKey :

  1. Connectez-vous à la plateforme cloud DuoKey
  2. Accédez à la section Apps
  3. Cliquez sur « Create New APP »
  4. Sélectionnez « DuoKey for SQL » et cliquez sur « Install Now »
  5. Renseignez les détails requis et attribuez les rôles
  6. Sélectionnez un Vault pour vos clés
  7. Téléchargez le fichier d'installation
  8. Notez la clé d'agent enrôlée fournie avec le fichier d'installation
Astuce

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.

2

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.

  1. Exécutez le fichier d'installation de l'application DuoKey pour déployer le fournisseur
  2. Placez dke_ekm_provider.dll dans un dossier que le service SQL Server peut lire, par exemple C:\Program Files\DKE\EKM (et non C:\Windows\System32)
  3. Vérifiez que le fichier config.toml du fournisseur est présent dans C:\ProgramData\DKE\EKM\config.toml
  4. Vérifiez que la DLL est signée et que sa chaîne de signature est approuvée sur la machine
Important

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é.

Remarque

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.

3

Configurer SQL Server

Configurez SQL Server pour utiliser le fournisseur DuoKey EKM :

Activer l'EKMSQL
-- Enable advanced options
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO

-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Enregistrer le fournisseur cryptographiqueSQL
CREATE CRYPTOGRAPHIC PROVIDER DuoKeyProvider
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GO
Créer l'identifiant du fournisseurSQL
-- 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;
GO
Important

Le 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.

Ouvrir la clé maître du VaultSQL
-- 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;
GO
Remarque

La 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.

Créer un login et un identifiant TDE à partir de la cléSQL
-- 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;
GO
4

Chiffrer votre première base de données

Créer une base de données de testSQL
-- Create a test database
CREATE DATABASE TestDB;
GO

USE TestDB;
CREATE TABLE Employees (
  ID INT PRIMARY KEY,
  Name VARCHAR(100),
  SSN VARCHAR(11)
);
GO
Activer le chiffrement TDESQL
-- 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;
GO
Vérifier l'état du chiffrementSQL
SELECT
  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';
GO
5

Tester et vérifier

Tester les opérations sur les donnéesSQL
-- 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';
GO
Astuce

Lorsque 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èmeSolution 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 pasVé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 introuvableVérifiez que dke_ekm_provider.dll se trouve dans le dossier d'installation, p. ex. C:\Program Files\DKE\EKM
Erreur de connexionVérifiez la connectivité réseau vers DuoKey (port 443) et le fichier config.toml dans C:\ProgramData\DKE\EKM
Erreur d'identifiantVérifiez que le SECRET correspond à la clé d'agent enrôlée du fichier d'installation

Et ensuite ?​

Résumé​

Ce que vous avez accompli

Créé une application SQL EKMDans la plateforme DuoKey
Installé le fournisseur EKMSur SQL Server
Configuré SQL ServerPour la gestion externe des clés
Chiffré une base de donnéesÀ l'aide du TDE avec DuoKey