CLF / ドメイン2 セキュリティとコンプライアンス
重要な内容
AWS KMS (Key Management Service)
は、データの暗号化に使う「」の作成と管理を行うです。 キーの作成、利用権限の管理、ローテーション(定期的な入れ替え)、利用履歴の記録までを AWS 側の安全な仕組みの上で行えます。
CLF では、KMS がを担当すること、 や などの多くのサービスと統合されていること、 や との違いを判断できることが重要です。
Point
- KMS = Key Management Service(キー管理サービス) の略です。
- 「データそのもの」ではなく、データを暗号化するための「鍵」を預かって管理するサービスです。
- KMS のキーは FIPS 140-3 検証済みのハードウェアセキュリティモジュール(HSM)で保護され、暗号化されていない状態で KMS の外に出ることはありません。
- 和訳
- Encryption: 暗号化
- Weblio英和辞書「encryption」
概要
データを暗号化すると、今度はそのを安全に守る必要があります。 はこの「鍵を守る」役割を引き受けるサービスで、利用者はキーを自分のサーバーに置かずに、KMS 上で作成・管理・利用できます。
KMS で扱う単位は「KMS キー」です。 代表的な使い道は、 のオブジェクト、 ボリューム、 データベースなどの(encryption at rest)です。
料金はで、キーの保管と リクエストなどに応じて支払います。 試験では、「保管時の暗号化とキー管理なら KMS」「転送時の暗号化は /」「専用ハードウェアの厳格な要件なら 」「パスワードなどのシークレット管理なら 」という切り分けを判断します。
主要技術
①KMSキーの種類
キーには、誰が作成・管理するかによっていくつかの種類があります。 CLF では細かい仕様よりも、「自分で管理できる範囲が違う」ことを押さえます。
| キーの種類 | 特徴 | 判断ポイント |
|---|---|---|
| 利用者が作成し、キーポリシーやローテーション設定を自分で管理します。 | キーの権限や運用を細かく制御・監査したい場合に選びます。 | |
| AWS管理キー | AWS サービスが利用者のために作成・管理するキーです。 | 手軽に暗号化を有効にしたい場合に使われます。ローテーションは AWS が自動で行います。 |
| AWS所有キー | AWS が複数アカウント向けに保有・管理するキーです。 | 利用者からは見えず、管理もできません。 |
キーへのアクセスはキーポリシーや で制御します。 「誰がこのキーで暗号化・復号できるか」を管理できることが、KMS を使う大きな利点です。
Point
- CMK(Customer Master Key) という旧称が問題集などに残っていることがありますが、現在は KMS キー(KMS key) と呼びます。
- カスタマー管理キー = 自分で管理する鍵、AWS管理キー = AWS に任せる鍵 と覚えます。
②保管時の暗号化とAWSサービス統合 ⚠️ 頻出
(encryption at rest)は、ディスクやストレージに保存されているデータを暗号化して守ることです。 は 、、、 など多くの AWS サービスと統合されており、サービス側の設定で KMS キーを指定するだけで保管時の暗号化を有効にできます。
| 統合先サービス | 暗号化の対象 | 判断ポイント |
|---|---|---|
| Amazon S3 | 内のオブジェクト | S3 管理キー()よりキーの管理・監査を強めたい場合に KMS キー()を選びます。 |
| Amazon EBS | ボリュームと | のディスクを保管時に暗号化します。 |
| Amazon RDS | データベースとバックアップ | データベースの保管時暗号化に使います。 |
| Amazon DynamoDB | テーブルのデータ | 保管時の暗号化に KMS のキーが使われます。 |
では、暗号化の仕組みを提供するのは AWS、どのデータをどのキーで暗号化するかを設定するのは利用者の責任です。
Point
- encryption at rest = 保管時の暗号化 です。rest は「静止・休んでいる状態」、つまり保存されて動いていないデータを指します。
- 「置いてあるデータを守る = at rest = KMS」と覚えます。
- 和訳
- at rest: 静止して、休んで
- Weblio英和辞書「at rest」
⚠️ 頻出: 「S3 や EBS のデータを保管時に暗号化し、キーを一元管理したい」という要件は AWS KMS が答えになります。
③転送時の暗号化との役割分担(ACM/TLS) ⚠️ 頻出
暗号化には、保管時(at rest)と転送時(in transit)の2つの場面があります。 転送時の暗号化はネットワーク上を流れるデータを守ることで、()通信と、その証明書を管理する (ACM)が担当します。
| 観点 | (at rest) | 転送時の暗号化(in transit) |
|---|---|---|
| 守る対象 | ストレージやデータベースに保存されたデータ | ネットワーク上を移動中のデータ |
| 主な仕組み | のキーによるサーバー側暗号化 | TLS(HTTPS)による |
| 関連サービス | AWS KMS、 | AWS Certificate Manager(ACM) |
| 判断ポイント | 「保存データの暗号化」「キーの管理・監査」で選びます。 | 「通信の暗号化」「/TLS 証明書の発行・更新」で選びます。 |
ACM は SSL/TLS 証明書の発行・保管・自動更新を行うサービスで、 や などと統合されています。 ACM が管理するパブリック証明書自体に追加料金はかかりません。
Point
- in transit = 転送中・輸送中 という意味です。transit は「通過・輸送」 を指します。
- at rest(置いてあるデータ)= KMS、in transit(動いているデータ)= TLS/ACM とセットで覚えます。
- 和訳
- transit: 通過、輸送
- Weblio英和辞書「transit」
⚠️ 頻出: 「Web サイトへの通信を HTTPS で暗号化したい」「SSL/TLS 証明書を管理したい」は KMS ではなく ACM を選びます。
④キーローテーション
は、同じ鍵を長期間使い続けるリスクを減らすために、キーの中身(キーマテリアル)を定期的に新しくする仕組みです。 要件で「鍵の定期的な交換」が求められる場合に使います。
- では、自動キーローテーションを有効にできます。既定では1年(365日)ごとに新しいキーマテリアルが生成されます。
- AWS 管理キーは、AWS が毎年自動的にローテーションします。利用者が設定を変えることはできません。
- ローテーション後も、過去に暗号化したデータは が適切な世代のキーマテリアルで自動的に復号するため、アプリケーションの変更や再暗号化は不要です。
⚠️ 頻出: 「を定期的に自動で入れ替えたい」という要件は、KMS の自動キーローテーションが答えになります。
⑤CloudTrailによるキー利用の記録
は と統合されており、キーの作成や設定変更だけでなく、暗号化・復号などのキー利用の 呼び出しも記録されます。 「いつ、誰が、どのキーを使ったか」を後から監査できるため、要件のある環境で重要です。
⚠️ 頻出: 「の使用履歴を監査したい」は、KMS + CloudTrail の組み合わせで実現します。KMS 自体は記録を保存するサービスではなく、記録するのは CloudTrail です。
⑥AWS CloudHSMとの違い ⚠️ 頻出
は、利用者専用(単一テナント)のハードウェアセキュリティモジュール()を AWS クラウド上で利用できるサービスです。 がマネージドで手軽なのに対し、CloudHSM は専用ハードウェアを自分で管理する分、キーに対する統制が強くなります。
| 観点 | AWS KMS | AWS CloudHSM |
|---|---|---|
| ハードウェア | AWS が管理する HSM を複数の利用者で共有します(マルチテナント)。 | 利用者専用の HSM です(シングルテナント)。 |
| 管理の手間 | マネージドで手軽に使えます。 | HSM 上のユーザーやキーの管理など、利用者の責任範囲が広くなります。 |
| AWSサービス統合 | 、、 など多数のサービスと統合されています。 | KMS のような幅広いサービス統合は前提としません。 |
| 判断ポイント | 一般的なとキー管理はこちらを選びます。 | 「専用ハードウェア」「単一テナント」「厳格な・規制要件」「キーを完全に自社管理」というキーワードで選びます。 |
Point
- HSM = Hardware Security Module(ハードウェアセキュリティモジュール) の略です。暗号化キーを安全に保管・処理する専用装置です。
- テナント(tenant)は「借りている人・入居者」 という意味です。
- マルチテナント = 1つの設備を複数の利用者で共有
- シングルテナント = 設備を1利用者で専有
- 「専有の金庫が必要なら CloudHSM、共有の貸金庫サービスでよければ KMS」というイメージで覚えます。
- 和訳
- tenant: 賃借人、テナント
- Weblio英和辞書「tenant」
⚠️ 頻出: 「専用のハードウェアでを管理する厳格な規制要件がある」場合は KMS ではなく CloudHSM を選びます。
⑦AWS Secrets Managerとの違い
は、データベースの認証情報、 キー、OAuth トークンなどの「シークレット(秘密情報)」を保管し、自動ローテーションできるサービスです。 が「」を管理するのに対し、Secrets Manager は「パスワードなどの秘密情報そのもの」を管理します。
| 観点 | AWS KMS | AWS Secrets Manager |
|---|---|---|
| 管理する対象 | データを暗号化するためのキー | データベース認証情報、API キーなどのシークレット |
| 主な用途 | 、キーの権限管理と監査 | ハードコーディングの排除、シークレットの安全な取得 |
| ローテーション | キーマテリアルの自動ローテーション | シークレット(パスワード等)の自動ローテーション |
| 関係 | Secrets Manager のシークレットは KMS のキーで暗号化されます。 | 内部で KMS を利用します。 |
| 判断ポイント | 「暗号化キー」「encryption key」で選びます。 | 「データベースのパスワード」「認証情報の自動ローテーション」で選びます。 |
Point
- Secret(シークレット)は「秘密」 という意味で、ここではパスワードや API キーなどの秘密情報を指します。
- 覚え方
- KMS = 鍵(Key)を管理
- Secrets Manager = 秘密情報(パスワード等)を管理
- 「何をローテーションするか」で区別します。鍵なら KMS、パスワードなら Secrets Manager です。
- 和訳
- credential: 資格情報、認証情報
- Weblio英和辞書「credential」
⚠️ 頻出: 「データベースの認証情報を安全に保管し、自動的にローテーションしたい」は KMS ではなく Secrets Manager を選びます。
試験対策
CLF の問題では、まず「何を守りたいのか」を確認します。 保存データのなら 、なら /、パスワードなどのシークレットなら 、専用ハードウェア要件なら と整理すると選びやすくなります。
| 問題文のキーワード | 優先して考える機能・サービス | 理由 |
|---|---|---|
| 暗号化キーの作成と一元管理 | AWS KMS | キー管理のです。 |
| / / の | AWS KMS | 多くの AWS サービスと統合されています。 |
| 暗号化キーを定期的に自動交換 | KMS の | キーマテリアルを自動で更新できます。 |
| キーの使用履歴を監査 | KMS + | キー利用の 呼び出しが記録されます。 |
| /TLS 証明書の発行・更新、通信の暗号化 | AWS Certificate Manager(ACM) | 転送時の暗号化は証明書と TLS の役割です。 |
| 専用ハードウェア・単一テナント・厳格な規制要件 | AWS CloudHSM | 利用者専用の を利用できます。 |
| データベース認証情報の保管と自動ローテーション | AWS Secrets Manager | シークレット管理の専用サービスです。 |
| 誰がどんな操作をできるかの制御 | 権限管理は IAM の役割です。 |
よくある誤答パターンは次のとおりです。
- 「暗号化」という言葉だけで KMS を選ぶこと。通信(/TLS)の暗号化や証明書の管理が問われている場合は ACM が正解です。
- 「キー」という言葉だけで KMS を選ぶこと。API キーやデータベースのパスワードは暗号化キーではなくシークレットなので、Secrets Manager が正解です。
- 「」だけで CloudHSM を選ぶこと。一般的な暗号化とキー管理の要件は KMS で満たせます。CloudHSM は「専用ハードウェア」「単一テナント」が明示された場合に選びます。
- キー利用の記録を KMS 自体の機能と考えること。操作履歴を記録するのは CloudTrail です。
参考文献
- AWS Key Management Service - AWS Key Management Service
- Using AWS KMS encryption with AWS services
- Rotate AWS KMS keys
- Logging AWS KMS API calls with AWS CloudTrail
- What is AWS CloudHSM?
- What is AWS Secrets Manager?
- What is AWS Certificate Manager?
- AWS Certified Cloud Practitioner (CLF-C02) Exam Guide