Unterstützung für transparente Datenverschlüsselung in SQL Server - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Unterstützung für transparente Datenverschlüsselung in SQL Server

Amazon RDS unterstützt die Verwendung von transparenter Datenverschlüsselung (Transparent Data Encryption, TDE), um gespeicherte Daten auf Ihren DB-Instances mit Microsoft SQL Server zu verschlüsseln. TDE verschlüsselt die Daten automatisch, bevor sie in den Speicher geschrieben werden, und entschlüsselt sie automatisch, wenn die Daten aus dem Speicher gelesen werden.

Amazon RDS unterstützt TDE für die folgenden SQL Server-Versionen und -Editionen:

  • SQL Server 2022 Standard und Enterprise Edition

  • SQL Server 2019: Standard- und Enterprise Editions

  • SQL Server 2017 Enterprise Edition

  • SQL Server 2016 Enterprise Edition

  • SQL Server 2014 Enterprise Edition

Transparent Data Encryption für SQL Server verwaltet Verschlüsselungsschlüssel durch die Verwendung einer zweistufigen Schlüsselarchitektur. Zum Schutz der Datenverschlüsselungsschlüssel wird ein Zertifikat verwendet, das aus dem Datenbank-Hauptschlüssel generiert wird. Der Datenbankverschlüsselungsschlüssel führt die eigentliche Verschlüsselung und Entschlüsselung der Daten auf der Benutzerdatenbank aus. Amazon RDS sichert und verwaltet den Datenbank-Hauptschlüssel und das TDE-Zertifikat.

Transparent Data Encryption wird in Szenarien verwendet, in denen Sie sensible Daten verschlüsseln müssen. So beispielsweise, wenn Sie einem Drittanbieter Datendateien und Sicherungen zur Verfügung stellen möchten, oder in Fällen, oder in denen es um sicherheitsbezogene Fragen zur Einhaltung gesetzlicher Vorschriften geht. Sie können die Systemdatenbanken für SQL Server nicht verschlüsseln, wie z. B. model- oder master-Datenbanken.

Eine ausführliche Diskussion über Transparent Data Encryption ist nicht Gegenstand dieses Leitfadens, aber Sie sollten unbedingt die Sicherheitsstärken und -schwächen der einzelnen Verschlüsselungsalgorithmen und Schlüssel verstehen. Weitere Informationen zu transparenter Datenverschlüsselung für SQL Server finden Sie unter Transparent Data Encryption (TDE) auf der Microsoft-Website.

Aktivieren von TDE für RDS for SQL Server

Wenn Sie Transparent Data Encryption für eine DB-Instance von RDS for SQL Server aktivieren möchten, geben Sie die TDE-Option in einer RDS-Optionsgruppe an, die dieser DB-Instance zugeordnet ist:

  1. Bestimmen Sie, ob Ihre DB-Instance bereits mit einer Optionsgruppe verknüpft ist, die über die Option TDE verfügt. Um die Optionsgruppe anzuzeigen, der eine DB-Instance zugeordnet ist, verwenden Sie die RDS-Konsole, den -describe-db-instanceAWS CLIBefehl oder die API-Operation DescribeDBInstances .

  2. Wenn die DB-Instance keiner Optionsgruppe zugeordnet ist, für die TDE aktiviert ist, haben Sie zwei Optionen. Sie können eine Optionsgruppe erstellen und die Option TDE hinzufügen oder Sie können die zugeordnete Optionsgruppe abändern und sie ihr hinzufügen.

    Anmerkung

    In der RDS-Konsole heißt die Option TRANSPARENT_DATA_ENCRYPTION. In der AWS CLI und RDS-API heißt sie TDE.

    Weitere Informationen zum Erstellen oder Ändern einer Optionsgruppe finden Sie unter Arbeiten mit Optionsgruppen. Weitere Informationen zum Hinzufügen einer Option zu einer Optionsgruppe finden Sie unter Hinzufügen einer Option zu einer Optionsgruppe.

  3. Ordnen Sie der DB-Instance eine Optionsgruppe zu, die über die Option TDE verfügt. Weitere Informationen zum Zuordnen einer DB-Instance zu einer Optionsgruppe finden Sie unter Ändern einer Amazon RDS-DB-Instance.

Überlegungen zu Optionsgruppen

