如何转换未encryption的EBS进行encryption

我有一些未encryption的较旧的EBS卷。 在满足新的企业安全措施时,所有数据都需要“静态encryption”,因此我需要将所有卷转换为encryption。

什么是完成这个最好的方法?

可以将未encryption的EBS快照复制到encryption的EBS快照。 所以可以使用以下过程:

  1. 停止你的EC2实例。
  2. 创build要encryption的卷的EBS快照。
  3. 复制EBS快照,在进程中encryption副本。
  4. 从新的encryptionEBS快照创build一个新的EBS卷。 新的EBS卷将被encryption。
  5. 分离原始EBS卷并附加新的encryptionEBS卷,确保匹配设备名称(/ dev / xvda1等)

[这不是正确的答案,也不是我们现在做的事情,但是我会留在这里,以防其他人发现某种程度的“实用方法”。 ]]

以下stream程对于我们将现有的EBS卷转换为encryption卷非常有效。

  • 创build与未encryption的卷相同的大小和相同的可用区域,但启用了encryption。 如果旧卷被命名为“XYZ”,则将新卷命名为“新XYZ”,以免丢失。 我们正在使用默认的AWSencryption密钥,但在EBS文档中还有其他选项。
  • 作为转换器机器启动一个临时的Linux实例到与卷相同的可用区域。 实际上,任何大小的实例都可以完成,但EBS优化实例可以更快地完成迁移。
  • 用当前未encryption的卷closures实例。
  • 从实例中分离未encryption的卷。
  • 将未encryption的卷附加到转换器实例。 观察附加对话框中表示正在安装的设备。 第一个额外的卷应该是像/dev/sdf东西。
  • 将刚刚创build的新encryption卷也附加到转换器实例。 第二个额外的卷可能是/dev/sdg
  • 以root身份login转换器实例或以sudo访问身份login到用户。
  • 如果你看看/proc/diststats文件,在底部你会看到类似xvdfxvdg东西,它们对应于附加的附加分区。 名称可能会有所不同,具体取决于您正在使用的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命令以从源未encryption卷复制到目标encryption卷。 警告:这个命令可能是非常具有破坏性的。 慢慢来。 检查两次,切一次。 有人看着你的肩膀。 这些将帮助你摆脱你的数据。 在那里小心一点!

     # 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分钟,所以你可以做更大的math。 你的旅费可能会改变。
  • 从转换器实例中分离未encryption的和新的encryption卷。
  • 将新的encryption卷附加到之前使用未encryption卷的实例并引导它。
  • 当它出现时,你需要做什么来validation系统看起来不错。
  • 将“XYZ”的音量重命名为“Old XYZ”。 将“New XYZ”重命名为“XYZ”。 留下“Old XYZ”卷,以防止出现问题时需要恢复。