SAA / ドメイン1 セキュアなアーキテクチャの設計

重要な内容

AWS KMS (Key Management Service)

は、暗号化に使う暗号鍵を作成、管理、利用するためのです。 、、、、、 など、多くの AWS サービスの保存時暗号化で使われます。

SAA では、KMS を「暗号化サービス」として覚えるだけでは不十分です。 どの鍵を選ぶか、誰が鍵を使えるか、KMS キーと 権限の両方が必要な場面、監査やローテーション、をまたぐ設計を判断できることが重要です。

Point
  • KMS = Key Management Service の略です。
  • Key は「鍵」、Management は「管理」という意味です。
  • KMS は「暗号化に使う鍵を安全に管理し、AWS サービスから利用できるようにするサービス」と覚えます。
  • 和訳

概要

は、データそのものを長期保存するサービスではなく、データを暗号化するための鍵を管理するサービスです。 たとえば オブジェクトを で暗号化する場合、S3 は KMS キーを使って暗号化処理を行います。 利用者は、暗号化対象のサービス権限だけでなく、KMS キーを使う権限も必要になる場合があります。

概要の図 アプリケーション・利用者 S3 / EBS / RDS など AWS KMS KMS キー 暗号化されたデータ

SAA では、暗号化方式そのものの数学的な仕組みよりも、「 と SSE-KMS の違い」「KMS キーポリシーと ポリシーの関係」「やで鍵をどう扱うか」を問われます。

見るポイント代表的な判断
鍵管理を細かく制御したいかAWS managed key ではなく customer managed key を検討します。
監査や権限分離が必要か とキーポリシー、IAM ポリシーを確認します。
AWS サービスから暗号化したいかそのサービスが KMS 連携に対応しているかを確認します。
クロスアカウントで使うかキーポリシー、IAM ポリシー、必要に応じてグラントを確認します。
をまたぐかmulti-Region key が必要か、レプリカキーの運用を考えます。

主要技術

①KMS キーと鍵の種類

で中心になるリソースは KMS キーです。 以前は customer master key と呼ばれることがありましたが、現在は KMS key という名称で扱います。 KMS キーは、暗号化、復号、生成、署名、検証などの用途に使われます。

鍵の種類管理主体主な用途SAA での判断ポイント
AWS owned keyAWSAWS サービス側で透過的に使用利用者が直接管理しません。細かい制御や監査には向きません。
AWS managed keyAWS サービスサービスごとの標準的な KMS 暗号化利用は簡単ですが、キーポリシーを細かく変更できません。
Customer managed key利用者厳密な権限制御、監査、ローテーション管理SAA でよく問われます。キーポリシーを自分で管理します。
key store利用者寄り専用 管理要件SAA では深掘りより、より厳格な鍵管理要件で候補になる程度です。
External key store外部鍵管理システムAWS 外部で鍵を管理したい場合高度な統制要件向けです。SAA では選択肢として押さえます。

Customer managed key は、鍵の有効化・無効化、エイリアス、タグ、ローテーション、削除スケジュール、キーポリシーを利用者が管理できます。 監査、権限分離、利用、特定の CMK を使う要件では customer managed key が候補になります。 AWS managed key はキーポリシーを変更できないため、別アカウントへ利用を許可する用途には使えません。暗号化したやシークレットを別アカウントと共有するなら customer managed key で暗号化します。

非対称 KMS キーは、署名と検証、または公開鍵暗号に使います。秘密鍵は KMS の外に出ませんが、公開鍵はダウンロードできるため、AWS の認証情報を持たない社外の相手でも、その公開鍵で署名を検証できます。

Point
  • HSM = Hardware Security Module の略です。
  • 暗号鍵を安全に保護する専用ハードウェアです。
  • CMK = Customer Master Key は旧称として出ることがあります。
    • 現在のドキュメントでは主に KMS key と呼びます。
  • 和訳

⚠️ 頻出: 「鍵の利用者、ローテーション、削除、監査を自分で管理したい」なら customer managed key を選びます。単にサービス側で暗号化するだけなら AWS managed key で足りる場合があります。