Die TDE-Option ist eine persistente Option. Sie können sie nur dann aus einer Optionsgruppe entfernen, wenn keine DB-Instances und Sicherungen mehr mit der Optionsgruppe verknüpft sind. Sobald Sie die TDE-Option einer Optionsgruppe hinzufügen, kann die Optionsgruppe nur mit DB-Instances verknüpft werden, die TDE verwenden. Weitere Information zu persistenten Optionen in einer Optionsgruppe, finden Sie unter Übersicht über die Optionsgruppen.

Da die Option TDE eine persistente Option ist, kann es zu einem Konflikt zwischen der Optionsgruppe und einer zugehörigen DB-Instance kommen. In folgenden Situationen können Konflikte auftreten:

  • Die aktuelle Optionsgruppe verfügt über die TDE-Option. Sie ersetzen sie durch eine Optionsgruppe, welche die TDE-Option nicht enthält.

  • Sie stellen von einem DB-Snapshot auf eine neue DB-Instance wieder her, die keine Optionsgruppe mit der TDE-Option enthält. Weitere Informationen zu diesem Szenario finden Sie unter Überlegungen zu Optionsgruppen.

Überlegungen zur SQL Server-Performance

Die Leistung einer SQL-Server-DB-Instance kann durch Transparent Data Encryption beeinträchtigt werden.

Die Performance für unverschlüsselte Datenbanken kann ebenfalls beeinträchtigt werden, wenn sich die Datenbanken auf einer DB-Instance befinden, die mindestens eine verschlüsselte Datenbank besitzt. Daher empfehlen wir Ihnen, verschlüsselte und unverschlüsselte Datenbanken auf getrennten DB-Instances zu halten.

Verschlüsseln von Daten in RDS for SQL Server

Wenn die TDE-Option einer Optionsgruppe hinzugefügt wird, generiert Amazon RDS ein Zertifikat, das im Verschlüsselungsprozess verwendet wird. Sie können das Zertifikat dann verwenden, um SQL-Anweisungen auszuführen, die Daten in einer Datenbank auf der DB-Instance verschlüsseln.

Das folgende Beispiel verwendet das von RDS erstellte Zertifikat genannt RDSTDECertificateName welches verwendet wird um eine Datenbank genannt myDatabasezu verschlüsseln.

---------- Turning on TDE ------------- -- Find an RDS TDE certificate to use USE [master] GO SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%' GO USE [myDatabase] GO -- Create a database encryption key (DEK) using one of the certificates from the previous step CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName] GO -- Turn on encryption for the database ALTER DATABASE [myDatabase] SET ENCRYPTION ON GO -- Verify that the database is encrypted USE [master] GO SELECT name FROM sys.databases WHERE is_encrypted = 1 GO SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys GO

Wie lange die Verschlüsselung einer SQL Server-Datenbank mit TDE dauert, ist von mehreren Faktoren abhängig. Dazu gehören die Größe der DB-Instance, ob bereitgestellter IOPS-Speicher für die Instance verwendet wird, die Datenmenge und andere Faktoren.

Sichern und Wiederherstellen von TDE-Zertifikaten in RDS for SQL Server

RDS for SQL Server bietet gespeicherte Prozeduren zum Sichern, Wiederherstellen und Löschen von TDE-Zertifikaten. RDS for SQL Server bietet auch eine Funktion zum Anzeigen wiederhergestellter Benutzer-TDE-Zertifikate.

Benutzer-TDE-Zertifikate werden verwendet, um Datenbanken in RDS for SQL Server wiederherzustellen, die lokal sind und TDE aktiviert haben. Diese Zertifikate haben das Präfix UserTDECertificate_. Nach dem Wiederherstellen von Datenbanken und bevor sie zur Verwendung verfügbar gemacht werden, ändert RDS die Datenbanken, für die TDE aktiviert ist, so, dass RDS-generierte TDE-Zertifikate verwenden werden können. Diese Zertifikate haben das Präfix RDSTDECertificate.

Benutzer-TDE-Zertifikate bleiben auf der DB-Instance von RDS for SQL Server gespeichert, es sei denn, Sie entfernen sie mit der gespeicherten Prozedur rds_drop_tde_certificate. Weitere Informationen finden Sie unter Entfernen wiederhergestellter TDE-Zertifikate.

