如何从本地环境将 KMS 加密的备份文件还原到 RDS for SQL Server?

2 分钟阅读
0

我有一个使用 AWS Key Management Service(AWS KMS)加密的备份文件,我想将这个备份文件从本地环境还原到一个 Amazon Relational Database Service(Amazon RDS)for Microsoft SQL Server 实例。我想使用本机备份和还原功能。

简述

AWS KMS 加密使用 AWS KMS 密钥安全地加密 RDS for SQL Server 中的 Microsoft SQL Server 备份文件。您只能在同一 AWS 账户内将加密备份还原到 RDS SQL 服务器实例。

先决条件:

解决方案

  1. 指定 AWS KMS 密钥参数 @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. 在同一 AWS 区域和账户中的另一个 RDS for SQL Server 实例中还原 AWS KMS 加密备份。在以下命令中,指定与加密备份相同的 AWS KMS 密钥:

    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 加密备份

  1. 创建多区域主密钥。对于密钥类型,选择对称密钥

  2. 为目标区域创建副本密钥

  3. 在区域 A 中指定 AWS KMS 密钥参数 @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. 在区域 B 中还原 AWS KMS 加密备份。指定与加密备份相同的 AWS KMS 密钥 ID:

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

    **注意:**将 us-east-2 替换为您的 AWS KMS 密钥所属的区域。

跨账户、跨区域或本地环境还原 AWS KMS 加密备份

以下三种情况需要采用变通方法来还原备份:

  • **跨账户:**您必须在同一区域的不同账户中还原 AWS KMS 加密数据库备份。在 Amazon RDS 中您无法跨账户共享 AWS KMS 密钥。例如,您无法进行以下操作:在账户 A 中使用 AWS KMS 密钥 K1 加密一个备份,然后在账户 B 中使用相同的密钥还原这个备份。
  • **跨账户和跨区域:**您必须在不同的区域的不同的账户中还原 AWS KMS 加密数据库备份。在 Amazon RDS 中,您不能跨账户共享 AWS KMS 密钥或跨区域使用桶。
  • **本地:**您必须在一个本地环境中还原 AWS KMS 加密数据库备份。AWS KMS 密钥详细信息是一个外部实体。在还原备份之前,必须解密 AWS KMS 加密文件。

有关这些限制的解决方案,请参阅客户端加密和解密 Microsoft SQL Server 备份,以便与 Amazon RDS 配合使用中的从 Amazon RDS for SQL Server 导出部分。

相关信息

Migrate TDE-enabled SQL Server databases to Amazon RDS for SQL Server

如何从本地环境还原 RDS for SQL Server 中的加密备份文件或加密的 Microsoft Azure 备份?

AWS 官方
AWS 官方已更新 5 个月前