Bereitstellen von Always Encrypted-Schlüsseln mithilfe von SQL Server Management Studio
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Dieser Artikel enthält die Schritte zum Bereitstellen von Spaltenhauptschlüsseln und Spaltenverschlüsselungsschlüsseln für Always Encrypted mithilfe von SQL Server Management Studio (SSMS). Stellen Sie sicher, dass Sie beim Bereitstellen von Schlüsseln die neueste allgemeine Verfügbarkeitsversion (GA) von SSMS installieren.
Einen Überblick über die Always Encrypted-Schlüsselverwaltung einschließlich bewährter Methoden und wichtiger Sicherheitsüberlegungen finden Sie unter Übersicht der Schlüsselverwaltung für Always Encrypted.
Bereitstellen von Spaltenhauptschlüsseln mit dem Dialogfeld „Neuer Spaltenhauptschlüssel“
Mit dem Dialogfeld Neuer Spaltenhauptschlüssel können Sie einen Spaltenhauptschlüssel generieren oder einen vorhandenen Schlüssel aus einem Schlüsselspeicher auswählen sowie Spaltenhauptschlüssel-Metadaten zu dem erstellten oder ausgewählten Schlüssel in der Datenbank erstellen.
Navigieren Sie über den Objekt-Explorer zu dem Knoten Sicherheit -> Always Encrypted-Schlüssel in Ihrer Datenbank.
Klicken Sie mit der rechten Maustaste auf den Knoten Spaltenhauptschlüssel, und wählen Sie Neuer Spaltenhauptschlüssel...aus.
Geben Sie im Dialogfeld Neuer Spaltenhauptschlüssel den Namen des Spaltenhauptschlüssel-Metadatenobjekts ein.
Wählen Sie einen Schlüsselspeicher aus:
Zertifikatspeicher – Aktueller Benutzer: Gibt den Zertifikatspeicherort des aktuellen Benutzers im Windows-Zertifikatspeicher an, der Ihrem persönlichen Zertifikatspeicher entspricht.
Zertifikatspeicher – Lokaler Computer: Gibt den Zertifikatspeicherort des lokalen Computers im Windows-Zertifikatspeicher an.
Azure Key Vault: Sie müssen sich bei Azure anmelden (klicken Sie auf Anmelden). Nach der Anmeldung können Sie eines Ihrer Azure-Abonnements und einen Schlüsseltresor oder ein verwaltetes HSM auswählen (erfordert SSMS 18.9 oder höher).
Hinweis
Sie benötigen SSMS 18.9 oder höher, um Spaltenhauptschlüssel zu verwenden, die in einem verwalteten HSM im Azure Key Vault gespeichert sind.
Schlüsselspeicheranbieter (KSP): Gibt einen Schlüsselspeicher an, der über einen Schlüsselspeicheranbieter (KSP) zugänglich ist, der die Cryptography Next Generation-API (CNG) implementiert. Bei dieser Art von Speicher handelt sich in der Regel um ein Hardwaresicherheitsmodul (HSM). Nachdem Sie diese Option ausgewählt haben, müssen Sie einen KSP auswählen. Standardmäßig ist derSoftwareschlüsselspeicher-Anbieter von Microsoft aktiviert. Wenn Sie einen in einem HSM gespeicherten Spaltenhauptschlüssel verwenden möchten, wählen Sie einen KSP für Ihr Gerät aus (muss installiert und auf dem Computer konfiguriert werden, bevor Sie das Dialogfeld öffnen).
Kryptografiedienstanbieter (CSP) – Ein Schlüsselspeicher, der über einen Kryptografiedienstanbieter (CSP) zugänglich ist, der die Kryptografie-API (CAPI) implementiert. Bei dieser Art von Speicher handelt sich in der Regel um ein Hardwaresicherheitsmodul (HSM). Nachdem Sie diese Option ausgewählt haben, müssen Sie einen CSP auswählen. Wenn Sie einen in einem HSM gespeicherten Spaltenhauptschlüssel verwenden möchten, wählen Sie einen CSP für Ihr Gerät aus (muss installiert und auf dem Computer konfiguriert werden, bevor Sie das Dialogfeld öffnen).
Hinweis
Da es sich bei CAPI um eine veraltete API handelt, ist die Option „Kryptografiedienstanbieter“ (CAPI) standardmäßig deaktiviert. Sie können sie aktivieren, indem Sie den für den CAPI-Anbieter aktivierten DWORD-Wert unter dem Schlüssel [HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\sql13\Tools\Client\Always Encrypted] in der Windows-Registrierung erstellen und ihn auf 1 festlegen. Sofern Ihr Schlüsselspeicher CNG unterstützt, sollten Sie CNG statt CAPI verwenden.
Weitere Informationen über die oben erwähnten Schlüsselspeicher finden Sie unter Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted.
Wenn Sie SQL Server 2019 (15.x) verwenden, und die SQL Server-Instanz mit Secure Enclave konfiguriert ist, können Sie das Kontrollkästchen Allow enclave computations (Enclave-Berechnungen zulassen) aktivieren, um den Hauptschlüssel Enclave-fähig zu machen. Weitere Informationen finden Sie unter Always Encrypted mit Secure Enclaves.
Hinweis
Das Kontrollkästchen Allow enclave computations (Enclave-Berechnungen zulassen) wird nicht angezeigt, wenn Ihre SQL Server-Instanz nicht ordnungsgemäß mit Secure Enclave konfiguriert ist.
Wählen Sie einen vorhandenen Schlüssel aus Ihrem Schlüsselspeicher aus, oder klicken Sie auf die Schaltflächen Schlüssel generieren oder Zertifikat generieren , um einen Schlüssel im Schlüsselspeicher zu erstellen.
Klicken Sie auf OK, und der neue Schlüssel erscheint in der Liste.
Nachdem Sie das Dialogfeld geschlossen haben, erstellt SQL Server Management Studio in der Datenbank Metadaten für den Spaltenhauptschlüssel. Das Dialogfeld generiert die Anweisung CREATE COLUMN MASTER KEY (Transact-SQL) und gibt sie aus.
Wenn Sie einen Enclave-fähigen Spaltenhauptschlüssel konfigurieren, signiert SSMS auch die Metadaten mithilfe des Spaltenhauptschlüssels.
Berechtigungen für die Bereitstellung eines Spaltenhauptschlüssels
Sie müssen in der Datenbank über die Datenbankberechtigung ALTER ANY COLUMN MASTER KEY verfügen, damit das Dialogfeld einen Spaltenhauptschlüssel erstellen kann. Außerdem benötigen Sie Schlüsselspeicherberechtigungen, um auf Ihren Schlüsselspalten-Hauptschlüssel zugreifen und diesen verwenden zu können. Ausführliche Informationen zu Schlüsselspeicherberechtigungen, die für Schlüsselverwaltungsvorgänge erforderlich sind, finden Sie unter Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted. Prüfen Sie den relevanten Abschnitt für Ihren Schlüsselspeicher.
Bereitstellen von Spaltenverschlüsselungsschlüsseln mit dem Dialogfeld „Neuer Spaltenverschlüsselungsschlüssel“
Mit dem Dialogfeld Neuer Spaltenverschlüsselungsschlüssel können Sie einen Spaltenverschlüsselungsschlüssel generieren, mit einem Spaltenhauptschlüssel verschlüsseln und Metadaten zu dem Spaltenverschlüsselungsschlüssel in der Datenbank erstellen.
- Navigieren Sie über den Objekt-Explorerzu dem Ordner Sicherheit > Always Encrypted-Schlüssel in Ihrer Datenbank.
- Klicken Sie mit der rechten Maustaste auf den Ordner Spaltenverschlüsselungsschlüssel, und wählen Sie Neuer Spaltenverschlüsselungsschlüssel... aus.
- Geben Sie im Dialogfeld Neuer Spaltenverschlüsselungsschlüssel den Namen des Spaltenverschlüsselungsschlüssel-Metadatenobjekts ein.
- Wählen Sie ein Metadatenobjekt aus, das Ihren Spaltenhauptschlüssel in der Datenbank darstellt.
- Klicken Sie auf OK.
Nachdem Sie das Dialogfeld abgeschlossen haben, generiert SQL Server Management Studio (SSMS) einen neuen Spaltenschlüssel. SSMS ruft dann die Metadaten für den Spaltenmasterschlüssel ab, den Sie aus der Datenbank ausgewählt haben. SSMS verwendet dann die Metadaten des Spaltenhauptschlüssels zur Kontaktaufnahme mit dem Schlüsselspeicher, der Ihren Spaltenhauptschlüssel enthält, sowie zur Verschlüsselung Ihres Spaltenverschlüsselungsschlüssels. Schließlich erstellt SSMS die Metadatendaten für die neue Spaltenverschlüsselung in der Datenbank, indem die Anweisung CREATE COLUMN ENCRYPTION KEY (Transact-SQL) generiert und ausgegeben wird.
Hinweis
Sie benötigen SSMS 18.9 oder höher, um Spaltenhauptschlüssel zu verwenden, die in einem verwalteten HSM im Azure Key Vault gespeichert sind.
Berechtigungen für die Bereitstellung eines Spaltenverschlüsselungsschlüssels
Sie müssen in der Datenbank über die Datenbankberechtigungen ALTER ANY COLUMN ENCRYPTION KEY und VIEW ANY COLUMN MASTER KEY DEFINITION verfügen, damit das Dialogfeld die Metadaten des Spaltenverschlüsselungsschlüssels erstellen und auf die Metadaten des Spaltenhauptschlüssels zugreifen kann. Außerdem benötigen Sie Schlüsselspeicherberechtigungen, um auf Ihren Spaltenhauptschlüssel zugreifen und diesen verwenden zu können. Ausführliche Informationen zu Schlüsselspeicherberechtigungen, die für Schlüsselverwaltungsvorgänge erforderlich sind, finden Sie unter Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted im für Ihren Schlüsselspeicher relevanten Abschnitt.
Bereitstellen von Always Encrypted-Schlüsseln mithilfe des Always Encrypted-Assistenten
Der Always Encrypted-Assistent ist ein Tool für das Verschlüsseln, Entschlüsseln und erneute Verschlüsseln ausgewählter Datenbankspalten. Obwohl bereits konfigurierte Schlüssel verwendet werden können, können Sie auch einen neuen Spaltenhauptschlüssel und eine neue Spaltenverschlüsselung generieren.
Nächste Schritte
- Konfigurieren der Spaltenverschlüsselung mit dem Always Encrypted-Assistenten
- Konfigurieren der Spaltenverschlüsselung unter Verwendung von Always Encrypted mit einem DAC-Paket
- Rotieren von Always Encrypted-Schlüsseln mithilfe von SQL Server Management Studio
- Entwickeln von Anwendungen mit Always Encrypted
- Migrieren von Daten zu oder aus Spalten mithilfe von Always Encrypted mit dem SQL Server-Import/Export-Assistenten
Weitere Informationen
- Always Encrypted
- Übersicht über die Schlüsselverwaltung für Always Encrypted
- Erstellen und Speichern von Spaltenhauptschlüsseln für Always Encrypted
- Konfigurieren von Always Encrypted mithilfe von SQL Server Management Studio
- Bereitstellen von Always Encrypted-Schlüsseln mithilfe von PowerShell
- CREATE COLUMN MASTER KEY (Transact-SQL)
- DROP COLUMN MASTER KEY (Transact-SQL)
- CREATE COLUMN ENCRYPTION KEY (Transact-SQL)
- ALTER COLUMN ENCRYPTION KEY (Transact-SQL)
- DROP COLUMN ENCRYPTION KEY (Transact-SQL)
- sys.column_master_keys (Transact-SQL)
- sys.column_encryption_keys (Transact-SQL)