Amazon Elastic Block Store (Amazon EBS) で AWS KMS を使用する方法 - AWS Key Management Service

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon Elastic Block Store (Amazon EBS) で AWS KMS を使用する方法

このトピックでは、Amazon Elastic Block Store (Amazon EBS) で AWS KMS を使用してボリュームとスナップショットを暗号化する方法について詳しく説明します。Amazon EBS ボリュームを暗号化する基本的な手順については、「Amazon EBS の暗号化」を参照してください。

Amazon EBS 暗号化

暗号化の対象となる Amazon EBS ボリュームをサポートされている Amazon Elastic Compute Cloud (Amazon EC2) インスタンスタイプにアタッチすると、そのボリュームに保管されるデータ、そのボリュームとのディスク I/O、そのボリュームから作成されたスナップショットは、すべて暗号化されます。暗号化は Amazon EC2 インスタンスをホストするサーバー側で実施されます。

この機能は、すべての Amazon EBS ボリュームタイプでサポートされます。暗号化されたボリュームには、他のボリュームにアクセスする場合と同じ方法でアクセスできます。暗号化と復号化は透過的に処理され、ユーザー、EC2 インスタンス、アプリケーションからの追加アクションは不要です。暗号化されたボリュームのスナップショットは自動的に暗号化され、暗号化されたスナップショットから作成されたボリュームも、自動的に暗号化されます。

EBS ボリュームの暗号化ステータスは、ボリュームの作成時に決定されます。既存のボリュームの暗号化ステータスを変更することはできません。ただし、暗号化されたボリュームと暗号化されていないボリューム間でデータを移行でき、スナップショットのコピー中に新しい暗号化のステータスを適用できます。

Amazon EBS はデフォルトでオプションの暗号化をサポートしています。AWS アカウントとリージョン内のすべての新しい EBS ボリュームとスナップショットコピーで自動的に暗号化を有効にすることができます。この構成設定は、既存のボリュームやスナップショットには影響しません。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド または Windows インスタンスの Amazon EC2 ユーザーガイド の「デフォルトでの暗号化」を参照してください。

CMKs およびデータキーの使用

暗号化 Amazon EBS ボリュームを作成するときは、AWS KMS カスタマーマスターキー (CMK) を指定します。デフォルトでは、Amazon EBS は、お客様のアカウント (aws/ebs) に割り当てられた Amazon EBS 用の AWS 管理の CMK を使用します。ただし、お客様が作成および管理する、カスタマー管理の CMK を指定することはできます。

カスタマー管理の CMK を使用するには、お客様に代わって CMK を使用する権限を Amazon EBS に付与する必要があります。必要なアクセス権限のリストについては、Linux インスタンス用 Amazon EC2 ユーザーガイドまたは Windows インスタンスの Amazon EC2 ユーザーガイドの「IAM ユーザーのアクセス権限」を参照してください。

重要

Amazon EBS は、対称 CMKs のみをサポートしています。非対称 CMK を使用して Amazon EBS ボリュームを暗号化することはできません。CMK が対称か非対称かを判断する方法については、「対称と非対称の識別CMKs」を参照してください。

ボリュームごとに、Amazon EBS は、指定した CMK で暗号化された一意のデータキーを生成するように AWS KMS に要求します。Amazon EBS は、暗号化されたデータキーをボリュームとともに保存します。次に、ボリュームを Amazon EC2 インスタンスにアタッチすると、Amazon EBS は AWS KMS を呼び出してデータキーを復号します。Amazon EBS は、ハイパーバイザーメモリ内のプレーンテキストデータキーを使用して、ボリュームへのすべてのディスク I/O を暗号化します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド または Windows インスタンスの Amazon EC2 ユーザーガイド の「EBS 暗号化のしくみ」を参照してください。

Amazon EBS の暗号化コンテキスト

AWS KMS への GenerateDataKeyWithoutPlaintext および Decrypt リクエストでは、Amazon EBS は、リクエスト内のボリュームまたはスナップショットを識別する名前と値のペアを持つ暗号化コンテキストを使用します。暗号化コンテキストの名前は変わりません。

暗号化コンテキスト は、一連のキーと値のペアを含む任意非シークレットデータです。データを暗号化するリクエストに暗号化コンテキストを組み込むと、AWS KMS は暗号化コンテキストを暗号化されたデータに暗号化してバインドします。データを復号化するには、同じ暗号化コンテキストに渡す必要があります。

すべてのボリュームと、Amazon EBS CreateSnapshot オペレーションで作成された暗号化されたスナップショットについては、Amazon EBS はボリューム ID を暗号化コンテキスト値として使用します。CloudTrail ログエントリの requestParameters フィールドで、暗号化コンテキストは以下のようになります。

"encryptionContext": { "aws:ebs:id": "vol-0cfb133e847d28be9" }

Amazon EC2 CopySnapshot オペレーションで作成された暗号化されたスナップショットの場合、Amazon EBS はスナップショット ID を暗号化コンテキスト値として使用します。CloudTrail ログエントリの requestParameters フィールドで、暗号化コンテキストは以下のようになります。

"encryptionContext": { "aws:ebs:id": "snap-069a655b568de654f" }

Amazon EBS エラーの検出

暗号化された EBS ボリュームを作成したり、ボリュームを EC2 インスタンスにアタッチしたりするために、Amazon EBS および Amazon EC2 インフラストラクチャは、EBS ボリュームの暗号化のためにユーザーが指定した CMK を使用する必要があります。CMK が使用できない場合 (キーの状態Enabled になっていない場合など)、ボリュームの作成またはボリュームのアタッチは失敗します。

この場合、Amazon EBS はイベントを Amazon CloudWatch Events に送信して、ユーザーにエラーを知らせます。CloudWatch イベント では、これらのイベントに応じて自動アクションをトリガーするルールを設定できます。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「Amazon CloudWatch Events for Amazon EBS」を参照してください。特に以下のセクションに注目してください。

これらのエラーを修正するには、EBS ボリュームの暗号化のために指定した CMK が有効になっていることを確認します。これを行うには、最初に CMK を表示して現在のキーステータス (AWS マネジメントコンソール の [Status] 列) を確認します。次に、以下のリンクのいずれかで情報を確認します。

暗号化された Amazon EBS ボリュームを AWS CloudFormation で作成する

AWS CloudFormation を使用して、暗号化された Amazon EBS ボリュームを作成できます。詳細については、『AWS CloudFormation ユーザーガイド』の「AWS::EC2::Volume」を参照してください。