稼働中 Windows EC2 インスタンス で EBS の暗号化をしてみた

2023.09.11

はじめに

テクニカルサポートの 片方 です。
EBS が暗号化されていない、稼働中の Windows EC2 インスタンスについて、EBS(ルートボリュームを含む ) 暗号化する変更をやってみました。
流れとしては以下が想定されます。

  1. EBS が暗号化されてない EC2 インスタンス起動
  2. RDP 接続
  3. Shutdown without Sysprep 実行
  4. EBS が暗号化されてない EC2 インスタンスから AMI 取得
  5. 作成した AMI からインスタンスを起動(設定で EBS を暗号化します)
  6. EBS が暗号化されてない EC2 インスタンスの削除

やってみた

対象の EC2 インスタンスは、Windows OS で AMI は Microsoft Windows Server 2022 Base を利用しています。 設定は以下の通り、暗号化されてない EBS を追加でアタッチしています。

対象の Windows OS が起動している EC2 インスタンスへ RDP 接続します。(私は SSM の Fleet Manager を利用した RDP 接続をしました)

無事に RDP 接続できたことを確認します。

左下の検索窓に「EC2Launch」と記述し、表示された Amazon EC2Launch settings をクリックします。

以下のような、画面が表示されるので、下部の "Shutdown without Sysprep" をクリックし、Yes を選択します。
成功すれば、RDP の接続は終了されます。

EC2 のマネージドコンソールより、停止中の EBS が暗号化されてない EC2 インスタンスから AMI 取得します。
EC2 選択 ⇒ アクション ⇒ イメージとテンプレート ⇒ イメージを作成

設定画面では、何も変更せずデフォルトのまま「イメージを作成」をクリックして、AMI を作成します。

AMI のマネジメントコンソールより、作成した AMI からインスタンスを起動します。

「ストレージを設定」のセクションで アドバンスト をクリックします。
(起動する VPC やサブネットなどは EBS が暗号化されてない EC2 インスタンスと同様の設定にしています。)

暗号化済みを選択する部分で、「暗号化済み」を選択してください。
また、ボリュームの暗号化に使用される KMS キーを選択してください。
※他にもアタッチしている EBS ボリュームがある場合は、忘れず同様に暗号化済みにしてください。

設定忘れなどなければ、「インスタンスを起動」をクリックします。

以下の観点で 起動したインスタンスが問題ないかを確認します。

  • インスタンスが実行中であるか
  • ステータスチェック、「2/2 のチェックに合格しました」であるか
  • EBS は暗号化済みであるか
  • KMS キー ID は表示されているか

最後に、EBS が暗号化されてない EC2 インスタンスを「終了(削除)」します。

以上で終了です。お疲れさまでした!!

まとめ

留意点としては、EC2Launch より "Shutdown without Sysptep" を実行される際の EC2Launch の設定についてご確認ください。
例えば、Administrator Password で "Do Nothing" 以外が選択されている場合は、Administrator のパスワードが変更されることが想定されるので、変更を希望しない場合は "Do Nothing" をご選択してください。
なお、手順でわかる通りダウンタイムが発生します。検証用の環境にて実際にお試しいただき、EC2インスタンスの動作や許容可能な変更時間であるかなどを事前に確認することもご検討ください。
誰かのお役に立てれば幸いです。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。