Sie können ein Benutzer-TDE-Zertifikat verwenden, um andere Datenbanken aus der Quell-DB-Instance wiederherzustellen. Die wiederherzustellenden Datenbanken müssen dasselbe TDE-Zertifikat verwenden und TDE aktiviert haben. Sie müssen das entsprechende Zertifikat nicht erneut importieren (wiederherstellen).

Voraussetzungen

Bevor Sie TDE-Zertifikate in RDS for SQL Server sichern oder wiederherstellen können, müssen Sie die folgenden Schritte ausführen. Die ersten drei sind in Einrichtung für native Backups und Wiederherstellungen beschrieben.

  1. Erstellen Sie Amazon-S3-Buckets zum Speichern von Dateien, die gesichert und wiederhergestellt werden sollen.

    Es wird empfohlen, separate Buckets für Datenbanksicherungen und für TDE-Zertifikatssicherungen zu verwenden.

  2. Erstellen Sie eine IAM-Rolle zum Sichern und Wiederherstellen von Dateien.

    Die IAM-Rolle muss sowohl ein Benutzer als auch ein Administrator für AWS KMS key sein.

    Zusätzlich zu den Berechtigungen, die für die native Sicherung und Wiederherstellung von SQL Server erforderlich sind, benötigt die IAM-Rolle die folgenden Berechtigungen:

    • s3:GetBucketACL, s3:GetBucketLocation und s3:ListBucket in der S3-Bucket-Ressource

    • s3:ListAllMyBuckets in der Ressource *

  3. Fügen Sie die Option SQLSERVER_BACKUP_RESTORE einer Optionsgruppe auf Ihrer DB-Instance hinzu.

    Dies gilt zusätzlich zu der Option TRANSPARENT_DATA_ENCRYPTION (TDE).

  4. Stellen Sie sicher, dass Sie einen symmetrischen KMS-Verschlüsselungsschlüssel zur Verfügung haben. Ihnen stehen folgende Optionen zur Verfügung:

    • Wenn ein KMS-Schlüssel in Ihrem Konto vorhanden ist, können Sie diesen verwenden. Es sind keine weiteren Maßnahmen erforderlich.

    • Wenn Sie keinen vorhandenen symmetrischen KMS-Verschlüsselungsschlüssel in Ihrem Konto haben, erstellen Sie einen KMS-Schlüssel, indem Sie den Anweisungen unter Erstellen von Schlüsseln im AWS Key Management Service-Entwicklerhandbuch folgen.

  5. Aktivieren Sie die Amazon-S3-Integration, um Dateien zwischen der DB-Instance und Amazon S3 zu übertragen.

    Weitere Informationen zum Aktivieren der Amazon-S3-Integration finden Sie unter Integration einer Amazon RDS for SQL Server-DB-Instance mit Amazon S3.

Einschränkungen

Die Verwendung von gespeicherten Prozeduren zum Sichern und Wiederherstellen von TDE-Zertifikaten unterliegt folgenden Einschränkungen:

  • Beide Optionen, sowohl SQLSERVER_BACKUP_RESTORE als auch TRANSPARENT_DATA_ENCRYPTION (TDE), müssen der Optionsgruppe hinzugefügt werden, die mit Ihrer DB-Instance verbunden ist.

  • Sicherung und Wiederherstellung von TDE-Zertifikaten werden auf Multi-AZ-DB-Instances nicht unterstützt.

  • Backup- und Wiederherstellungsaufgaben für das TDE-Zertifikat können nicht abgebrochen werden.

  • Sie können kein Benutzer-TDE-Zertifikat für die TDE-Verschlüsselung einer anderen Datenbank auf Ihrer DB-Instance von RDS for SQL Server verwenden. Sie können damit nur andere Datenbanken von der Quell-DB-Instance wiederherstellen, bei denen TDE aktiviert ist und die dasselbe TDE-Zertifikat verwenden.

  • Sie können nur Benutzer-TDE-Zertifikate löschen.

  • Die maximale Anzahl von Benutzer-TDE-Zertifikaten, die in RDS unterstützt werden, beträgt 10. Wenn die Anzahl 10 überschreitet, entfernen Sie nicht verwendete TDE-Zertifikate und versuchen Sie es erneut.

  • Der Zertifikatsname darf nicht leer oder null sein.

  • Beim Wiederherstellen eines Zertifikats darf der Zertifikatname das Schlüsselwort RDSTDECERTIFICATE nicht enthalten und muss mit dem Präfix UserTDECertificate_ beginnen.

  • Der @certificate_name-Parameter darf nur die folgenden Zeichen enthalten: a–z, 0–9, @, $, # und Unterstrich (_).

  • Die Dateierweiterungen für @certificate_file_s3_arn muss .cer (Groß-/Kleinschreibung wird nicht berücksichtigt) lauten.

  • Die Dateierweiterungen für @private_key_file_s3_arn muss .pvk (Groß-/Kleinschreibung wird nicht berücksichtigt) lauten.

  • Die S3-Metadaten für die private Schlüsseldatei müssen das Tag x-amz-meta-rds-tde-pwd enthalten. Weitere Informationen finden Sie unter Sichern und Wiederherstellen von TDE-Zertifikaten für lokale Datenbanken.