②エンベロープ暗号化とデータキー

は大量データを直接すべて暗号化する用途より、を生成し、そのデータキーを KMS キーで保護する設計で使われます。 この方式をエンベロープ暗号化と呼びます。

②エンベロープ暗号化とデータキーの図 GenerateDataKey 平文データキー + 暗号化済みデータキー 平文データキーでデータを暗号化 暗号化済みデータキーを一緒に保存 復号時に暗号化済みデータキーを Decrypt 平文データキー アプリケーション AWS KMS データ

エンベロープ暗号化では、実データはデータキーで暗号化します。 そのデータキー自体を KMS キーで暗号化して保存します。 これにより、大容量データを効率よく暗号化しながら、鍵管理は KMS に任せられます。

用語意味試験での見方
KMS keyデータキーを保護する上位の鍵権限、監査、ローテーションの対象です。
Data key実データを暗号化する鍵アプリケーションや AWS サービスが使います。
Encrypted data keyKMS key で暗号化されたデータキー暗号化データと一緒に保存できます。
Encryption context追加の認証データ復号時の条件や監査情報として役立ちます。

、、 などの AWS サービスは、利用者が詳細な暗号化処理を実装しなくても、KMS と連携して保存時暗号化を提供します。 一方、独自アプリケーションでクライアント側暗号化を行う場合は、AWS Encryption や KMS の利用が関係します。

⚠️ 頻出: 「KMS は大容量ファイルを直接すべて暗号化するサービス」と考えると誤りです。実データはデータキーで暗号化し、データキーを KMS キーで保護する設計を理解します。


③キーポリシー、IAM ポリシー、グラント

の権限管理では、キーポリシーが必須です。 ポリシーだけで KMS キーの利用を完結できるわけではなく、キーポリシー側で IAM ポリシーによる許可を有効にする設計が基本になります。

制御付ける場所主な用途
キーポリシーKMS キー鍵を管理・使用できる主体を定義します。KMS では必須です。
IAM ポリシーユーザー、ロール、グループ主体側から KMS 操作を許可します。
グラントKMS キーAWS サービスや一時的な利用者に限定的な使用権を委任します。
アカウント全体の最大権限を制限します。
③キーポリシー、IAM ポリシー、グラントの図 はい いいえ KMS キー利用要求 キーポリシー IAM ポリシー グラント SCP 権限評価 許可される? KMS キーを使用 拒否

KMS キーを使うには、暗号化対象サービスへの権限と、KMS キーへの権限の両方が必要になることがあります。 たとえば で暗号化された オブジェクトを読む場合、s3:GetObject だけでなく kms:Decrypt も必要です。 さらに、KMS キーポリシーがその利用を許可している必要があります。

グラントは、AWS サービスが利用者に代わって KMS キーを使う場合などに使われます。 たとえば 、、 など、サービス連携で KMS キーを使うときに関係します。 試験では、普段の権限設計はキーポリシーと IAM ポリシーを中心に考え、AWS サービス連携ではグラントが裏側で使われることを押さえます。

キーポリシーでは、鍵を管理する主体 (キー管理者) と、暗号化・復号に使う主体 (キーユーザー) を別のステートメントに分けて書けます。キー管理者にはポリシー変更や無効化などの管理操作だけを許し、kms:Decrypt を与えなければ、鍵を管理する人がデータを読めない職務分離になります。 kms:ViaService 条件キーを使うと、「S3 経由の要求のときだけ」のように、特定の AWS サービスを通した要求に限って鍵の使用を許可できます。利用者が KMS を直接呼んで復号することを防げます。

⚠️ 頻出: KMS 暗号化データへアクセスできない問題では、対象サービスの IAM 権限だけでなく、KMS キーポリシー、IAM の kms:Decrypt、SCP、設定を確認します。


④AWS サービス連携と暗号化方式の選択

は多くの AWS サービスと連携します。 SAA では、、、、、、、、、 などで、保存時暗号化と KMS 権限の関係が問われます。

