Sichern und Wiederherstellen von TDE-Zertifikaten in RDS for 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.

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 Integrieren 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 TDEZertifikate für lokale Datenbanken sichern und wiederherstellen.

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';