如何将未加密的 EBS 转换为加密的

如何将未加密的 EBS 转换为加密的

我有许多未加密的旧 EBS 卷。为了满足新的企业安全措施,所有数据都需要“静态加密”,因此我需要将所有卷转换为加密卷。

实现这一目标的最佳方法是什么?

答案1

可以将未加密的 EBS 快照复制到加密的 EBS 快照。因此可以使用以下流程:

  1. 停止您的 EC2 实例。
  2. 创建要加密的卷的 EBS 快照。
  3. 复制 EBS 快照,并在此过程中加密副本。
  4. 从新的加密 EBS 快照创建新的 EBS 卷。新的 EBS 卷将被加密。
  5. 分离原始 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”卷,以防出现问题时需要恢复。

相关内容