サービスKMS が関係する場面判断ポイント
Amazon S3、DSSE-KMSS3 権限に加えて KMS 権限が必要です。監査や鍵管理要件がある場合に選びます。
Amazon EBSボリューム、暗号化 やスナップショット共有時の KMS キー権限に注意します。
Amazon RDSDB インスタンス、スナップショット暗号化暗号化の有効化タイミングやスナップショット共有で確認します。
DynamoDBテーブル暗号化標準暗号化または KMS キーの管理要件で判断します。
Secrets Managerシークレット暗号化シークレットの取得権限と KMS 復号権限を確認します。
CloudTrailログファイル暗号化監査ログ保護とキーポリシーが重要です。
SQS / SNSメッセージ暗号化送受信主体と KMS キー権限を合わせて確認します。

S3 の暗号化では、、SSE-KMS、、クライアント側暗号化を区別します。 SSE-KMS は、KMS キー管理、監査、キーポリシー、KMS 利用に伴うコストやの影響を考えます。

暗号化方式鍵の管理向いている要件
SSE-S3S3 管理シンプルにサーバー側暗号化したい場合です。
SSE-KMSKMS鍵の権限制御、監査、ローテーションを重視する場合です。
SSE-C顧客顧客自身が鍵を AWS に保存させず管理したい場合です。
クライアント側暗号化アプリケーション側AWS に平文を渡したくない場合です。

⚠️ 頻出: 「S3 オブジェクトは読める権限があるのに復号できない」場合、S3 権限だけでは不足します。SSE-KMS では KMS キーの kms:Decrypt とキーポリシーを確認します。


⑤ローテーション、無効化、削除、監査

Customer managed key では、自動ローテーションを有効にできます。 ローテーションは、今後の暗号化に使う鍵素材を更新する機能です。 過去に暗号化されたデータを復号できるよう、古い鍵素材は 内で保持されます。

操作目的注意点
ローテーション鍵素材を定期的に更新既存データの復号を壊さずに鍵素材を更新します。
無効化一時的に鍵を使えなくする暗号化データの復号やサービス連携が失敗する可能性があります。
削除スケジュール鍵を最終的に削除する削除後は復号できなくなるため慎重に扱います。
エイリアス鍵に分かりやすい名前を付けるアプリケーションや運用で鍵の参照を簡単にします。
タグ管理やコスト配賦プロジェクト、環境、所有者などで整理します。

KMS の利用は に記録されます。 鍵の作成、無効化、削除スケジュール、暗号化、復号などの操作を監査できます。 セキュリティ要件がある問題では、KMS と CloudTrail を組み合わせて「誰がいつ鍵を使ったか」を追跡できる点が重要です。

⑤ローテーション、無効化、削除、監査の図 利用者・AWSサービス KMS API KMS キー CloudTrail に記録 監査・調査

KMS キーを無効化または削除すると、その鍵で保護されたデータを復号できなくなる可能性があります。 削除は待機期間を設定してスケジュールされますが、試験では「削除した鍵で暗号化されたデータは復旧困難」というリスクを重視します。

自動ローテーションの周期は、既定の 365 日のほか 90〜2,560 日の範囲で指定できます。計画外にすぐ更新したい場合はローテーションを実行できます。AWS managed key は AWS が毎年自動でローテーションし、利用者は周期を変更できません。自動ローテーションに対応するのは、KMS が鍵素材を生成した対称です。非対称キー、HMAC キー、カスタムキーストアのキーは、新しいキーを作ってエイリアスを付け替える手動ローテーションで更新します。

削除をスケジュールすると、7〜30 日 (既定 30 日) の待機期間のあいだキーは「削除保留中」になり、暗号化にも復号にも使えません。待機期間中なら削除を取り消せます。まだ使われているか分からない鍵は、先に無効化して影響を確かめるか、待機期間中にキーが使われたら通知する を設定します。

⚠️ 頻出: KMS キーの削除や無効化は、暗号化データの可用性に直結します。不要そうに見える鍵でも、過去データやの復号に必要な場合があります。


⑥マルチリージョンキーとクロスアカウント利用

