SQL Server konfigurieren
SQL Server konfigurieren
Richten Sie Microsoft SQL Server für die Verwendung des DuoKey EKM-Providers für TDE ein
Ü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.
# 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"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
EKM-Provider-Unterstützung aktivieren
Aktivieren Sie zunächst Extensible Key Management in SQL Server. Öffnen Sie SSMS und führen Sie aus:
-- Enable advanced options
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
-- Enable EKM provider
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GODieser Schritt ist nur einmal pro SQL Server-Instanz erforderlich.
Kryptografischen Provider erstellen
Registrieren Sie die DuoKey EKM-Provider-Bibliothek aus dem Ordner, in dem Sie sie bereitgestellt haben.
CREATE CRYPTOGRAPHIC PROVIDER DkeEkm
FROM FILE = 'C:\Program Files\DKE\EKM\dke_ekm_provider.dll';
GODie 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.
Provider-Anmeldedaten erstellen
Erstellen Sie Anmeldedaten, die den Agent Key enthalten, mit dem sich der Provider bei DuoKey authentifiziert.
CREATE CREDENTIAL DkeEkmCredential
WITH IDENTITY = 'DuoKey EKM',
SECRET = '<agent-key>'
FOR CRYPTOGRAPHIC PROVIDER DkeEkm;
GO| Parameter | Beschreibung |
|---|---|
IDENTITY | Eine frei wählbare Bezeichnung für die Anmeldedaten. Sie wird nicht gegen die Plattform validiert. |
SECRET | Der einzelne Agent-Key-Wert aus Ihrer SQL EKM-App. |
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.
Anmeldedaten einem Login zuordnen
Ordnen Sie die Anmeldedaten dem Login zu, der die verschlüsselten Datenbanken verwalten wird.
ALTER LOGIN [sa]
ADD CREDENTIAL DkeEkmCredential;
GOVerwenden 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.
Den vorhandenen asymmetrischen Schlüssel öffnen
USE master;
CREATE ASYMMETRIC KEY TDE_Master
FROM PROVIDER DkeEkm
WITH PROVIDER_KEY_NAME = 'TDE_MASTER',
CREATION_DISPOSITION = OPEN_EXISTING;
GO| Parameter | Beschreibung |
|---|---|
PROVIDER_KEY_NAME | Der Name des Schlüssels in der DuoKey-Plattform. |
CREATION_DISPOSITION | OPEN_EXISTING verweist auf den bereits in DuoKey bereitgestellten Schlüssel. |
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.
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.
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.
SELECT
name,
guid,
is_enabled
FROM sys.cryptographic_providers;
GOSELECT
name,
credential_identity
FROM sys.credentials
WHERE name = 'DkeEkmCredential';
GOUSE 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';
GOWenn 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