

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
<a name="Appendix.SQLServer.Options.TDE"></a>

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-Editionen
+ SQL Server 2019: Standard- und Enterprise Editions
+ SQL Server 2017 Enterprise Edition
+ SQL Server 2016 Enterprise Edition

**Anmerkung**  
RDS für SQL Server unterstützt keine TDE für schreibgeschützte Datenbanken.

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)](http://msdn.microsoft.com/en-us/library/bb934049.aspx) auf der Microsoft-Website.

**Topics**
+ [Aktivieren von TDE für RDS für SQL Server](#TDE.Enabling)
+ [Verschlüsseln von Daten in RDS for SQL Server](TDE.Encrypting.md)
+ [Sichern und Wiederherstellen von TDE-Zertifikaten in RDS für SQL Server](TDE.BackupRestoreRDS.md)
+ [Sichern und Wiederherstellen von TDE-Zertifikaten für lokale Datenbanken](TDE.BackupRestoreOnPrem.md)
+ [Deaktivieren von TDE für RDS for SQL Server](TDE.Disabling.md)

## Aktivieren von TDE für RDS für SQL Server
<a name="TDE.Enabling"></a>

Wenn Sie Transparent Data Encryption für eine DB-Instance von RDS für 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-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI Befehl oder die API-Operation [Describe DBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html).

1.  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 der RDS-API ist sie benannt`TDE`.

   Weitere Informationen zum Erstellen oder Ändern einer Optionsgruppe finden Sie unter [Arbeiten mit Optionsgruppen](USER_WorkingWithOptionGroups.md). Weitere Informationen zum Hinzufügen einer Option zu einer Optionsgruppe finden Sie unter [Hinzufügen einer Option zu einer Optionsgruppe](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1.  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](Overview.DBInstance.Modifying.md).

### Überlegungen zu Optionsgruppen
<a name="TDE.Options"></a>

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](USER_WorkingWithOptionGroups.md#Overview.OptionGroups). 

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](USER_CopySnapshot.md#USER_CopySnapshot.Options). 

### Überlegungen zur SQL Server-Performance
<a name="TDE.Perf"></a>

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
<a name="TDE.Encrypting"></a>

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 `myDatabase`zu verschlüsseln.

```
 1. ---------- Turning on TDE -------------
 2. 
 3. -- Find an RDS TDE certificate to use
 4. USE [master]
 5. GO
 6. SELECT name FROM sys.certificates WHERE name LIKE 'RDSTDECertificate%'
 7. GO
 8. 
 9. USE [myDatabase]
10. GO
11. -- Create a database encryption key (DEK) using one of the certificates from the previous step
12. CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
13. ENCRYPTION BY SERVER CERTIFICATE [RDSTDECertificateName]
14. GO
15. 
16. -- Turn on encryption for the database
17. ALTER DATABASE [myDatabase] SET ENCRYPTION ON
18. GO
19. 
20. -- Verify that the database is encrypted
21. USE [master]
22. GO
23. SELECT name FROM sys.databases WHERE is_encrypted = 1
24. GO
25. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
26. 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 für SQL Server
<a name="TDE.BackupRestoreRDS"></a>

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

Benutzer-TDE-Zertifikate werden verwendet, um Datenbanken in RDS für 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 für 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](#TDE.BackupRestoreRDS.Drop).

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). 

**Topics**
+ [Voraussetzungen](#TDE.BackupRestoreRDS.Prereqs)
+ [Einschränkungen](#TDE.Limitations)
+ [Sichern eines TDE-Zertifikats](#TDE.BackupRestoreRDS.Backup)
+ [Wiederherstellen eines TDE-Zertifikats](#TDE.BackupRestoreRDS.Restore)
+ [Anzeigen wiederhergestellter TDE-Zertifikate](#TDE.BackupRestoreRDS.Show)
+ [Entfernen wiederhergestellter TDE-Zertifikate](#TDE.BackupRestoreRDS.Drop)

## Voraussetzungen
<a name="TDE.BackupRestoreRDS.Prereqs"></a>

Bevor Sie TDE-Zertifikate in RDS für 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](SQLServer.Procedural.Importing.Native.Enabling.md) beschrieben.

1. Erstellen Sie allgemeine Amazon S3 S3-Buckets oder Verzeichnis-Buckets zum Speichern von Dateien zum Sichern und Wiederherstellen.

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

1. 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.

   Bei der Verwendung von Verzeichnis-Buckets sind keine zusätzlichen Berechtigungen erforderlich, [Manuelles Erstellen einer IAM-Rolle für native Backups und Wiederherstellungen](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM) mit Ausnahme der Berechtigungen, die für Verzeichnis-Buckets erforderlich sind.

   Bei der Verwendung von S3-Ressourcen benötigt die IAM-Rolle zusätzlich zu den Berechtigungen, die für erforderlich sind, auch die folgenden Berechtigungen: [Manuelles Erstellen einer IAM-Rolle für native Backups und Wiederherstellungen](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)
   + `s3:GetBucketAcl`, `s3:GetBucketLocation` und `s3:ListBucket` in der S3-Bucket-Ressource

1. 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`).

1. 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](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) im *AWS Key Management Service -Entwicklerhandbuch* folgen.