キーは基本的に内のリソースです。 別リージョンで暗号化や復号を行う場合は、そのリージョンの KMS キーを使う設計になります。 multi-Region key を使うと、同じキー ID と鍵素材を持つ関連キーを複数リージョンに作成できます。

設計用途判断ポイント
単一リージョンキー通常のリージョン内暗号化多くのワークロードの基本です。
Multi-Region key複数リージョンで同じ暗号化データを扱う、グローバルアプリ、クライアント側暗号化で検討します。
利用別アカウントの主体に鍵利用を許可キーポリシーと ポリシーの両方を確認します。
⑥マルチリージョンキーとクロスアカウント利用の図 Primary multi-Region keyap-northeast-1 Replica keyus-east-1 東京リージョンのアプリ 米国リージョンのアプリ

multi-Region key は、リージョン間で鍵素材を共有する関連キーですが、各リージョンに独立した KMS キーとして存在します。 すべてのリージョン暗号化要件で必要になるわけではありません。 クロスリージョンや コピーでは、コピー先リージョンの KMS キーや権限設定も確認します。

クロスアカウントで KMS キーを使う場合は、鍵を所有するアカウントのキーポリシーで外部アカウントの利用を許可し、利用側アカウントの IAM ポリシーでも KMS 操作を許可します。 対象サービス側のリソースポリシーやサービス固有の共有設定も必要になる場合があります。

⚠️ 頻出: クロスアカウントで暗号化スナップショットや S3 オブジェクトを扱う場合、リソース共有だけでなく KMS キーの利用権限も必要です。


試験対策

SAA では、 はデータ保護、監査、、バックアップ、 の問題でよく登場します。 まず「どのサービスのデータを暗号化しているか」を確認し、次に「暗号化方式が KMS を使っているか」「誰が KMS キーを使う必要があるか」を考えます。

、 暗号化、 暗号化、、 ログ暗号化では、対象サービスの権限だけではなく KMS キーの権限が必要です。 特に復号エラー、共有、クロスアカウントアクセスでは、キーポリシーと ポリシーをセットで確認します。

問題文のキーワード優先して考える機能理由
鍵の利用者を細かく制御したいCustomer managed keyキーポリシー、ローテーション、削除、監査を管理できます。
オブジェクトを KMS で暗号化SSE-KMSS3 権限に加えて KMS 権限が必要です。
暗号化データにアクセスできないkms:Decrypt とキーポリシー対象サービスの権限だけでは不足する場合があります。
誰が鍵を使ったか監査したいCloudTrailKMS の利用履歴を追跡できます。
外部アカウントに暗号化スナップショットを共有KMS キーのクロスアカウント許可スナップショット共有だけでは復号できません。
鍵素材を定期的に更新自動ローテーション既存データを復号可能なまま鍵素材を更新します。
グローバルアプリで複数復号Multi-Region key同じ鍵素材を持つ関連キーを複数リージョンで使えます。
鍵を無効化したらアプリが失敗KMS キーの可用性確認暗号化データの復号に鍵が必要です。
試験対策の図 いいえ はい KMS 関連問題 どのサービスの暗号化ですか? S3 / EBS / RDS / Secrets など KMS を使う方式ですか? サービス管理暗号化を確認 誰が復号・利用しますか? 同一アカウント クロスアカウント AWS サービス キーポリシー + IAM 権限 キーポリシー + 利用側 IAM + 共有設定 サービス連携・グラント・サービスロール CloudTrail で監査

よくある誤答は、IAM ポリシーだけを見て KMS キーを使えると判断することです。 KMS ではキーポリシーが重要で、クロスアカウントでは鍵所有側と利用側の両方の許可が必要です。 また、 や明示的 Deny がある場合は、KMS 権限が付いていても拒否されます。

コスト面では、KMS キーの保有、API リクエスト、ローテーションやサービス利用に伴う呼び出しが影響します。 SAA では具体的な料金暗記より、SSE-KMS は よりも権限制御や監査性が高い一方で、KMS 権限設計、API 呼び出し、運用負荷を考慮する点を押さえます。


参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください