我有许多未加密的旧 EBS 卷。为了满足新的企业安全措施,所有数据都需要“静态加密”,因此我需要将所有卷转换为加密卷。
实现这一目标的最佳方法是什么?
答案1
可以将未加密的 EBS 快照复制到加密的 EBS 快照。因此可以使用以下流程:
- 停止您的 EC2 实例。
- 创建要加密的卷的 EBS 快照。
- 复制 EBS 快照,并在此过程中加密副本。
- 从新的加密 EBS 快照创建新的 EBS 卷。新的 EBS 卷将被加密。
- 分离原始 EBS 卷并附加新的加密 EBS 卷,确保匹配设备名称(/dev/xvda1 等)
答案2
[[这不是正确答案,也不是我们现在做事的方式,但我将其留在这里,以防其他人发现以“困难的方式”做这件事有用。]]
以下过程对于我们将现有的 EBS 卷转换为加密卷非常有效。
- 创建卷尺寸完全相同并与未加密卷位于同一可用区,但启用了加密。如果旧卷名为“XYZ”,请将新卷命名为“New XYZ”,这样您就不会丢失它的踪迹。我们使用默认的 AWS 加密密钥,但还有其他选项EBS 文档。
- 将临时 Linux 实例作为转换机启动到与卷相同的可用区。实际上,任何大小的实例都可以,尽管 EBS 优化实例可能会更快地完成迁移。
- 关闭当前未加密卷的实例。
- 从实例中分离未加密的卷。
- 将未加密的卷附加到转换器实例。观察附加对话框显示正在安装的设备。第一个附加卷应该类似于
/dev/sdf
。 - 将您刚刚创建的新加密卷也附加到转换器实例。第二个附加卷可能是
/dev/sdg
。 - 以 root 或具有 sudo 访问权限的用户身份登录转换器实例。
如果您查看该
/proc/diststats
文件,在底部您应该会看到类似xvdf
和的内容xvdg
,它们对应于附加的附加分区。名称可能因您使用的 Linux 内核变体/版本而异。如果有任何问题,您可以/proc/diststats
在附加之前检查该文件以查看添加了哪些分区。... # root partition 202 1 xvda1 187267 4293 12100842 481972 52550 26972 894168 156944 0 150548 ... # swap partion 202 16 xvdb 342 10 2810 8 5 1 48 12 0 20 20 # first attached drive, corresponds to /dev/xvdf 202 80 xvdf 86 0 688 28 0 0 0 0 0 28 28 # second attached drive, corresponds to /dev/xvdg 202 96 xvdg 86 0 688 32 0 0 0 0 0 32 32
运行以下
dd
命令从源未加密卷复制到目标加密卷。 警告:此命令可能极具破坏性。请慢慢来。检查两次,剪切一次。让别人看着你。这些将帮助你避免破坏数据。让我们小心一点!# using a block-size of 16k (a guess), copy from input-file (if) to output-file (of) dd bs=16k if=/dev/xvdf of=/dev/xvdg
- 等待 dd 命令完成并返回命令提示符。在我们的实例中,16GB 磁盘需要大约 5 分钟,因此您可以用更大的磁盘进行计算。您的里程可能会有所不同。
- 从转换器实例中分离未加密的卷和新加密的卷。
- 将新的加密卷附加到之前使用未加密卷的实例并启动它。
- 当它出现时,请执行您需要执行的操作以验证系统是否良好。
- 将卷从“XYZ”重命名为“旧 XYZ”。将“新 XYZ”重命名为“XYZ”。保留“旧 XYZ”卷,以防出现问题时需要恢复。