如何將採用 KMS 加密的備份檔案從內部部署環境還原到 RDS for SQL Server?

上次更新日期:2022 年 10 月 14 日

我想要將採用 AWS Key Management Service (KMS) 加密的備份檔案從內部部署環境還原到 Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 執行個體。如何使用原生備份與還原功能執行此操作?

簡短描述

AWS KMS 加密使用 AWS KMS key,在 RDS for SQL Server 中安全加密 Microsoft SQL Server 備份檔案。您可以將加密的備份還原到另一個 RDS for SQL Server 執行個體。

解決方案

注意:在開始執行下列解決方案之前,請確認您具備下列項目:

1.    指定 AWS KMS key 參數 (@kms_master_key_arn),在原生備份上啟動用戶端加密:

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.    在相同區域和帳戶中的另一個 RDS for SQL Server 執行個體中還原採用 AWS KMS 加密的備份。為此,請在下列命令中指定用來加密備份的相同 AWS KMS key:

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';

在相同帳戶下的另一區域中還原採用 AWS KMS 加密的備份

如果需要在相同帳戶下的另一區域中還原採用 AWS KMS 加密的備份,請執行下列動作:

1.    建立多區域 AWS KMS key。確認選擇對稱金鑰作為金鑰類型。

2.    為所需的目標區域建立複本金鑰

3.    在區域 A 中指定 AWS KMS key 參數 (@kms_master_key_arn),以啟動加密的原生備份:

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.    將備份檔案複製到相同區域中的 S3 儲存貯體。Amazon RDS 不支援跨區域儲存貯體

5.    指定用於加密備份的相同 AWS KMS key ID,還原區域 B 中採用 AWS KMS 加密的備份。

注意:與 @kms_master_key_arn 關聯的區域會隨之變更。

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';

在內部部署環境、跨帳戶或跨區域中還原採用 AWS KMS 加密的備份。

以下三種情境需要解決方案才能還原備份:

  • 採用 AWS KMS 加密的資料庫備份必須在相同區域但在不同帳戶 (跨帳戶) 下還原。 Amazon RDS 不支援跨帳戶 AWS KMS key 共享。這表示您無法使用 KMS key K1 加密帳戶 A 中的備份,然後使用相同的金鑰還原帳戶 B 中的備份。
  • 採用 AWS KMS 加密的資料庫備份必須在不同區域和不同帳戶 (跨區域和跨帳戶) 下還原。 Amazon RDS 不支援跨帳戶 AWS KMS key 共享或跨區域儲存貯體。
  • 採用 AWS KMS 加密的資料庫備份必須在內部部署中進行還原。 內部部署環境並不知道 AWS KMS key 詳細資訊,因為它是外部實體。因此,您必須在還原之前解密採用 AWS KMS 加密的檔案。

如需有關這些限制的,請參閱用於 Amazon RDS 的 Microsoft SQL Server 備份的用戶端加密和解密中的從 Amazon RDS for SQL Server 匯出一節。