Wie stelle ich eine KMS-verschlüsselte Sicherungsdatei aus einer lokalen Umgebung in RDS for SQL Server wieder her?

Letzte Aktualisierung: 14.10.2022

Ich möchte eine mit AWS Key Management Service (AWS KMS) verschlüsselte Sicherungsdatei aus einer lokalen Umgebung in einer Amazon-Relational-Database-Service-für-Microsoft-SQL-Server-Instance (Amazon RDS) wiederherstellen. Wie kann ich das mit der nativen Sicherungs- und Wiederherstellungsfunktion tun?

Kurzbeschreibung

Mit der AWS-KMS-Verschlüsselung wird eine Microsoft-SQL-Server-Sicherungsdatei in RDS for SQL Server mithilfe eines AWS-KMS-Schlüssels sicher verschlüsselt. Sie können die verschlüsselte Sicherung auf einer anderen RDS-for-SQL-Server-Instance wiederherstellen.

Auflösung

Hinweis: Bevor Sie mit der folgenden Lösung beginnen, stellen Sie sicher, dass Sie Folgendes haben:

1.    Initiieren Sie die clientseitige Verschlüsselung für das native Backup, indem Sie den AWS-KMS-Schlüsselparameter (@kms_master_key_arn) angeben:

exec msdb.dbo.rds_backup_database @source_db_name='database-name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx1';

2.    Stellen Sie die verschlüsselte AWS-KMS-Sicherung in einer anderen RDS-for-SQL-Server-Instance in derselben Region und demselben Konto wieder her. Geben Sie dazu im folgenden Befehl denselben AWS-KMS-Schlüssel an, der zum Verschlüsseln der Sicherung verwendet wurde:

exec msdb.dbo.rds_restore_database @restore_db_name='database-name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx1';

Wiederherstellen eines AWS-KMS-verschlüsselten Backups in einer anderen Region unter demselben Konto

Wenn das mit AWS KMS verschlüsselte Backup in einer anderen Region unter demselben Konto wiederhergestellt werden muss, gehen Sie wie folgt vor:

1.    Erstellen Sie einen AWS-KMS-Schlüssel für mehrere Regionen. Stellen Sie sicher, dass Sie für den Schlüsseltyp den symmetrischen Schlüssel wählen.

2.    Erstellen Sie Replikatschlüssel für die erforderliche Zielregion.

3.    Starten Sie ein verschlüsseltes natives Backup, indem Sie den AWS-KMS-Schlüsselparameter (@kms_master_key_arn) in Region A angeben:

exec msdb.dbo.rds_backup_database @source_db_name='database-name', 
@s3_arn_to_backup_to='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-1:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx2';

4.    Kopieren Sie die Sicherungsdatei in den S3-Bucket in derselben Region. Amazon RDS unterstützt keine regionsübergreifenden Buckets.

5.    Stellen Sie die mit AWS KMS verschlüsselte Sicherung in Region B wieder her, indem Sie dieselbe AWS-KMS-Schlüssel-ID angeben, die zum Verschlüsseln der Sicherung verwendet wurde.

Hinweis: Die mit @kms_master_key_arn verknüpfte Region ändert sich entsprechend.

exec msdb.dbo.rds_restore_database ;@restore_db_name='database-name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket-name/Filename.bak',
@kms_master_key_arn='arn:aws:kms:us-east-2:account-id:key/xxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxx2';

Stellen Sie ein mit AWS KMS verschlüsseltes Backup in einer lokalen Umgebung, kontenübergreifenden oder regionsübergreifenden Umgebung wieder her.

Die folgenden drei Szenarien erfordern eine Problemumgehung, um die Sicherung wiederherzustellen:

  • Die AWS KMS-verschlüsselte Datenbanksicherung muss in derselben Region, jedoch unter einem anderen Konto (kontoübergreifend) wiederhergestellt werden. Amazon RDS unterstützt keine kontoübergreifende AWS-KMS-Schlüsselfreigabe. Dies bedeutet, dass Sie eine Sicherung in Account-A nicht mit dem KMS-Schlüssel K1 verschlüsseln und dann die Sicherung in Account-B mit demselben Schlüssel wiederherstellen können.
  • Die AWS-KMS-verschlüsselte Datenbanksicherung muss in einer anderen Region und in einem anderen Konto (regionsübergreifend und kontoübergreifend) wiederhergestellt werden. Amazon RDS unterstützt keine kontoübergreifende AWS-KMS-Schlüsselfreigabe oder regionsübergreifende Buckets.
  • Die AWS-KMS-verschlüsselte Datenbanksicherung muss in einer lokalen Umgebung wiederhergestellt werden. Die lokale Umgebung kennt die wichtigsten Details von AWS KMS nicht, da es sich um eine externe Einheit handelt. Daher müssen Sie die mit AWS KMS verschlüsselten Dateien vor der Wiederherstellung entschlüsseln.

Eine Problemumgehung für diese Einschränkungen finden Sie im Abschnitt Export aus Amazon RDS for SQL Server unter Clientseitige Verschlüsselung und Entschlüsselung von Microsoft-SQL-Server-Backups zur Verwendung mit Amazon RDS.