Sichern eines TDE-Zertifikats

Verwenden Sie zum Sichern von TDE-Zertifikaten die gespeicherte Prozedur rds_backup_tde_certificate. Es hat die folgende Syntax.

EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='UserTDECertificate_certificate_name | RDSTDECertificatetimestamp', @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer', @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk', @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id', [@overwrite_s3_files=0|1];

Die folgenden Parameter sind erforderlich:

  • @certificate_name – Der Name des zu sichernden TDE-Zertifikats.

  • @certificate_file_s3_arn – Der Ziel-Amazon-Ressourcenname (ARN) für die Sicherungsdatei des Zertifikats in Amazon S3.

  • @private_key_file_s3_arn – Der Ziel-S3-ARN der privaten Schlüsseldatei, die das TDE-Zertifikat sichert.

  • @kms_password_key_arn – Der ARN des symmetrischen KMS-Schlüssels, der zum Verschlüsseln des Passworts des privaten Schlüssels verwendet wurde.

Der folgende Parameter ist optional:

  • @overwrite_s3_files – Gibt an, ob das vorhandene Zertifikat und die privaten Schlüsseldateien in S3 überschrieben werden sollen:

    • 0 – Die vorhandenen Dateien werden nicht überschrieben. Dieser Wert ist der Standard.

      Wenn Sie @overwrite_s3_files auf 0 festlegen, wird ein Fehler ausgegeben, wenn eine Datei bereits vorhanden ist.

    • 1 – Eine vorhandene Datei mit dem angegebenen Namen wird überschrieben, auch wenn es sich nicht um eine Sicherungsdatei handelt.

Beispiel Sichern eines TDE-Zertifikats
EXECUTE msdb.dbo.rds_backup_tde_certificate @certificate_name='RDSTDECertificate20211115T185333', @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk', @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE', @overwrite_s3_files=1;

Wiederherstellen eines TDE-Zertifikats

Verwenden Sie die gespeicherte Prozedur rds_restore_tde_certificate zum Wiederherstellen (Importieren) von Benutzer-TDE-Zertifikaten. Es hat die folgende Syntax.

EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_certificate_name', @certificate_file_s3_arn='arn:aws:s3:::bucket_name/certificate_file_name.cer', @private_key_file_s3_arn='arn:aws:s3:::bucket_name/key_file_name.pvk', @kms_password_key_arn='arn:aws:kms:region:account-id:key/key-id';

Die folgenden Parameter sind erforderlich:

  • @certificate_name – Der Name des TDE-Zertifikats, das wiederhergestellt werden soll. Der Name muss mit dem Präfix UserTDECertificate_ beginnen.

  • @certificate_file_s3_arn – Der S3-ARN der Sicherungsdatei, die zum Wiederherstellen des TDE-Zertifikats verwendet wurde.

  • @private_key_file_s3_arn – Der S3-ARN der Sicherungsdatei des privaten Schlüssels, die zum Wiederherstellen des TDE-Zertifikats verwendet wurde.

  • @kms_password_key_arn – Der ARN des symmetrischen KMS-Schlüssels, der zum Verschlüsseln des Passworts des privaten Schlüssels verwendet wurde.

Beispiel Wiederherstellen eines TDE-Zertifikats
EXECUTE msdb.dbo.rds_restore_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate', @certificate_file_s3_arn='arn:aws:s3:::TDE_certs/mycertfile.cer', @private_key_file_s3_arn='arn:aws:s3:::TDE_certs/mykeyfile.pvk', @kms_password_key_arn='arn:aws:kms:us-west-2:123456789012:key/AKIAIOSFODNN7EXAMPLE';

