6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS KMSのマスターキーとデータキー

Last updated at Posted at 2019-03-30

AWSで暗号化の話しになると登場するKMSについて勉強したのでこのエントリーを書きました。
公式のKMSドキュメントはKMS全般の優れたドキュメントですが、ここではマスターキーとデータキーの関係に絞って書こうと思います。

マスターキーとデータキー

KMSの言うところのマスターキー(CMKとかカスタマーマスターキーとも呼ばれます)と、データキーって何?どんな関係なの?という点を図解します。例えばS3のサーバーサイド暗号化を例にとると、KMSを使う場合は以下のような関係になります。

S3_SSE_with_KMS.jpg

KMSがやってくれるのは、マスターキーの管理とデータキーの復号ということですね。データの暗号化に使うデータキーは使う側でちゃんと管理しないといけないと。

マスターキー

マスターキーの作成ですが、AWSマネージドの方法に加えて、ユーザー側で生成した暗号鍵をマスターキーとしてKMSに保管することもできるみたいです。

KMS_MasterKey_AWS.jpg
KMS_MasterKey_external.jpg

自分で生成した秘密鍵をKMSに登録する具体的方法は公式ドキュメントに記載があります。RSAで暗号化してやりとりするんですねー。

データキー

データキーの生成は、KMSにGenarateDataKeyリクエストをすることで行います。
KMS_DataKey.jpg
平文データキーが不要な場合は、GenerateDataKeyWithoutPlaintextリクエストと言うのもあります。

マスターキーの権限管理

カスタマーマスターキーを使用する権限をIAMユーザーやIAMロールに付与しようとした場合、IAMのポリシーをどうのこうのしただけでは不十分で、KMSのキーポリシーでも権限を与えてあげる必要があります。KMSのキーポリシーはCMK毎に設定するCMKに対する権限のポリシーです。
具体的にどうすればいいのかは公式ドキュメントにあります。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?