Amazon EBSの暗号化
AmazonのElastic Compute Cloud(EC2)サービスをご利用の場合、それらのインスタンスに永続的なストレージ容量を提供するためにAmazon Elastic Block Store(EBS)も併せて利用していることと思います。EBSはハードドライブと同様の機能を持ち、インスタンスがファイルシステムを作成し永続的なストレージを確保することを可能にします。本記事ではEBSについて深く掘り下げ、その内容を保護するための暗号化の重要性について説明します。EBSボリュームの暗号化方法と、暗号化がパフォーマンスに与える影響についてご説明いたします。また、スナップショットの作成や共有といった操作への影響、暗号化ボリュームの長期的なセキュリティ上の課題についても考察します。
弾力性のあるブロックスストレージと暗号化
AWSでは、EBSボリュームの暗号化を可能な限り簡単に行えるようにしています。ボリュームが暗号化されると、ブートボリュームやデータボリュームを含む、そのボリューム上に保存されるすべてのデータが暗号化されます。暗号化されたEBSをEC2インスタンスにアタッチすると、暗号化は保存データだけでなく、ボリュームとの間で送受信されるすべてのデータ転送にも適用されます。
AWSでは、アカウント内のリージョンごとに設定可能なデフォルトの暗号化プロセスをサポートしています。また、ボリュームの暗号化には、AWSが作成したキーとお客様管理キー(CMK)のいずれかを選択できます。いずれの場合も、Amazonは業界標準のAES-256暗号化でデータを暗号化し、暗号化キーをAWS Key Management Service(KMS)に保管します。暗号化キーの選択肢については、本記事の後半で暗号化を有効化する簡単な手順ガイドと共に説明いたします。
暗号化に関するよくあるご質問:
EBSボリュームの暗号化は必要ですか?
保存されているすべてのデータを暗号化することは、ベストプラクティスです。たとえ潜在的なハッカーにとって価値がないと思われるデータであっても、デフォルトで暗号化することで、組織内の誰かが誤ってアクセスする可能性を減らすことができます。AWSでは暗号化プロセスが非常にシームレスに処理されるため、データを暗号化しない理由はありません。
暗号化はパフォーマンスに影響しますか?
AWSは暗号化処理を透過的に処理するため、暗号化有無にかかわらず、EC2とEBSボリューム間のIOPSパフォーマンスは同等です。仮に暗号化有効化による軽微な影響があったとしても、クラウド上でデータを暗号化しないままにしておく価値はありません。
EBS暗号化を有効化する簡単な手順ガイド
EBS暗号化に関連するAWSコンソールの操作例をいくつかご紹介します。リージョン単位でのデフォルト暗号化キーの設定、新規暗号化ボリュームの作成、既存ボリュームの暗号化、暗号化スナップショットを他アカウントと共有する際の対応について説明します。
リージョン単位でのKMSキー設定とデフォルト暗号化の有効化
アカウント内のリージョンで暗号化キーを設定し、暗号化を有効にすると、新規作成されるすべてのボリュームが強制的に暗号化されます。この操作は、ご利用の全リージョンにおいて推奨されるベストプラクティスです。まず、AWSアカウントにログインし、暗号化を有効にしたいリージョンのEC2ホームページに移動します。EC2ダッシュボードの右上隅にアカウント属性のセクションが表示されます。設定の下にあるEBS暗号化のリンクをクリックしてください。

こちらのリンクからEBS暗号化の管理パネルにアクセスできます。デフォルト設定ではEBS暗号化が無効になっており、下記のスクリーンショットと同様の状態となります。

管理ボタンをクリックして、新しいEBSボリュームの暗号化を有効にし、デフォルトの暗号化キーを設定してください。

提供されたキーをご利用いただくか、テキストボックスをクリックして利用可能なCMK(お客様管理キー)を選択いただけます。EBS暗号化の更新ボタンをクリック後、このリージョンで新規作成されるすべてのEBSボリュームは、指定されたキーを使用して暗号化されます。CMKをご利用になる場合、キー数が無料利用枠の閾値を超えると課金が発生する可能性がございますが、その金額はごくわずかです。
新しい暗号化ボリュームの作成
AWSは、現行世代のEC2インスタンスおよび多くの旧世代インスタンスの暗号化をサポートしています。古いまたは特殊なインスタンスタイプをご利用の場合は、EBS暗号化の要件をご確認いただき、サポート対象であることをご確認ください。新しいEC2インスタンスのインスタンス化時にボリュームを作成するか、スタンドアロンのボリュームを作成することができます。本例では範囲を限定するため、後者の方法を使用します。
EC2ホームページより、左側のナビゲーションパネルにあるElastic Block Storeセクション内のボリュームを選択してください。オレンジ色のボリュームの作成ボタンをクリックして作成プロセスを開始します。
ボリュームタイプ、サイズ、アベイラビリティゾーン(AZ)を選択後、下記のように暗号化セクションが表示されます。上記の手順に従った場合、「暗号化はデフォルトで設定されています。」というメッセージが表示されます。この場合、リージョンのデフォルトキーをそのまま使用するか、必要に応じて別のキーを選択できます。アカウントで暗号化が有効化されていない場合は、このボリュームを暗号化チェックボックスをオンにしてこのセクションを表示し、暗号化キーを選択する必要があります。

