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).
Themen
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.
-
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.
-
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
unds3:ListBucket
in der S3-Bucket-Ressource -
s3:ListAllMyBuckets
in der Ressource*
-
-
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
). -
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.
-
-
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 auchTRANSPARENT_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äfixUserTDECertificate_
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äfixUserTDECertificate_
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
';