如何对已加密的 EBS 卷进行解密?

上次更新时间:2020 年 8 月 20 日

我想对使用默认的 AWS Key Management Service (KMS) 客户主密钥 (CMK) 或自定义 CMK 加密的 Amazon Elastic Block Store (Amazon EBS) 卷进行解密。该如何操作?

简短描述

您可以使用临时的 Amazon Elastic Compute Cloud (Amazon EC2) 实例将加密卷复制到未加密的新卷中。然后可以将未加密的卷附加到您的原始实例。

解决方法

注意:以下解决方法将根卷用作示例。您也可以在辅助卷上执行以下步骤。

1.    创建加密根卷的快照或使用加密卷创建实例的 AMI。使用快照和 AMI 在执行任何重大任务前为您的资源提供备份。

2.    打开 Amazon EC2 控制台

3.    停止具有加密根卷的实例

4.    在 Description(描述)选项卡中的 Root device(根设备)下,选择根卷,然后选择 EBS ID。记下根设备的名称。

注意:根设备因 AMI 而异。例如,Amazon Linux 1 和 2 使用 /dev/xvda。其他发行版(如 Ubuntu 14、16、18、CentOS7 和 RHEL 7.5)使用 /dev/sda1

5.    依次选择操作断开卷,然后选择是,请分离。记下可用区。

6.    使用类似的 OS 在与原始实例相同的可用区中启动救援实例

7.    启动救援实例后,从导航窗格中选择,然后选择已分离且已加密的根卷。

8.    依次选择操作附加卷

9.    选择救援实例 ID (id-xxxx),并将已加密的卷附加到 /dev/xvdf/dev/sdf

10.   在与原始的加密卷相同的可用区中创建未加密的新卷。 

重要提示 :为避免数据丢失,请确认您的新卷大小大于加密卷的大小。

11.   将未加密的新卷作为 /dev/xvdg/dev/sdg 附加到救援实例。

12.   连接救援实例,并使用 lsblk 命令确认根设备和两个附加的卷存在。

$lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk 
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0   8G  0 disk 
└─xvdf1 202:81   0   8G  0 part 
xvdg    202:96   0   8G  0 disk

13.   将 dd 命令用作 sudoer/root,以将原始的已加密卷(输入文件为 /dev/xvdf)移动到未加密的新卷(输出文件为 /dev/xvdg)中。

#dd if=/dev/xvdf of=/dev/xvdg bs=4096 status=progress

注意:数据传输时间根据卷和实例的大小和类型而不同。

14.   将新的未加密卷 (/dev/xvdg) 与救援实例分离,然后将其作为 /dev/xvda /dev/sda1 挂载到原始实例。

15.   连接原始实例,以确认实例读取了未加密(复制)的新根卷。

16.   为确保根卷现在没有加密,请在 Amazon EC2 控制台中选择原始实例,然后查看卷的属性。

注意:您可能需要重启或停止并启动实例来分区更改注册到内核中。

17.   对原始实例上的任何其他加密卷重复该过程,以创建未加密的“克隆”卷。

18.   在确认未加密的新卷运行正常后,关闭救援实例。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?