1. 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 für SQL Server-DB-Instance mit Amazon S3](User.SQLServer.Options.S3-integration.md).

   Beachten Sie, dass Verzeichnis-Buckets für die S3-Integration nicht unterstützt werden. Dieser Schritt ist nur für [Sichern und Wiederherstellen von TDE-Zertifikaten für lokale Datenbanken](TDE.BackupRestoreOnPrem.md) erforderlich.

## Einschränkungen
<a name="TDE.Limitations"></a>

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 für 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, @, \$1, \$1 und Unterstrich (\$1).
+ 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](TDE.BackupRestoreOnPrem.md).
+ RDS für SQL Server unterstützt keine Verwendung von kontoübergreifenden Schlüsseln für TDE.

## Sichern eines TDE-Zertifikats
<a name="TDE.BackupRestoreRDS.Backup"></a>

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.

**Example 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
<a name="TDE.BackupRestoreRDS.Restore"></a>

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.

**Example 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
<a name="TDE.BackupRestoreRDS.Show"></a>

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\$1id | principal\$1id | pvt\$1key\$1encryption\$1type\$1desc | issuer\$1name | cert\$1serial\$1number | thumbprint | subject | start\$1date | expiry\$1date | pvt\$1key\$1last\$1backup\$1date | 
| UserTDECertificate\$1tde\$1cert | 343 | 1 | ENCRYPTED\$1BY\$1MASTER\$1KEY | 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
<a name="TDE.BackupRestoreRDS.Drop"></a>

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.

**Example 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
<a name="TDE.BackupRestoreOnPrem"></a>

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

**Anmerkung**  
RDS für SQL Server unterstützt keine Verwendung von kontoübergreifenden Schlüsseln für TDE.

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](https://docs.aws.amazon.com/cli/latest/reference/kms/generate-data-key.html)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.

1. 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=');
   ```

1. Speichern Sie die Sicherungsdatei des Zertifikats in Ihrem Amazon-S3-Zertifikat-Bucket.

1. 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 für 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](Appendix.SQLServer.Options.S3-integration.using.md).

1. 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.

1. 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](https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html) 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
<a name="TDE.Disabling"></a>

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 ein Benutzer-TDE-Zertifikat für die Verschlüsselung wiederhergestellt (importiert) wurde, sollte es gelöscht werden. 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`. 

```
 1. ------------- Removing TDE ----------------
 2. 
 3. USE [customerDatabase]
 4. GO
 5. 
 6. -- Turn off encryption of the database
 7. ALTER DATABASE [customerDatabase]
 8. SET ENCRYPTION OFF
 9. GO
10. 
11. -- Wait until the encryption state of the database becomes 1. The state is 5 (Decryption in progress) for a while
12. SELECT db_name(database_id) as DatabaseName, * FROM sys.dm_database_encryption_keys
13. GO
14. 
15. -- Drop the DEK used for encryption
16. DROP DATABASE ENCRYPTION KEY
17. GO
18. 
19. -- Drop a user TDE certificate if it was restored (imported)
20. EXECUTE msdb.dbo.rds_drop_tde_certificate @certificate_name='UserTDECertificate_certificate_name';
21. 
22. -- Alter to SIMPLE Recovery mode so that your encrypted log gets truncated
23. USE [master]
24. GO
25. ALTER DATABASE [customerDatabase] SET RECOVERY SIMPLE
26. 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.

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