0
0

AWS KMS データーキーちゃんと理解して使っている?

Last updated at Posted at 2024-07-20

KMSについて細かいことわかっていない

AWSを使用するにあたりよく出てくるKMS。
マスターキーとデータキーとかいろいろ複雑な仕組みで細かく仕様を理解しないまま使っていました。。

結論

S3の暗号化などしているとAWS側でデータキーを勝手に生成してくれて、そのデータキーで暗号化をしてくれていそう。

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

一口に暗号化のキーと言っても実際にデータを暗号化する「データーキー」と「マスターキー」の2種類があります。どちらのキーでも暗号化は可能ですが、データーキーで暗号化するのがベストプラクティスのようです。何となくこの辺の話は聞いたことがありましたが、こちらのサイトで何で2種類を使い分ける必要があるかとても分かりやすく書いていました。
10分でわかる!Key Management Serviceの仕組み

とりあえずS3を暗号化

KMSのコンソール上に表示されているキーはマスターキーのようです。
image.png

実際に自分がよく暗号化を使用するS3を例に考えてみます。
S3のバケット作成する際に暗号化方式を選びます。
KMSのAWSマネージドキーである、SSE-KMSを選びます。
image.png

っていうところで疑問に思いました。
AWSはマスターキーからデータキーを作成して、データキーで暗号化を行うべきと言っている。なのにコンソールでマスターキーを選択できるのは、矛盾があるような。。

なんやかんやデータキーで暗号化されてるっぽい

先ほど作成したバケットにファイルをアップロードして、CloudTrailログを見てみました。すると。。
GenerateDataKeyイベントが発生していました。
どうやら内部的にSSE-KMSキーを使用してデータキーを作成して、それで暗号化を良しなにしてくれているっぽい!

image.png

暗号化されたファイルをダウンロードしてみる

暗号化されたファイルをダウンロードすると、裏でDecrypt(復号)のイベントが発生していました。予想通り!
image.png

0
0
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
0
0