デフォルトの AWS Key Management Service (AWS KMS) キーまたはカスタム KMS キーを使用して暗号化された Amazon Elastic Block Store (Amazon EBS) ボリュームの暗号化を Linux で解除したいと考えています。どのようにすれば実現できますか?
簡単な説明
一時的な Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスを使用して、暗号化されたボリュームを暗号化されていない新しいボリュームにコピーできます。その後、暗号化されていないボリュームを元のインスタンスにアタッチできます。
解決方法
注: 次の解決方法では、例としてルートボリュームを使用しています。これらの手順は、セカンダリボリュームでも実行できます。
1. 暗号化されたルートボリュームのスナップショットを作成するか、または暗号化されたボリュームを含むインスタンスの AMI を作成します。主要なタスクを実行する前に、スナップショットと AMI を使用してリソースのバックアップを作成します。
2. Amazon EC2 コンソールを開きます。
3. 暗号化されたルートボリュームを持つインスタンスを停止します。
4. [Description] (説明) タブの [Root device] (ルートデバイス) でルートボリュームを選択します。次に、EBS ID を選択します。ルートデバイスの名前をメモします。
注: ルートデバイスは AMI によって異なります。例えば例えば、Amazon Linux 1 および 2 は /dev/xvda を使用します。Ubuntu 14、16、18、CentOS7、RHEL 7.5 などのその他のディストリビューションでは、/dev/sda1 を使用します。
5. [Actions]、[Detach Volume]、[Yes、Detach] の順に選択します。アベイラビリティーゾーンを書き留めます。
6. 元のインスタンスと同じアベイラビリティーゾーンで、同じような OS を持つレスキューインスタンスを起動します。
7. レスキューインスタンスが起動したら、ナビゲーションペインから [Volumes] を選択します。次に、デタッチされた暗号化されたルートボリュームを選択します。
8. [Actions]、[Attach Volume] の順に選択します。
9. レスキューインスタンス ID (id-xxxx) を選択し、暗号化されたボリュームを /dev/xvdf または /dev/sdf にアタッチします。
10. 元の暗号化されたボリュームと同じアベイラビリティーゾーンで暗号化されていない新しいボリュームを作成します。
重要: データの損失を避けるため、新しいボリュームのサイズが暗号化されたボリュームのサイズよりも大きいことを確認してください。
11. 暗号化されていない新しいボリュームを、/dev/xvdg または /dev/sdg としてレスキューインスタンスにアタッチします。
12. レスキューインスタンスに接続してから、lsblk コマンドを使用して、ルートデバイスと、アタッチされている両方のボリュームが存在することを確認します。
$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 8G 0 disk
└─xvdf1 202:81 0 8G 0 part
xvdg 202:96 0 8G 0 disk
13. sudoer/root として dd コマンドを使用し、元の暗号化されたボリューム (入力ファイルは / dev/xvdf) から新しい暗号化されていないボリューム (出力ファイルは / dev/xvdg) にデータを移動させます。
#dd if=/dev/xvdf of=/dev/xvdg bs=4096 status=progress
注意: データ転送時間は、ボリュームとインスタンスのサイズとタイプに応じて異なります。
14. 暗号化されていない新しいボリューム (/dev/xvdg) をレスキューインスタンスからデタッチします。そして、/dev/xvda または /dev/sda1 として元のインスタンスにアタッチします。
15. 元のインスタンスに接続して、インスタンスが暗号化されていない (コピーされた) 新しいルートボリュームを読み取ることを確認します。
16. ルートボリュームの暗号化が解除されたことを確認するため、Amazon EC2 コンソールで元のインスタンスを選択してから、ボリュームのプロパティを表示します。
注意: パーティションの変更をカーネルに登録するには、インスタンスを再起動する、またはインスタンスを停止してから起動する必要がある場合があります。
17. 元のインスタンスの他の暗号化されたボリュームについてもこのプロセスを繰り返し、暗号化されていない「クローン」ボリュームを作成します。
18. 暗号化されていない新しいボリュームが正常に動作していることを確認したら、レスキューインスタンスをシャットダウンします。