0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KMSの暗号化方式の理解方法

Posted at

はじめに

先日、AWS12冠を達成しましたが、AWSのセキュリティ資格(SCS)を勉強していてつまずた点を思い出したので、今回はその KMSの暗号化方式についてまとめていこうと思います。

具体的には、以下の様な似た言葉が多く、読むだけでは混乱しやすい領域だと思います。

  • SSE
  • CSE
  • Envelope Encryption
  • GenerateDataKey

1. KMSの暗号化方式は大きく3種類

まずは全体像だけ押さえていきますが、暗号化方式には大きく分けると以下の3種類が存在します。

  • サーバーサイド暗号化(SSE-KMS)
  • クライアントサイド暗号化(CSE-KMS)
  • エンベロープ暗号方式(Envelope Encryption)

SCSのKMS問題はこの3つの違いを理解すればほぼ突破できるかと思います。


2. SSE-KMS(Server Side Encryption – KMS)

AWSサービス側が自動でデータを暗号化してくれる方式。

特徴

  • データは AWS サービス側で暗号化される
  • 自分で暗号化処理を書かなくてよい
  • KMSのCMK(カスタマーマスターキー)を使用

代表的な利用サービス

  • S3(SSE-KMS)
  • EBS(暗号化ボリューム)
  • RDS(暗号化ストレージ)
  • Lambda(環境変数の暗号化)

試験ポイント(SCS)

  • SSE-S3 と SSE-KMS の違いを問われる
  • SSE-KMS は CloudTrail にキー利用ログが残る
  • KMSキーのポリシーでアクセス制御できる

3. CSE-KMS(Client Side Encryption – KMS)

アプリケーション側で暗号化 → 暗号化済みデータをAWSに送る方式。

特徴

  • 暗号化処理はアプリ側で実施
  • KMSから GenerateDataKey で鍵を取得
  • AWSサービスは暗号文しか受け取らない

使用されるケース

  • 法的要件でAWS側に平文を渡せない場合
  • 機密性の高いデータを扱うとき
  • S3アップロード前にアプリ側で暗号化したい場合

試験ポイント

  • KMSのAPI(GenerateDataKey)が登場したら ほぼCSEの問題

4. Envelope Encryption(エンベロープ暗号方式)

SCSで最も混乱しやすい領域ですが、本質はシンプルです。

仕組み

  1. データを データキー(AES)で暗号化
  2. データキー自体を KMSのCMKで暗号化

データデータキー を分けて暗号化する方式。

メリット

  • 暗号化処理が高速
  • CMKへの負荷が少ない
  • 大量データに向いている

試験での要点

  • CMKは巨大データを直接暗号化できない
  • SSE-KMSの内部でも Envelope Encryption が使われている
  • Decrypt の流れを理解しておく

5. SCSでよく出るひっかけ問題まとめ

SSE-KMS vs SSE-S3

  • SSE-S3 → S3管理のキー
  • SSE-KMS → KMSのCMK利用(CloudTrailに残る)

GenerateDataKey が登場した場合

→ CSEまたはEnvelope Encryption

CMKは巨大データを直接暗号化できるか?

できない(暗号化可能サイズは数KBレベルの為)

データキーの管理について問われたら場合

→ Envelope Encryptionの流れを思い出す


6. 使い分け表

方式 向いているケース
SSE-KMS もっとも一般的。標準の選択肢。
CSE-KMS 極めて高機密なデータ。AWSに平文を渡せない場合。
Envelope Encryption 大量データ暗号化、性能重視、KMSの負荷分散。

7. まとめ:KMSは「誰が暗号化するか」を整理して考えましょう

  • AWSが暗号化 → SSE-KMS
  • 自分で暗号化 → CSE-KMS
  • 鍵を鍵で守る仕組み → Envelope Encryption

私自身、試験勉強の過程で混乱した領域だったので、この記事が誰かの理解の助けになれば嬉しいです:herb:

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?