Direkt zum Inhalt

Wie stelle ich eine verschlüsselte Sicherungsdatei oder ein verschlüsseltes Microsoft-Azure-Backup in RDS für SQL Server aus einer On-Premises-Umgebung wieder her?

Lesedauer: 4 Minute
0

Ich möchte eine verschlüsselte Sicherungsdatei oder ein Microsoft-Azure-Backup für Amazon Relational Database Service (Amazon RDS) aus einer On-Premises-Umgebung wiederherstellen.

Kurzbeschreibung

Die Backup-Verschlüsselung ist in SQL Server 2014 (12.x) und höher verfügbar. Gib den Verschlüsselungsalgorithmus und den Verschlüsseler für das Backup an. Dadurch wird eine verschlüsselte Sicherungsdatei erstellt.

Hinweis: Diese Funktion ist nicht dasselbe wie die Transparent Data Encryption (TDE)-Verschlüsselung. Weitere Informationen findest du unter Unterstützung für Transparent Data Encryption in SQL Server.

Lösung

Um ein lokales oder mit Microsoft Azure verschlüsseltes Backup auf Amazon RDS wiederherzustellen, benötigst du eine Sicherungskopie des Serverzertifikats. Ohne das Zertifikat kannst du das Backup nicht in Amazon RDS wiederherstellen. Weitere Informationen findest du unter Verschlüsseln der Sicherung auf der Microsoft-Website.

Lokale verschlüsselte Backups wiederherstellen

Bevor du mit der Wiederherstellung eines verschlüsselten Backups beginnst, stelle sicher, dass du die folgenden Ressourcen erstellt hast:

  • Ein Amazon Simple Storage Service (Amazon S3)-Bucket
  • Eine Amazon-RDS-Instance, die mit TDE und SQLSERVER_BACKUP_RESTORE in der Optionsgruppe konfiguriert ist
  1. Verwende das folgende Skript in deinem On-Premises-Konto, um einen primären Datenbankschlüssel zu erstellen:

    USE Master;GO
    CREATE MASTER KEY ENCRYPTION
    BY PASSWORD='InsertStrongPasswordHere';
    GO

    Weitere Informationen findest du unter HAUPTSCHLÜSSEL ERSTELLEN (Transact-SQL) auf der Microsoft-Website.

  2. Erstelle ein Zertifikat, das durch den Primärschlüssel im On-Premises-Konto geschützt ist:

    CREATE CERTIFICATE TDE_CertWITH
    SUBJECT='Database_Encryption';
    GO

    Weitere Informationen findest du unter ZERTIFIKAT ERSTELLEN (Transact-SQL) auf der Microsoft-Website.

  3. Verwende das folgende Skript, um ein natives Backup zu starten:

    BACKUP DATABASE [TestDB] TO DISK =N'E:\Backup\EncryptedBackupFromOnpremise.bak' WITH COMPRESSION,ENCRYPTION( ALGORITHM = AES_256, SERVER CERTIFICATE = [TDE_Cert] ), STATS = 10
    GO

    Hinweis: Es hat sich bewährt, die Komprimierung für Amazon-RDS-Wiederherstellungen zu aktivieren. Weitere Informationen findest du unter Sicherungskomprimierung (SQL Server) auf der Microsoft-Website.

  4. Verwende die AWS-Managementkonsole, um das verschlüsselte Backup in den S3-Bucket tde-db hochzuladen.

  5. Führe den folgenden Befehl aus, um die Datenbank wiederherzustellen:

    exec msdb.dbo.rds_restore_database @restore_db_name='onpremdb',
    @s3_arn_to_restore_from='arn:aws:s3:::tde-db/EncryptedBackupFromOnpremise.bak';

Mit Microsoft Azure verschlüsselte Backups wiederherstellen

Bevor du mit der Wiederherstellung eines verschlüsselten Backups in einem Microsoft-Container beginnst, stelle sicher, dass du die folgenden Ressourcen erstellt hast:

  • Ein Amazon-S3-Bucket
  • Eine RDS-Instance, die mit TDE und der Optionsgruppe SQLSERVER_BACKUP_RESTORE konfiguriert ist
  • Ein On-Premises-Konto, das mit Zertifikaten zum Verschlüsseln des Backups konfiguriert ist
  • Ein aktives Microsoft-Azure-Konto
  1. Erstelle ein Speicherkonto in Microsoft Azure. Weitere Informationen findest du unter Erstellen eines Azure Speicherkontos – Azure Storage auf der Microsoft-Website.

  2. Erstelle Anmeldeinformationen auf der Grundlage der gemeinsamen Zugriffssignatur. Weitere Informationen findest du unter Erstellen von SAS-Tokens für Speichercontainer auf der Microsoft-Website.

    USE master  CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
      -- this name must match the container path, start with https and must not contain a forward slash at the end
    WITH IDENTITY='SHARED ACCESS SIGNATURE'
      -- this is a mandatory string and should not be changed   
     , SECRET = 'sharedaccesssignature'
    GO
  3. Starte ein natives verschlüsseltes Backup im Microsoft-Azure-Speicher:

    BACKUP DATABASE [TestDB] TO  URL = N'https://backuptestsanketh.blob.core.windows.net/backup/TestDB_backup_2022_09_29_112330.bak' WITH  COPY_ONLY, NOFORMAT, NOINIT,  NAME = N'BackupEnc-Full Database Backup', NOSKIP, NOREWIND, NOUNLOAD, COMPRESSION,
    ENCRYPTION(ALGORITHM = AES_128, SERVER CERTIFICATE = [On_PremTDE_Cert]),  STATS = 10
    GO

    Hinweis: Amazon RDS unterstützt keine Backup-Wiederherstellungen direkt aus Microsoft-Azure-Speichercontainern. Du musst das Backup auf ein Zwischensystem herunterladen.

  4. Verwende die AWS-Managementkonsole, um das verschlüsselte Backup in den S3-Bucket tde-db hochzuladen.

  5. Führe den folgenden Befehl aus, um das verschlüsselte Backup wiederherzustellen:

    exec msdb.dbo.rds_restore_database@restore_db_name='AzureBackupEncrypted',
    @s3_arn_to_restore_from='arn:aws:s3:::tde-db/backup/azure-encrypted.bak'

Hinweis: Wenn du Fehler erhalten hast, findest du weitere Informationen unter Was sind häufige Probleme, die bei der Verwendung nativer Backups und Wiederherstellungen in RDS für SQL Server auftreten können?

Ähnliche Informationen

TDE-fähige SQL-Server-Datenbanken zu Amazon RDS für SQL Server migrieren

Wie stelle ich eine mit AWS Key Management Service (AWS KMS) verschlüsselte Sicherungsdatei in RDS für SQL Server aus einer On-Premises-Umgebung wieder her?