Zum Hauptinhalt springen

SQL Server konfigurieren

Gilt für:
SQL Server 2016+SSMS erforderlichSysadmin-Rechte

Überblick​

Dieser Leitfaden erklärt, wie Sie Microsoft SQL Server für die Verwendung des DuoKey EKM-Providers für Transparent Data Encryption (TDE) konfigurieren. Die Konfiguration besteht aus zwei Teilen: einer einmaligen Einrichtung der Provider-Verbindungsdatei auf dem Host und den SQL-Schritten, die EKM aktivieren, den Provider registrieren, Anmeldedaten erstellen und den Masterschlüssel öffnen.

Provider-Konfigurationsdatei​

Bevor Sie SQL-Befehle ausführen, vervollständigen Sie die config.toml, die Sie während der Installation nach C:\ProgramData\DKE\EKM\ bereitgestellt haben. Sie enthält die Verbindungseinstellungen, die der Provider verwendet, um die DuoKey-Plattform zu erreichen.

C:\ProgramData\DKE\EKM\config.tomlTOML
# 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"
Keystore-Persistenz

Neben config.toml pflegt der Provider im selben Ordner eine keystore.json. Sie ordnet den asymmetrischen SQL-Schlüssel dem DuoKey-Schlüssel zu, sodass TDE-geschützte Datenbanken nach einem Neustart des SQL Server-Dienstes automatisch wieder geöffnet werden. Löschen Sie sie nicht, solange Datenbanken verschlüsselt sind.

Voraussetzungen

  • SQL EKM-App in der DuoKey-Plattform erstellt
  • EKM-Provider-Bibliothek und config.toml auf dem Host bereitgestellt
  • Agent Key aus der SQL EKM-App
  • SQL Server Management Studio (SSMS) installiert
  • Sysadmin-Rechte auf dem SQL Server

Konfigurationsschritte​

1

EKM-Provider-Unterstützung aktivieren

Aktivieren Sie zunächst Extensible Key Management in SQL Server. Öffnen Sie SSMS und führen Sie aus:

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

-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Tipp

Dieser Schritt ist nur einmal pro SQL Server-Instanz erforderlich.

2

Kryptografischen Provider erstellen

Registrieren Sie die DuoKey EKM-Provider-Bibliothek aus dem Ordner, in dem Sie sie bereitgestellt haben.

Provider erstellenSQL
CREATE CRYPTOGRAPHIC PROVIDER DkeEkm
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GO
Signatur erforderlich

Die Bibliothek muss mit einer auf diesem Rechner vertrauenswürdigen Kette codesigniert sein. Ist die Signatur nicht vertrauenswürdig, schlägt dieser Befehl fehl und SQL Server lädt den Provider nicht. Siehe den Installationsleitfaden zum Überprüfen der Signatur.

3

Provider-Anmeldedaten erstellen

Erstellen Sie Anmeldedaten, die den Agent Key enthalten, mit dem sich der Provider bei DuoKey authentifiziert.

Anmeldedaten erstellenSQL
CREATE CREDENTIAL DkeEkmCredential
WITH IDENTITY = 'DuoKey EKM',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DkeEkm;
GO
ParameterBeschreibung
IDENTITYEine frei wählbare Bezeichnung für die Anmeldedaten. Sie wird nicht gegen die Plattform validiert.
SECRETDer einzelne Agent-Key-Wert aus Ihrer SQL EKM-App.
Ein einzelner Geheimniswert

Das SECRET ist ein einzelner Wert – der Agent Key. Es gibt keine Client ID, kein Client Secret und kein Passwort zu kombinieren und kein Trennzeichenformat zu befolgen.

4

Anmeldedaten einem Login zuordnen

Ordnen Sie die Anmeldedaten dem Login zu, der die verschlüsselten Datenbanken verwalten wird.

Anmeldedaten zuordnenSQL
ALTER LOGIN [sa]
ADD CREDENTIAL DkeEkmCredential;
GO
Tipp

Verwenden Sie den Login, der TDE administriert, typischerweise ein Sysadmin-Konto.

Den TDE-Masterschlüssel öffnen​

Der TDE-Masterschlüssel befindet sich in DuoKey. Sie öffnen von SQL Server aus einen Verweis darauf, anstatt lokal einen neuen Schlüssel zu generieren.

1

Den vorhandenen asymmetrischen Schlüssel öffnen

Masterschlüssel aus dem Provider öffnenSQL
USE master;
CREATE ASYMMETRIC KEY TDE_Master
FROM PROVIDER DkeEkm
WITH PROVIDER_KEY_NAME = 'TDE_MASTER',
CREATION_DISPOSITION = OPEN_EXISTING;
GO
ParameterBeschreibung
PROVIDER_KEY_NAMEDer Name des Schlüssels in der DuoKey-Plattform.
CREATION_DISPOSITIONOPEN_EXISTING verweist auf den bereits in DuoKey bereitgestellten Schlüssel.
Öffnen, nicht erstellen

Verwenden Sie CREATION_DISPOSITION = OPEN_EXISTING und geben Sie WITH ALGORITHM nicht an. Der Masterschlüssel wird in DuoKey bereitgestellt; SQL Server öffnet lediglich ein Handle darauf.

2

Einen Login aus dem asymmetrischen Schlüssel erstellen

Erstellen Sie einen Login, der durch den Masterschlüssel gedeckt ist, und ordnen Sie ihm die Provider-Anmeldedaten zu. Dies ist der Engine-Login, über den TDE den Schlüssel erreicht.

Engine-Login erstellen und Anmeldedaten zuordnenSQL
USE master;
CREATE LOGIN TDE_Master_Login
FROM ASYMMETRIC KEY TDE_Master;
GO

ALTER LOGIN TDE_Master_Login
ADD CREDENTIAL DkeEkmCredential;
GO

Überprüfung​

Überprüfen Sie Ihre Konfiguration mit diesen Abfragen.

Kryptografischen Provider überprüfenSQL
SELECT
  name,
  guid,
  is_enabled
FROM sys.cryptographic_providers;
GO
Anmeldedaten überprüfenSQL
SELECT
  name,
  credential_identity
FROM sys.credentials
WHERE name = 'DkeEkmCredential';
GO
Prüfen, ob der Masterschlüssel an den Provider gebunden istSQL
USE 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';
GO
Tipp

Wenn der Join eine Zeile mit aktiviertem Provider zurückgibt, hat SQL Server den Masterschlüssel erfolgreich über DuoKey geöffnet und Sie können TDE für eine Datenbank aktivieren.

Bewährte Vorgehensweisen​

Sicherheit

  • Zugriff auf die EKM-Anmeldedaten auf Sysadmins beschränken
  • config.toml mit strengen Ordner-ACLs schützen
  • SQL Server-Auditing aktivieren
  • Regelmäßige Rotation des Agent Keys einplanen

Leistung

  • Stabile Netzwerkverbindung zu DuoKey sicherstellen
  • Latenz der Schlüsseloperationen überwachen
  • Die Uhr des Hosts synchron halten

Wartung

  • Die gesamte Konfiguration dokumentieren
  • Notfallwiederherstellung regelmäßig testen
  • keystore.json aufbewahren, solange Datenbanken verschlüsselt sind

Fehlerbehebung​

Nächste Schritte​