Amazon-Ec2

如何將未加密的 EBS 轉換為加密

  • June 28, 2018

我有許多未加密的舊 EBS 卷。為了滿足新的企業安全措施,所有數據都需要“靜態加密”,因此我需要將所有捲轉換為加密。

實現這一目標的最佳方法是什麼?

可以將未加密的 EBS 快照複製到加密的 EBS 快照。所以可以使用以下流程:

  1. 停止您的 EC2 實例。
  2. 創建要加密的捲的 EBS 快照。
  3. 複製 EBS 快照,在此過程中加密副本。
  4. 從新的加密 EBS 快照創建新的 EBS 卷。新的 EBS 卷將被加密。
  5. 分離原始 EBS 卷並附加新的加密 EBS 卷,確保與設備名稱匹配(/dev/xvda1 等)

$$ [ This is not the right answer and not how we do things now but I’ll leave this here in case anyone else finds some utility to doing it the “hard way”. $$] 以下過程非常適合我們將現有的 EBS 卷轉換為加密卷。

  • 創建與未加密卷具有相同大小和相同可用區的捲,但啟用了加密。如果舊卷名為“XYZ”,請將新卷命名為“新 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”重命名為“Old XYZ”。將“新 XYZ”重命名為“XYZ”。保留“舊 XYZ”卷,以防萬一出現問題需要恢復。

引用自:https://serverfault.com/questions/778759