「暗号化は、自分でやらないとダメ?」
「鍵はどこに保管され、誰が触れる?」
暗号化に使う鍵は、どこに置けばいいのか。手元に持てば漏れる、失えばデータごと開けなくなる——この厄介な問題を肩代わりするのがKMSです。AWS KMSとは、データ暗号化に使う鍵を安全に作り・保管し・利用を許可するマネージドサービスです。この記事は、あなたがS3にファイルを保存する場面を追いながら、KMSの働きを開きます。
KMSは Key Management Service の略です。鍵の実体を利用者が持ち歩かず、AWSの堅牢な環境に預けたまま使う——この発想が核になります。AWS SAAのセキュアアーキテクチャ設計に効きます。
1. 鍵はどこにある?——KMSの立ち位置

データの暗号化には、中身を読めなくするための鍵が要ります。この鍵をあなたが自分で作り、どこかに保管し、失わないよう管理する——これは重い仕事です。KMSは、その鍵の作成・保管・利用の許可をまとめて引き受けます。鍵の実体は、AWSが管理する堅牢な環境の中にとどまります。
この構図の利点は、鍵そのものを利用者が持ち歩かないことです。持ち歩かなければ、紛失も漏えいも起きにくい。あなたが管理すべきものが減るぶん、守りの穴も減ります。そもそも暗号化とは何かは 暗号化とは で前提を押さえておくと、KMSの役割がくっきりします。
2. S3にファイルを保存する、その裏側

あなたがS3にファイルを保存し、暗号化を有効にする。その一瞬に何が起きているかを追います。KMSが使うのはエンベロープ暗号化という仕組みで、親鍵は金庫室から出しません。
流れはこうです。KMSの中のマスターキーから、その場限りのデータキーを生成する。そのデータキーでファイル本体を暗号化する。マスターキーはKMSの外へ出ないまま、暗号化されたファイルと、暗号化されたデータキーが一緒に保存されます。親鍵を外に出さず、その場で作った使い捨ての鍵で中身を包む——だから、肝心の鍵を危険にさらさずに、大きなデータでも暗号化できます。あなたがやることは、暗号化を有効にして使う鍵を指定するだけです。
なぜ、わざわざ2段構えにするのか。もしマスターキーそのものでファイル本体を直接暗号化しようとすると、そのたびにマスターキーを持ち出す必要が生じ、外に出す危険が増えます。データキーを使い捨てにすれば、マスターキーは金庫室にこもったまま、無数のファイルを暗号化できる。鍵を外に出す回数を最小にするための設計が、エンベロープ暗号化です。あなたが読み出すときは、暗号化されたデータキーをKMSが復号し、それでファイルを開きます。
3. 誰が鍵を持ち、誰が許可を出すか

KMSを一歩深く理解する鍵が、役割の分担です。鍵の保管と、その鍵を使ってよいかの判断は、別々の主体が担います。表で整理します。
| 担うこと | AWS | 利用者 |
|---|---|---|
| 鍵の保管 | 堅牢な環境で安全に保管 | — |
| 鍵を使う許可 | 許可の仕組みを提供 | 誰に許可するかを設定 |
| データの扱い | — | どのデータを暗号化するか決める |
鍵の保管はAWSに任せ、「誰がその鍵を使えるか」はあなたが決める。現役エンジニアとしてクラウドのセキュリティ設計に関わってきた立場で言うと、事故が起きるのはたいてい後者、つまり許可の設定が緩いときです。鍵そのものは金庫室で守られていても、「誰でも使ってよい」と許可を広げてしまえば、金庫の意味が薄れます。鍵を安全に預けたうえで、使用の許可を最小限に絞る——ここまでやって、はじめて守りが完成します。
4. SAAでの問われ方と、選ぶ判断

SAAでは、KMSは「保管するデータを暗号化したい」という要件とセットで問われます。あなたが答えを選ぶ判断は、問題文のキーワードで決まります。次のような言葉が出たら、KMSが有力候補です。
- 「保管データ(at rest)を暗号化したい」→ KMSで鍵を管理し、暗号化を有効にする
- 「鍵を一元管理したい」→ 鍵の作成・保管・許可をまとめるKMSが向く
- 「アプリ側で複雑な暗号処理を書きたくない」→ 保存時の暗号化を有効にし、KMSの鍵を指定するだけで済む
KMSは単独で使うより、S3やRDSなど他のAWSサービスと組み合わせて働きます。多くのサービスでは、保存時の暗号化を有効にしてKMSの鍵を指定するだけで暗号化が働くので、アプリ側で込み入った処理を書かずに済みます。あなたが問題文で「保管データを暗号化」「鍵を一元管理」という言葉を見たら、KMSを思い浮かべる。逆に「移動中のデータを守る」ならTLS、と切り分ければ、選択肢が絞れます。この「要件の言葉から、担うサービスへ逆引きする」訓練が、SAAでは得点に直結します。
次のステップ
KMSがセキュア設計のどこに位置づくかは、AWS SAAの試験範囲と勉強法ガイド で全体の並びをたどると、セキュア設計での位置づけが見えてきます。
要件からサービスを選ぶ感覚は、問題で磨けます。AWS SAA セキュア設計の問題集 で、暗号化まわりの出題角度を、問題で確かめておきましょう。