AWSでセキュアなシステムを構築する際、避けて通れないのが「データの暗号化」です。特に、AWS Key Management Service (KMS) は、多くのAWSサービスと統合されており、セキュリティの要となります。
この記事では、AWS認定ソリューションアーキテクト – アソシエイト(SAA)試験の対策も兼ねて、KMSの仕組みや、よく混同されるAWS Secrets Managerとの違いを分かりやすく解説します。
AWS KMSとは?
AWS KMSは、データの暗号化に使用される「暗号化キー」を簡単に作成・管理できるマネージドサービスです。
- フルマネージドサービス: キーの保管や物理的なセキュリティをAWSが管理。
- FIPS 140-2 レベル3準拠: 高いセキュリティ基準を満たすハードウェア(HSM)を使用。
- CloudTrailとの統合: 「いつ、誰が、どのキーを使ったか」をすべてログに記録可能。
SAA試験で問われる「KMSのキータイプ」
試験では、用途に応じたキーの選択が問われます。以下の3つの分類を整理しましょう。
| キーの種類 | 管理主体 | 特徴 |
|---|---|---|
| AWS所有のキー | AWS | ユーザーは操作不可。無料。 |
| AWS管理のキー | AWS | aws/s3など。削除やローテーション設定不可。 |
| カスタマー管理型のキー | ユーザー | 試験頻出。ポリシー設定、削除、ローテーションを完全制御。 |
重要概念:エンベロープ暗号化
SAA試験で頻出なのがエンベロープ暗号化です。これは「鍵で鍵を暗号化する」仕組みです。
暗号化の流れについてのフロー図を作成してみました。フローとしては以下の図のイメージになります。

【図解:エンベロープ暗号化のフロー図】
KMSからデータキー発行 → データを暗号化 → 平文キーを破棄するイメージ)
大きなデータを直接KMSに送ると、スロットリング(制限)が発生します。そのため、「データキー」という小さな鍵をKMSに作ってもらい、実際の暗号化は手元のサーバー(EC2等)で行うのがAWSのベストプラクティスです。
KMS vs AWS Secrets Manager
どちらも機密情報を扱いますが、目的が異なります。
【図解:KMS(金庫の鍵)vs Secrets Manager(自動更新されるメモ)】
| 特徴 | AWS KMS | AWS Secrets Manager |
|---|---|---|
| 主な目的 | 「鍵」の管理・鍵の作成 | 「秘密情報」の管理 |
| 自動更新 | キー自体の更新 | DBパスワード等の自動更新 |
| 主な用途 | EBS/S3の暗号化 | RDSのパスワード管理 |
5. SAA試験頻出シナリオ
最後にSAA試験などで問われることの多いKMSのシナリオについて紹介します。
S3の暗号化(SSE-KMS)…「鍵の使用ログ(CloudTrail)を監査したい」という要件があれば、SSE-S3ではなくSSE-KMSを選択します。
クロスアカウントアクセス…別アカウントのKMSキーを使うには、「キーポリシー」と「IAMポリシー」の両方での許可が必要です。
今回はKMSの暗号化の流れとSecret Managerとの違いについて説明させていただきました。
勉強の参考になれば幸いです!

コメント