Anzeigen wiederhergestellter TDE-Zertifikate

Verwenden Sie die Funktion rds_fn_list_user_tde_certificates zum Wiederherstellen (Importieren) von Benutzer-TDE-Zertifikaten Es hat die folgende Syntax.

SELECT * FROM msdb.dbo.rds_fn_list_user_tde_certificates();

Die Ausgabe sieht in etwa folgendermaßen aus. Hier werden nicht alle Spalten angezeigt.

name certificate_id principal_id pvt_key_encryption_type_desc issuer_name cert_serial_number thumbprint subject start_date expiry_date pvt_key_last_backup_date
UserTDECertificate_tde_cert 343 1 ENCRYPTED_BY_MASTER_KEY AnyCompany Shipping 79 3e 57 a3 69 fd 1d 9e 47 2c 32 67 1d 9c ca af 0x6BB218B34110388680B FE1BA2D86C695096485B5 AnyCompany Shipping 2022-04-05 19:49:45.0000000 2023-04-05 19:49:45.0000000 NULL

Entfernen wiederhergestellter TDE-Zertifikate

Verwenden Sie die gespeicherte Prozedur rds_drop_tde_certificate, um wiederhergestellte (importierte) Benutzer-TDE-Zertifikate zu löschen, die Sie nicht verwenden. Es hat die folgende Syntax.

EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';

Der folgende Parameter ist erforderlich:

  • @certificate_name – Der Name des TDE-Zertifikats, das entfernt werden soll.

Sie können nur wiederhergestellte (importierte) TDE-Zertifikate löschen. Von RDS erstellte Zertifikate können nicht gelöscht werden.

Beispiel Entfernen eines TDE-Zertifikats
EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_myTDEcertificate';

Sichern und Wiederherstellen von TDE-Zertifikaten für lokale Datenbanken

Sie können TDE-Zertifikate für lokale Datenbanken sichern und sie später in RDS for SQL Server wiederherstellen. Sie können auch ein TDE-Zertifikat von RDS for SQL Server auf einer lokalen DB-Instance wiederherstellen.

Mit dem folgenden Verfahren werden ein TDE-Zertifikat und ein privater Schlüssel gesichert. Der private Schlüssel wird mit einem Datenschlüssel verschlüsselt, der aus Ihrem KMS-Schlüssel mit symmetrischer Verschlüsselung generiert wird.

