我想解密我使用默认 AWS Key Management Service (AWS KMS) 密钥或自定义 KMS 密钥加密的 Linux 中的 Amazon Elastic Block Store (Amazon EBS) 卷。
解决方案
**注意:**以下分辨率以根卷为例。您还可以在辅助卷上执行以下步骤。
要解密您的 Amazon EBS 卷,请完成以下步骤:
- 创建加密根卷的快照,或创建包含加密卷的实例的亚马逊机器映像 (AMI)。
**注意:**最佳做法是在执行任何重大任务之前使用快照和 AMI 来备份资源。
- 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台。
- 停止包含加密根卷的实例。
- 在 Storage(存储)选项卡上,记下根设备的名称,然后选择 Volume ID(卷 ID)。
**注意:**根设备因 AMI 而异。例如,Amazon Linux 1 和 2 使用 /dev/xvda。其他发行版(如 Ubuntu 14、16、18、CentOS 7 和 RHEL 7.5)使用 /dev/sda1。
- 选择 Actions(操作),然后选择 Detach Volume(分离卷)。
- 选择 Yes, 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 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
- 要将数据从原始加密卷移动到新的未加密卷,请以 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 控制台上,选择原始实例,然后查看该卷的属性以确认根卷现在未加密。
**注意:**您可能需要重启或停止并启动实例,才能将分区更改注册到内核。
对原始实例上的其他加密卷重复该过程,以创建未加密的克隆卷。
终止救援实例。