暗号化とAWS KMSを理解する

保存時暗号化と通信時暗号化を分け、AWS KMSが何を管理するのかを身近なファイル保護から学びます。

この単元で学ぶこと

  • 暗号化とアクセス管理・バックアップを区別する
  • KMSキーの管理主体とデータキーを説明する
  • 鍵の更新と削除の影響を判断する

本文解説

1. 読める情報を限定する 暗号化は平文を、鍵なしには内容を読み取りにくい暗号文へ変換する処理です。例えば顧客一覧の保存ファイルを暗号化しても、正規のアプリが復号した一覧を誰に表示するかは別問題です。暗号化とアクセス権限を組み合わせて機密性を守ります。

2. 保存中と移動中 ディスクやオブジェクトに残るデータの保護を保存時暗号化、クライアントからサーバーへ送る通信の保護を通信時暗号化と呼びます。HTTPSはTLSを使う通信の例です。S3の保存時暗号化を設定しただけで、アプリの全通信がHTTPSへ変更されるわけではありません。

3. KMSの役割 AWS KMSは暗号化キーと、その利用権限・暗号操作を管理するサービスです。対応するAWSサービスの保存時暗号化にも使われます。データそのものを保管するS3や、DBのパスワードを管理するSecrets Managerとは役割が異なります。KMSを選んだ後も保管先の設計は必要です。

4. 三つの管理主体 カスタマー管理キーは利用者がポリシーや有効・無効、削除等を管理します。AWS管理キーは利用者のアカウント内にありますがAWSサービスが管理し、利用者がポリシーを自由に変えることはできません。AWS所有キーはAWS側のアカウントにあり、利用者がキーを直接管理・監査する対象ではありません。

5. 二段階でデータを守る 大きなファイルにはデータキーで暗号化し、そのデータキーをKMSキーで暗号化するエンベロープ暗号化を使えます。封筒の中の鍵を別の鍵で守る構造です。暗号文と暗号化したデータキーを保管し、平文のデータキーは必要な処理後にメモリから除去します。

6. 誰が鍵を使うか キーポリシーはKMSキーの利用を制御する資源側の規則です。業務アプリには必要な暗号操作、管理担当には必要な管理操作を与えるなど、役割を分けられます。対応するキーの利用はCloudTrailで監査できます。AWS所有キーまで同じように利用者が監査できると考えないことが大切です。

7. 更新しても昔の資料を読む AWS_KMS由来の対称カスタマー管理キーでは自動ローテーションを設定できます。同じキーIDの中で鍵素材を更新し、以前の暗号文には旧素材を使います。既存ファイル全部を書き直す機能ではなく、漏えいしたデータキーをそのまま安全に戻す機能でもありません。

8. 削除は復元可能性に関わる 必要なKMSキーを削除すると、それに依存する暗号文を復号できなくなる可能性があります。同名のエイリアスを作り直しても鍵素材は戻りません。バックアップデータも鍵に依存するので、データの保存期間と鍵の保存・権限を合わせて確認します。暗号化はバックアップの代わりにはなりません。

図解

ファイルと二つのキー
保存するデータキーは暗号化したコピーであり、平文キーをファイルに添付する方式ではありません。

重要ポイント

  • 保存時と通信時の暗号化は別に確認する。
  • キーの管理主体で利用者の制御範囲が異なる。
  • ローテーションとデータ再暗号化・キー削除を区別する。

間違えやすい点

  • 暗号化を権限管理やバックアップの代用にする。
  • データキーと対称KMSキーを同じ取り出し方だと思う。

用語解説

平文
暗号化前、または復号後の読める情報。
データキー
ファイル等を直接暗号化するためのキー。
エンベロープ暗号化
データをデータキーで暗号化し、そのキーを別のキーで保護する方式。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。