So sichern Sie ein lokales TDE-Zertifikat
  1. Generieren Sie den Datenschlüssel mit dem AWS CLI generate-data-key Befehl .

    aws kms generate-data-key \ --key-id my_KMS_key_ID \ --key-spec AES_256

    Die Ausgabe sieht in etwa folgendermaßen aus.

    { "CiphertextBlob": "AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ 2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==", "Plaintext": "U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=", "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-00ee-99ff-88dd-aa11bb22cc33" }

    Sie verwenden die Nur-Text-Ausgabe im nächsten Schritt als Passwort für den privaten Schlüssel.

  2. Sichern Sie Ihr TDE-Zertifikat wie im folgenden Beispiel gezeigt.

    BACKUP CERTIFICATE myOnPremTDEcertificate TO FILE = 'D:\tde-cert-backup.cer' WITH PRIVATE KEY ( FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\cert-backup-key.pvk', ENCRYPTION BY PASSWORD = 'U/fpGtmzGCYBi8A2+0/9qcRQRK2zmG/aOn939ZnKi/0=');
  3. Speichern Sie die Sicherungsdatei des Zertifikats in Ihrem Amazon-S3-Zertifikat-Bucket.

  4. Speichern Sie die Sicherungsdatei für den privaten Schlüssel in Ihrem S3-Zertifikat-Bucket mit dem folgenden Tag in den Metadaten der Datei:

    • Schlüssel: x-amz-meta-rds-tde-pwd

    • Wert: Der Wert CiphertextBlob aus der Generierung des Datenschlüssels (siehe folgendes Beispiel).

      AQIDAHimL2NEoAlOY6Bn7LJfnxi/OZe9kTQo/XQXduug1rmerwGiL7g5ux4av9GfZLxYTDATAAAAfjB8BgkqhkiG9w0B BwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMyCxLMi7GRZgKqD65AgEQgDtjvZLJo2cQ31Vetngzm2ybHDc3d2vI74SRUzZ 2RezQy3sAS6ZHrCjfnfn0c65bFdhsXxjSMnudIY7AKw==

Mit dem folgenden Verfahren wird ein TDE-Zertifikat von RDS for SQL Server auf einer lokalen DB-Instance wiederhergestellt. Sie kopieren und stellen das TDE-Zertifikat auf Ihrer Ziel-DB-Instance mit der Zertifikatssicherung, der entsprechenden privaten Schlüsseldatei und dem Datenschlüssel wieder her. Das wiederhergestellte Zertifikat wird durch den Datenbank-Hauptschlüssel des neuen Servers verschlüsselt.

So stellen Sie ein TDE-Zertifikat wieder her
  1. Kopieren Sie die Sicherungsdatei des TDE-Zertifikats und die private Schlüsseldatei von Amazon S3 auf die Ziel-Instance. Weitere Informationen zum Kopieren von Dateien aus Amazon S3 finden Sie unter Übertragen von Dateien zwischen RDS for SQL Server und Amazon S3.

  2. Entschlüsseln Sie den verschlüsselten Ausgabetext mit Ihrem KMS-Schlüssel, um den Nur-Text des Datenschlüssels abzurufen. Der Verschlüsselungstext befindet sich in den S3-Metadaten der Sicherungsdatei für private Schlüssel.

    aws kms decrypt \ --key-id my_KMS_key_ID \ --ciphertext-blob fileb://exampleCiphertextFile | base64 -d \ --output text \ --query Plaintext

    Sie verwenden die Nur-Text-Ausgabe im nächsten Schritt als Passwort für den privaten Schlüssel.

  3. Verwenden Sie den folgenden SQL-Befehl, um das TDE-Zertifikat wiederherzustellen.

    CREATE CERTIFICATE myOnPremTDEcertificate FROM FILE='D:\tde-cert-backup.cer' WITH PRIVATE KEY (FILE = N'D:\tde-cert-key.pvk', DECRYPTION BY PASSWORD = 'plain_text_output');

Weitere Informationen zur KMS-Entschlüsselung finden Sie unter decrypt im KMS-Bereich der AWS CLI-Befehlsreferenz.

Nachdem das TDE-Zertifikat auf der Ziel-DB-Instance wiederhergestellt wurde, können Sie verschlüsselte Datenbanken mit diesem Zertifikat wiederherstellen.

Anmerkung

Sie können dasselbe TDE-Zertifikat verwenden, um mehrere SQL-Server-Datenbanken auf der Quell-DB-Instance zu verschlüsseln. Wenn Sie mehrere Datenbanken zu einer eine Ziel-Instance migrieren möchten, kopieren Sie das mit den Datenbanken verknüpfte TDE-Zertifikat nur einmal auf die Ziel-Instance.

Deaktivieren von TDE für RDS for SQL Server

Wenn Sie TDE für eine DB-Instance von RDS for SQL deaktivieren möchten, stellen Sie zunächst sicher, dass keine verschlüsselten Objekte mehr auf der DB-Instance vorhanden sind. Entschlüsseln Sie dazu entweder die Objekte oder entfernen Sie sie. Wenn verschlüsselte Objekte auf der DB-Instance vorhanden sind, können Sie TDE für die DB-Instance nicht deaktivieren. Wenn Sie die Konsole verwenden, um die TDE-Option aus einer Optionsgruppe zu entfernen, wird auf der Konsole angegeben, dass die Verarbeitung durchgeführt wird. Zudem wird ein Fehlerereignis erstellt, wenn die Optionsgruppe mit einer verschlüsselten DB-Instance oder einem DB-Snapshot verknüpft ist.

Das folgende Beispiel entfernt die TDE-Verschlüsselung aus einer Datenbank mit dem Namen customerDatabase.

------------- Removing TDE ---------------- USE [customerDatabase] GO -- Turn off encryption of the database ALTER DATABASE [customerDatabase] SET ENCRYPTION OFF GO -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys GO -- Drop the DEK used for encryption DROP DATABASE ENCRYPTION KEY GO -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated USE [master] GO ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE GO

Wenn alle Objekte entschlüsselt werden, haben Sie zwei Möglichkeiten:

  1. Sie können die DB-Instance so ändern, dass sie einer Optionsgruppe ohne die Option TDE zugeordnet ist.

  2. Sie können die TDE-Option aus der Optionsgruppe entfernen.