Erste Schritte
Erste Schritte mit SQL EKM
Schnellstart-Anleitung zur Verschlüsselung Ihrer ersten Datenbank mit DuoKey EKM
Überblick
DuoKey SQL EKM bietet externe Schlüsselverwaltung für Microsoft SQL Server Transparent Data Encryption (TDE). Dieser Leitfaden führt Sie durch die wesentlichen Schritte zur Verschlüsselung Ihrer ersten Datenbank.
Voraussetzungen
- Microsoft SQL Server 2016 oder neuer (Enterprise- oder Developer-Edition unter Windows)
- Windows Server 2012 R2 oder neuer (oder Windows 10/11 für die Entwicklung)
- Administratorrechte auf dem SQL Server-Rechner
- SQL Server Management Studio (SSMS) installiert
- Zugriff auf die DuoKey-Cloud-Plattform
- Netzwerkverbindung (HTTPS-Port 443) zur DuoKey-Plattform
- Die EKM-Provider-DLL ist Authenticode-signiert und ihre Signaturkette wird auf dem Rechner als vertrauenswürdig eingestuft
- Die Provider-Datei config.toml ist unter C:\ProgramData\DKE\EKM\config.toml vorhanden
Schnellstart-Schritte
SQL EKM-App in der DuoKey-Plattform erstellen
Erstellen Sie Ihre SQL EKM-Anwendung in der DuoKey-Plattform:
- Melden Sie sich bei der DuoKey-Cloud-Plattform an
- Navigieren Sie zum Bereich Apps
- Klicken Sie auf „Create New APP"
- Wählen Sie „DuoKey for SQL" und klicken Sie auf „Install Now"
- Geben Sie die erforderlichen Details ein und weisen Sie Rollen zu
- Wählen Sie einen Vault für Ihre Schlüssel
- Laden Sie die Setup-Datei herunter
- Notieren Sie sich den enrolled Agent Key, der mit der Setup-Datei bereitgestellt wird
Bewahren Sie die Setup-Datei und den zugehörigen enrolled Agent Key sicher auf – der Agent Key ist der einzige Wert, mit dem sich SQL Server bei DuoKey authentifiziert.
EKM-Provider auf dem SQL Server installieren
Stellen Sie den DuoKey EKM-Provider auf Ihrem SQL Server bereit. Der Provider ist eine einzelne Authenticode-signierte DLL, dke_ekm_provider.dll, die durch die Setup-Datei aus der DuoKey-App geliefert wird.
- Führen Sie die Setup-Datei aus der DuoKey-App aus, um den Provider bereitzustellen
- Legen Sie
dke_ekm_provider.dllin einem Ordner ab, den der SQL Server-Dienst lesen kann, zum BeispielC:\Program Files\DKE\EKM(nichtC:\Windows\System32) - Stellen Sie sicher, dass die Provider-Datei
config.tomlunterC:\ProgramData\DKE\EKM\config.tomlvorhanden ist - Stellen Sie sicher, dass die DLL codesigniert ist und ihre Signaturkette auf dem Rechner als vertrauenswürdig eingestuft wird
SQL Server verweigert das Laden einer unsignierten EKM-DLL. Der Provider muss Authenticode-signiert sein und seine Signaturkette muss auf dem SQL Server-Rechner als vertrauenswürdig eingestuft werden, bevor er registriert werden kann.
Der Provider ist eine einzelne DLL. Es sind keine separaten Hilfsbibliotheken zu installieren und keine Registrierungsschlüssel zu konfigurieren – alle Verbindungseinstellungen befinden sich in config.toml, die von der Setup-Datei geliefert wird.
SQL Server konfigurieren
Konfigurieren Sie SQL Server für die Verwendung des DuoKey EKM-Providers:
-- 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;
GODas SECRET ist der einzelne enrolled Agent Key aus Ihrer Setup-Datei – ersetzen Sie <agent-key> durch diesen Wert. Die IDENTITY ist lediglich eine Bezeichnung; sie kann ein beliebiger Name Ihrer Wahl sein.
-- 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;
GODer RSA-2048-Masterschlüssel ist im DuoKey-Vault vorab bereitgestellt und verlässt diesen niemals. Verwenden Sie CREATION_DISPOSITION = OPEN_EXISTING, um auf den vorhandenen Schlüssel zu verweisen – erstellen Sie keinen neuen.
-- 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;
GOIhre erste Datenbank verschlüsseln
-- 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';
GOTesten und überprüfen
-- 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';
GOWenn encryption_state = 3 ist, ist Ihre Datenbank vollständig verschlüsselt und durch DuoKey geschützt.
Kurzreferenz zur Fehlerbehebung
Häufige Probleme & Lösungen
| Problem | Schnelle Lösung |
|---|---|
| EKM nicht aktiviert | sp_configure 'EKM provider enabled', 1; RECONFIGURE; |
| Schlüssel kann nicht geöffnet werden | Stellen Sie sicher, dass PROVIDER_KEY_NAME mit dem bereitgestellten Masterschlüssel übereinstimmt, und verwenden Sie CREATION_DISPOSITION = OPEN_EXISTING |
| Provider lässt sich nicht laden | Stellen Sie sicher, dass die DLL signiert und vertrauenswürdig ist und der Pfad in FROM FILE vom SQL Server-Dienst lesbar ist |
| DLL nicht gefunden | Stellen Sie sicher, dass sich dke_ekm_provider.dll im Installationsordner befindet, z. B. C:\Program Files\DKE\EKM |
| Verbindungsfehler | Prüfen Sie die Netzwerkverbindung zu DuoKey (Port 443) und die config.toml unter C:\ProgramData\DKE\EKM |
| Fehler bei den Anmeldedaten | Stellen Sie sicher, dass das SECRET der enrolled Agent Key aus der Setup-Datei ist |
Wie geht es weiter?
Sicherung & Wiederherstellung
Verschlüsselte Datenbanken sichern und auf anderen Servern wiederherstellen
Schlüsselrotation
Verschlüsselungsschlüssel für mehr Sicherheit rotieren
Deinstallation
Den EKM-Provider ordnungsgemäß entfernen