Zum Hauptinhalt springen

Erste Schritte

Gilt für:
SQL Server 2016+Windows Server 2012 R2+Nur WindowsEnterprise / Developer

Ü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​

1

SQL EKM-App in der DuoKey-Plattform erstellen

Erstellen Sie Ihre SQL EKM-Anwendung in der DuoKey-Plattform:

  1. Melden Sie sich bei der DuoKey-Cloud-Plattform an
  2. Navigieren Sie zum Bereich Apps
  3. Klicken Sie auf „Create New APP"
  4. Wählen Sie „DuoKey for SQL" und klicken Sie auf „Install Now"
  5. Geben Sie die erforderlichen Details ein und weisen Sie Rollen zu
  6. Wählen Sie einen Vault für Ihre Schlüssel
  7. Laden Sie die Setup-Datei herunter
  8. Notieren Sie sich den enrolled Agent Key, der mit der Setup-Datei bereitgestellt wird
Tipp

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.

2

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.

  1. Führen Sie die Setup-Datei aus der DuoKey-App aus, um den Provider bereitzustellen
  2. Legen Sie dke_ekm_provider.dll in einem Ordner ab, den der SQL Server-Dienst lesen kann, zum Beispiel C:\Program Files\DKE\EKM (nicht C:\Windows\System32)
  3. Stellen Sie sicher, dass die Provider-Datei config.toml unter C:\ProgramData\DKE\EKM\config.toml vorhanden ist
  4. Stellen Sie sicher, dass die DLL codesigniert ist und ihre Signaturkette auf dem Rechner als vertrauenswürdig eingestuft wird
Wichtig

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.

Hinweis

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.

3

SQL Server konfigurieren

Konfigurieren Sie SQL Server für die Verwendung des DuoKey EKM-Providers:

EKM aktivierenSQL
-- Enable advanced options
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO

-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Kryptografischen Provider registrierenSQL
CREATE CRYPTOGRAPHIC PROVIDER DuoKeyProvider
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GO
Provider-Anmeldedaten erstellenSQL
-- 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
Wichtig

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

Vault-Masterschlüssel öffnenSQL
-- 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
Hinweis

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

Login und TDE-Anmeldedaten aus dem Schlüssel erstellenSQL
-- 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

Ihre erste Datenbank verschlüsseln

Testdatenbank erstellenSQL
-- Create a test database
CREATE DATABASE TestDB;
GO

USE TestDB;
CREATE TABLE Employees (
  ID INT PRIMARY KEY,
  Name VARCHAR(100),
  SSN VARCHAR(11)
);
GO
TDE-Verschlüsselung aktivierenSQL
-- 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
Verschlüsselungsstatus überprüfenSQL
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

Testen und überprüfen

Datenoperationen testenSQL
-- 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
Tipp

Wenn encryption_state = 3 ist, ist Ihre Datenbank vollständig verschlüsselt und durch DuoKey geschützt.

Kurzreferenz zur Fehlerbehebung​

Häufige Probleme & Lösungen

ProblemSchnelle Lösung
EKM nicht aktiviertsp_configure 'EKM provider enabled', 1; RECONFIGURE;
Schlüssel kann nicht geöffnet werdenStellen Sie sicher, dass PROVIDER_KEY_NAME mit dem bereitgestellten Masterschlüssel übereinstimmt, und verwenden Sie CREATION_DISPOSITION = OPEN_EXISTING
Provider lässt sich nicht ladenStellen Sie sicher, dass die DLL signiert und vertrauenswürdig ist und der Pfad in FROM FILE vom SQL Server-Dienst lesbar ist
DLL nicht gefundenStellen Sie sicher, dass sich dke_ekm_provider.dll im Installationsordner befindet, z. B. C:\Program Files\DKE\EKM
VerbindungsfehlerPrüfen Sie die Netzwerkverbindung zu DuoKey (Port 443) und die config.toml unter C:\ProgramData\DKE\EKM
Fehler bei den AnmeldedatenStellen Sie sicher, dass das SECRET der enrolled Agent Key aus der Setup-Datei ist

Wie geht es weiter?​

Zusammenfassung​

Was Sie erreicht haben

SQL EKM-App erstelltIn der DuoKey-Plattform
EKM-Provider installiertAuf dem SQL Server
SQL Server konfiguriertFür externe Schlüsselverwaltung
Datenbank verschlüsseltMit TDE und DuoKey