AWS KMS 完全ガイド|暗号鍵管理サービスとエンベロープ暗号化

KMS は AWS の暗号鍵を作成・管理する中央サービス。S3・EBS・RDS・Lambda 環境変数等、AWS のあらゆる暗号化機能の鍵を提供する。FIPS 140-2 Level 3 認定のハードウェアセキュリティモジュール(HSM)で鍵を保護し、IAM と統合した細か...

AWS マネージドの暗号鍵管理サービス。S3・EBS・RDS など全 AWS サービスの暗号化基盤。


1. 概要(端的に)

KMS は AWS の暗号鍵を作成・管理する中央サービス。S3・EBS・RDS・Lambda 環境変数等、AWS のあらゆる暗号化機能の鍵を提供する。FIPS 140-2 Level 3 認定のハードウェアセキュリティモジュール(HSM)で鍵を保護し、IAM と統合した細かなアクセス制御も提供する。


2. 何ができるか

  • CMK(カスタマーマスターキー)作成:対称・非対称鍵
  • データ暗号化:直接暗号化(4 KB まで)/ データキー方式(大量データ)
  • AWS サービスの暗号化基盤:S3 / EBS / RDS / Aurora / Lambda 等
  • 鍵ローテーション:自動年次ローテ
  • 鍵ポリシー:誰がどう使えるか定義
  • CloudHSM 連携:専用 HSM への鍵保管
  • マルチリージョン鍵:リージョンまたぎ暗号化

3. 特徴

観点特徴
追加料金カスタム鍵 $1/月 + API リクエスト
AWS 管理鍵サービスデフォルト鍵 = 無料
鍵タイプ対称(AES-256)/ 非対称(RSA / ECC)
鍵保護HSM(FIPS 140-2 Level 3)
APIEncrypt / Decrypt / GenerateDataKey 他
鍵ローテーション年 1 回自動

CMK の種類

種類管理者用途
AWS マネージドAWSサービスデフォルト(無料)
カスタマーマネージド(CMK)利用者高度な制御(推奨)
AWS 所有AWS(不可視)内部利用

4. 仕組み

KMS の エンベロープ暗号化 が中核:大量データを直接 KMS で暗号化せず、データキーで暗号化 → データキーを CMK で暗号化 する。

エンベロープ暗号化

[大量データ]
  ↓ データキー(DEK)で AES 暗号化
[暗号化データ + 暗号化データキー(CMK で暗号化)]
  ↓ S3 等に保存

復号時:
[暗号化データキー] → KMS で復号 → DEK → 暗号化データ復号

GenerateDataKey API

1. アプリが GenerateDataKey 呼び出し
2. KMS が DEK を生成、CMK で暗号化
3. アプリに「平文 DEK + 暗号化 DEK」を返却
4. アプリが平文 DEK でデータを暗号化
5. 平文 DEK は破棄、暗号化 DEK のみデータと一緒に保存

CMK は KMS から出ないため安全性が高い。

鍵ポリシー

  • ポリシー JSON で「誰がどう使えるか」を定義
  • IAM ポリシーと併用
  • root 権限の管理が重要

5. ユースケース

ユースケース 1:S3 オブジェクト暗号化

SSE-KMS でオブジェクト暗号化、CMK で鍵管理。

ユースケース 2:EBS / RDS の保存時暗号化

EBS スナップショット・RDS バックアップの透過暗号化。

ユースケース 3:Lambda 環境変数暗号化

機密情報を環境変数に置く時の暗号化。

ユースケース 4:アプリでの暗号化

カード番号・個人情報のフィールド暗号化。

ユースケース 5:マルチリージョン暗号化

Multi-Region Key で複数リージョンの整合性。


6. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLF暗号化の概念、KMS の役割
SAA暗号化設計(頻出)、エンベロープ暗号化
DVAアプリでの KMS API 利用
SOA鍵管理運用・ローテ