我想解密 Linux 中使用默认或自定义 AWS Key Management Service (AWS KMS) 密钥加密的 Amazon Elastic Block Store (Amazon EBS) 卷。
解决方法
**注意:**以下分辨率以根卷为例。您还可以在辅助卷上执行以下步骤。
要解密您的 Amazon EBS 卷,请完成以下步骤:
- 创建加密根卷的快照,或创建包含加密卷的实例的亚马逊机器映像 (AMI)。
**注意:**最佳做法是在执行任何重大任务之前使用快照和 AMI 来备份资源。
- 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台。
- 停止包含加密根卷的实例。
- 在 Storage(存储)选项卡上,记下根设备的名称,然后选择 Volume ID(卷 ID)。
**注意:**根设备因 AMI 而异。
- 选择 Actions(操作),然后选择 Detach Volume(分离卷)。
- 选择 Detach(分离),然后记下可用区。
- 在与原始实例相同的可用区中启动救援实例。
**注意:**使用与启动原始实例时使用的操作系统 (OS) 相似的操作系统 (OS)。
- 选择 Volumes(卷),然后选择加密的根卷。
- 选择 Actions(操作),然后选择 Attach volume(挂载卷)。
- 对于 Instance(实例),选择救援实例 ID。
- 对于 Device name(设备名称),选择 /dev/xvdf 或 /dev/sdf。
- 在与原始加密卷相同的可用区中创建新的未加密卷。
**重要事项:**为避免数据丢失,请确认您的新卷大小大于加密卷的大小。
- 将新的未加密卷作为 /dev/xvdg 或 /dev/sdg 挂载到救援实例。
- 连接到救援实例。然后,运行 lsblk 命令,确认根设备和挂载卷是否存在:
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTxvda 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
- 要将数据从原始加密卷移动到新的未加密卷,请以 sudo 或根用户身份运行 dd 命令:
dd if=/dev/xvdf of=/dev/xvdg bs=4096 status=progress
**注意:**在上述命令中,输入文件为 /dev/xvdf,输出文件为 /dev/xvdg。数据传输时间因卷和实例的大小和类型而异。
将新的未加密的 /dev/xvdg 卷与救援实例分离。然后,将其作为 /dev/xvda 或 /dev/sda1 挂载到原始实例。
连接到原始实例,确认该实例已读取新的未加密根卷。
从 Amazon EC2 控制台中,选择原始实例,然后查看该卷的属性,确认根卷未进行加密。
**注意:**您可能需要重启或停止并启动实例,才能将分区更改注册到内核。
对原始实例上的其他加密卷重复该过程,以创建未加密的克隆卷。
终止救援实例。