以上が手順のすべてです。ボリュームの作成ボタンをクリックすると、EC2インスタンスに接続可能な暗号化ボリュームが準備されます。
既存の非暗号化ボリュームから暗号化ボリュームを作成する方法
上記の手順は、新規アカウントで始める場合に最適です。しかし、この記事をお読みの方には、既に暗号化されていないボリュームをお持ちで、その暗号化方法をお探しの可能性が高いでしょう。このセクションはそのような方に向けた内容です。残念ながら、暗号化されていないボリュームを一括で暗号化する単一のステップは存在しません。ただし、いくつかの手順を踏むことで実現可能です。
お使いのリージョンで暗号化をデフォルトで有効にしておくと作業が楽になりますが、その手順なしでもボリュームの暗号化されたコピーを作成することは可能です。
AWS EC2内のボリュームダッシュボードから、暗号化が必要なボリュームを特定してください。操作対象のボリュームの左端の列にあるチェックボックスを選択し、アクションドロップダウンからスナップショットの作成をクリックします。スナップショットに説明を追加しておくと便利ですが、必須ではありません。

暗号化されていないボリュームのスナップショットを作成したら、スナップショットダッシュボード(ボリュームダッシュボードへのリンクの直下に位置します)に移動してください。暗号化されていないスナップショットの横にあるチェックボックスを見つけ、チェックを入れた後、アクションドロップダウンからスナップショットのコピーを選択してください。
暗号化がデフォルトで有効になっている場合、適切なKMSキーを選択し、スナップショットの作成をクリックするだけで結構です。暗号化が有効になっていない場合でも、このスナップショットを暗号化オプションを選択できます。その場合、AWSがKMSキーの選択を促し、キーの詳細を表示します。下記の画像は、暗号化がデフォルトで有効になっていないアカウントでの手順を示しています。

AWSが暗号化されたスナップショットのコピーを作成するには1~2分ほどかかりますが、完了後はそのスナップショットから新しい暗号化ボリュームを作成し、暗号化されていないボリュームと置き換えることが可能です。
暗号化されたスナップショットを別のアカウントと共有する場合
暗号化されたスナップショットを別のアカウントと共有する際の課題は、そのスナップショットを、共有可能なカスタマー管理キー(CMK)を使用して暗号化する必要がある点です。暗号化されたスナップショットがKMS生成キーを使用している場合、そのコピーを作成し、CMKで暗号化する必要があります。これには、上記の非暗号化スナップショットの暗号化手順に従って実施いただけます。
その他の暗号化/非暗号化に関する課題
上記の例は、AWSアカウントでEBS暗号化を使用する際の初期段階における主な課題を網羅しているはずです。暗号化済みと非暗号化のEBSボリュームが混在する環境をサポートする場合、追加の課題に直面する可能性があります。AWS EBSドキュメントでは、スナップショットやボリュームの再暗号化、暗号化済みボリュームと非暗号化ボリューム間のデータ移行など、これらの暗号化シナリオのいくつかについて説明しています。
EBS キーローテーションと長期的なセキュリティ
AWS アカウントでは暗号化をデフォルトで有効化することがベストプラクティスであることは既に説明しました。セキュリティの観点からもう一つのベストプラクティスは、暗号鍵を定期的にローテーションすることです。AWS はこのプロセスも可能な限り簡素化・透明化しています。
アカウントで自動キーローテーションを有効にすると、KMSが毎年新しいキーを作成します。この場合、既存のボリュームは以前のキーへのアクセス権を保持し、以前のキーを削除しない限り引き続き使用できます。新規ボリュームは新しいキーを使用し、EC2インスタンスは新旧すべてのボリュームと効率的かつ効果的に通信できます。
次のステップ
EBSボリュームの暗号化により、永続化されたデータが確実に保護されます。AWSではこのプロセスを可能な限りシームレスかつ透明性高く設計しています。暗号化をデフォルトで有効化することで、新規ボリュームやスナップショットはすべて暗号化され、誤って暗号化されていないリソースを作成する可能性を排除できます。上記で解決されないご質問や課題がございましたら、AWS EBSドキュメントがEBS関連事項の優れた情報源として常に最新の状態に保たれています。
 
            