跳至內容

如何在 RDS for SQL Server 中從內部部署環境還原加密的備份檔案或加密的 Microsoft Azure 備份?

2 分的閱讀內容
0

我想要從內部部署環境還原 Amazon Relational Database Service (Amazon RDS) 的加密備份檔案或 Microsoft Azure 備份。

簡短說明

SQL Server 2014 (12.x) 及更新版本提供備份加密。為備份指定加密演算法與加密器。這會建立一個加密的備份檔案。

**注意:**此功能與透明資料加密 (TDE) 加密不同。如需更多資訊,請參閱 SQL Server 中的透明資料加密支援

解決方法

若要將本機或 Microsoft Azure 加密備份還原至 Amazon RDS,您必須擁有伺服器憑證的備份。若沒有憑證,您無法將備份還原至 Amazon RDS。如需更多資訊,請參閱 Microsoft 網站上的備份加密

還原本機加密備份

開始還原加密備份之前,請確認您已建立以下資源:

  • Amazon Simple Storage Service (Amazon S3) 儲存貯體。
  • 已在選項群組中設定 TDE 和 SQLSERVER_BACKUP_RESTORE 的 Amazon RDS 執行個體。
  1. 在您的內部部署帳戶中使用以下指令碼建立主要資料庫金鑰:

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

    如需更多資訊,請參閱 Microsoft 網站上的 CREATE MASTER KEY (Transact-SQL)

  2. 在您的內部部署帳戶中建立受主要金鑰保護的憑證:

    CREATE CERTIFICATE TDE_CertWITH
    SUBJECT='Database_Encryption';
    GO

    如需更多資訊,請參閱 Microsoft 網站上的 CREATE CERTIFICATE (Transact-SQL)

  3. 使用以下指令碼啟動原生備份:

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

    **注意:**最佳實務是開啟 Amazon RDS 還原的壓縮功能。如需更多資訊,請參閱 Microsoft 網站上的備份壓縮 (SQL Server)

  4. 使用 AWS 管理主控台,將加密備份上傳至 S3 儲存貯體 tde-db

  5. 執行以下命令以還原資料庫:

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

還原 Microsoft Azure 加密備份

開始將加密備份還原至 Microsoft 容器之前,請確認您已建立以下資源:

  • Amazon S3 儲存貯體。
  • 已設定 TDE 和 SQLSERVER_BACKUP_RESTORE 選項群組的 RDS 執行個體。
  • 已設定憑證來加密備份的內部部署帳戶。
  • 作用中的 Microsoft Azure 帳戶。
  1. 在 Microsoft Azure 中建立儲存體帳戶。如需更多資訊,請參閱 Microsoft 網站上的建立 Azure 儲存體帳戶

  2. 根據共用存取簽章建立憑證。如需更多資訊,請參閱 Microsoft 網站上的為您的儲存體容器建立 SAS 權杖

    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. 啟動原生加密備份至 Microsoft Azure 儲存體:

    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

    **注意:**Amazon RDS 不支援直接從 Microsoft Azure 儲存體容器還原備份。您必須將備份下載至中介系統。

  4. 使用 AWS 管理主控台,將加密備份上傳至 S3 儲存貯體 tde-db

  5. 執行以下命令以還原加密備份:

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

**注意:**如果您收到錯誤,請參閱在 RDS for SQL Server 中使用原生備份和還原時可能發生哪些常見問題?

相關資訊

將啟用 TDE 的 SQL Server 資料庫遷移至 Amazon RDS for SQL Server

如何從內部部署環境在 RDS for SQL Server 中還原使用 AWS Key Management Service (KMS) 加密的備份檔案?

AWS 官方已更新 2 年前