AWS Key Management Service
開発者ガイド

Amazon Redshift で AWS KMS を使用する方法

このトピックでは、Amazon Redshift で AWS KMS を使用してデータを暗号化する方法について説明します。

Amazon Redshift の暗号化

Amazon Redshift データウェアハウスは、ノードと呼ばれるコンピューティングリソースのコレクションで、クラスターと呼ばれるグループで構成されています。各クラスターは、1 つの Amazon Redshift エンジンを実行し、1 つ以上のデータベースを含みます。

Amazon Redshift は、4 層のキーベースの暗号化アーキテクチャを使用します。これらのキーは、データ暗号化キー、データベースキー、クラスターキー、マスターキーから構成されます。

データ暗号化キーは、クラスター内のデータブロックを暗号化します。各データブロックに、ランダムに生成された AES-256 キーが割り当てられます。これらのキーは、クラスターのデータベースキーを使用して暗号化されます。

データベースキーは、クラスターのデータ暗号化キーを暗号化します。データベースキーは、ランダムに生成された AES-256 キーです。このアーキテクチャは、Amazon Redshift クラスターとは別のネットワーク上にあるディスクに保存され、セキュリティで保護されたチャネルを通じてクラスターに渡されます。

クラスターキーは、Amazon Redshift クラスターのデータベースキーを暗号化します。クラスターキーを管理するには、AWS KMS、AWS CloudHSM、または外部のハードウェアセキュリティモジュール (HSM) を使用できます。詳細については、「Amazon Redshift データベースの暗号化」のドキュメントを参照してください。

マスターキーが AWS KMS で保管されている場合は、マスターキーによってクラスターキーが暗号化されます。暗号化をリクエストする場合は、Amazon Redshift コンソールで適切なボックスを選択します。カスタマー管理型のマスターキーを使用するように指定できます。そのためには、暗号化のボックスの下に表示されるリストからいずれかのキーを選択します。カスタマー管理型の CMK を指定しないと、アカウントの Amazon Redshift に対する AWS 管理のキーが使用されます。

暗号化コンテキスト

AWS KMS と統合された各サービスでは、データキー、暗号化および復号化をリクエストするときに暗号化コンテキストが指定されます。暗号化コンテキストは、データの整合性を調べるために AWS KMS で使用される追加の認証データ (AAD) です。つまり、暗号化オペレーションで暗号化コンテキストを指定すると、サービスは復号化オペレーションでも同じ暗号化コンテキストを指定します。指定しなかった場合、復号化は成功しません。Amazon Redshift は暗号化コンテキストのクラスター ID と作成時間を使用します。CloudTrail ログファイルの requestParameters フィールドで、暗号化コンテキストは次のように表示されます。

"encryptionContext": { "aws:redshift:arn": "arn:aws:redshift:region:account_ID:cluster:cluster_name", "aws:redshift:createtime": "20150206T1832Z" },

CloudTrail ログのクラスター名を検索し、カスタマーマスターキー (CMK) を使用して、実行されたオペレーションについて理解することができます。この操作には、クラスターの暗号化、クラスターの復号、およびデータキーの生成が含まれます。