デフォルトの AWS Key Management Service (AWS KMS) キーまたはカスタム KMS キーで暗号化した Linux の Amazon Elastic Block Store (Amazon EBS) ボリュームを暗号化解除したいです。
解決策
注: 次の解決策では、ルートボリュームを例として示しています。セカンダリボリュームでも、次の手順を実行することができます。
Amazon EBS ボリュームの暗号化を解除するには、次の手順を実行します。
- 暗号化されたルートボリュームのスナップショットを作成するか、暗号化されたボリュームを含むインスタンスの Amazon マシンイメージ (AMI) を作成します。
注: 主要なタスクを実行する前に、スナップショットと AMI を使用してリソースをバックアップすることがベストプラクティスです。
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- 暗号化されたルートボリュームのあるインスタンスを停止します。
- [ストレージ] タブでルートデバイスの名前を書き留めた後、[ボリューム ID] を選択します。
注: ルートデバイスは AMI ごとに異なります。たとえば、Amazon Linux 1 と 2 では /dev/xvda を使用します。Ubuntu 14、16、18、CentOS7、RHEL 7.5 など、その他のディストリビューションでは /dev/sda1 を使用します。
- [アクション] を選択し、[ボリュームのデタッチ] を選択します。
- [デタッチする] を選択し、アベイラビリティーゾーンを書き留めます。
- 元のインスタンスと同じアベイラビリティーゾーン (AZ) でレスキューインスタンスを起動します。
注: 元のインスタンスの起動に使用したものに近似したオペレーティングシステム (OS) を使用してください。
- ナビゲーションペインで [ボリューム] を選択し、暗号化されたルートボリュームを選択します。
- [アクション] を選択し、[ボリュームのアタッチ] を選択します。
- [インスタンス] でレスキューインスタンス ID を選択します。
- [デバイス名] で /dev/xvdf または /dev/sdf を選択します。
- 元の暗号化されたボリュームと同じアベイラビリティーゾーンに、暗号化されていない新しいボリュームを作成します。
重要: データロスを防ぐために、新しいボリュームのサイズが暗号化されたボリュームのサイズよりも大きいことを確認してください。
- 暗号化されていない新しいボリュームを、/dev/xvdg または /dev/sdg としてレスキューインスタンスにアタッチします。
- レスキューインスタンスに接続し、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
- 元の暗号化されたボリュームから新しい暗号化されていないボリュームにデータを移動するには、sudo または root ユーザーで dd コマンドを実行します。
dd if=/dev/xvdf of=/dev/xvdg bs=4096 status=progress
注: 上記のコマンドでは、入力ファイルは /dev/xvdf、出力ファイルは /dev/xvdg です。データ転送時間は、ボリュームとインスタンスのサイズとタイプに左右されます。
新しい暗号化されていない /dev/xvdg ボリュームをレスキューインスタンスからデタッチし、元のインスタンスに /dev/xvda または /dev/sda1 としてアタッチします。
元のインスタンスに接続し、インスタンスが新しい暗号化されていないルートボリュームを読み取れることを確認します。
Amazon EC2 コンソールで元のインスタンスを選択し、ボリュームのプロパティを表示することで、ルートボリュームの暗号化が解除されたことを確認します。
注: パーティションの変更をカーネルに登録するには、インスタンスを再起動するか、停止して起動する必要がある場合があります。
元のインスタンスにある他の暗号化されたボリュームに対して同じプロセスを繰り返して、暗号化されていないクローンボリュームを作成します。
レスキューインスタンスを削除します。