SAA 暗号化設計の頻出パターン|KMS・S3・EBS・RDS を「保管時/転送時」と「鍵の管理主体」で即断する
AWS SAA-C03 で暗号化は、配点30%の最重要ドメイン1(セキュアなアーキテクチャ)で毎回問われる中核テーマだ。本記事は暗号化設計問題を「どこを守るか(保管時 at rest/転送時 in transit)」「誰が鍵を管理するか(AWS 管理キー/カスタマー管理 CMK)」「どのサービスでどう有効化するか(S3・EBS・RDS の作法)」の頻出パターンに分解する。SSE-S3 と SSE-KMS の使い分け、エンベロープ暗号化、EBS/RDS は作成時にしか暗号化を有効化できずスナップショット経由で移行する罠、CloudTrail による復号監査、クロスリージョン・クロスアカウントのキーポリシー、TLS 強制(aws:SecureTransport)——要件文のどのキーワードが正解を一意に決めるかを示す。結論は「暗号化設計は暗記ではなく、保管時か転送時か・鍵を誰が握るか・どのサービスの作法かの3軸で解く」こと。
暗号化設計を「暗号化を有効にすればいい」で片づけようとすると、SSE-S3 と SSE-KMS の使い分け・鍵の管理主体・EBS/RDS は後から暗号化できないという作法・復号の監査要件で足をすくわれる。 SAA-C03 で暗号化は、配点30%と最大のドメイン1(セキュアなアーキテクチャの設計)の中核であり、ストレージ・DB・ネットワークの設問にも「機密データをどう守るか」の前提として顔を出す最頻出テーマだ。だが問われるのは「暗号化の ON/OFF」ではなく、守る対象が保管中か通信中か・鍵を AWS に任せるか自分で握るか・そのサービス固有の有効化の作法は何かという設計判断である。攻略の鍵は、頻出テーマを「保管時か転送時か」「鍵の管理主体」「サービス別の作法」の3系統に畳み、要件文のキーワードから正解を一意に引く反射を作ること。本記事では、SAA 本番でそのまま選択肢を絞れる粒度で、KMS・S3・EBS・RDS の暗号化設計の頻出パターンを分解する。読み終えれば、「最も安全で、かつ監査・運用要件を満たす暗号化はどれか」という問いに、迷わず正解を当てられるようになる。
※ 本記事はアフィリエイト広告(Amazon アソシエイト等)を含みます
📑 目次
- 結論:暗号化設計は「3つの評価軸」で解く
- パターン1〜2:保管時と転送時を分ける(守る対象の特定)
- パターン3〜4:S3 の暗号化方式(SSE-S3/SSE-KMS/SSE-C)の使い分け
- パターン5:エンベロープ暗号化と KMS キーの種類(AWS 管理 vs カスタマー管理)
- パターン6〜7:EBS と RDS は「作成時に暗号化」——後付けできない罠
- パターン8:クロスリージョン・クロスアカウントの鍵とスナップショット
- パターン9〜10:転送時暗号化の強制と鍵ローテーション・監査
- 頻出ひっかけパターンと打ち手の整理
- 次のアクション チェックリスト
- 関連記事
- 関連サイト
1. 結論:暗号化設計は「3つの評価軸」で解く
SAA-C03 の暗号化設計問題を最短で解く骨格は、**「要件文が3つの評価軸——どこを守るか(保管時か転送時か)・鍵を誰が管理するか(AWS 管理かカスタマー管理か)・どのサービスの作法か——のどれを問うているかを特定し、その軸で選択肢を振るう」**ことだ。これが本記事の結論である。
理由は明快で、暗号化の登場人物はどれも「ある評価軸を制御するための道具」だからだ。保管時(at rest)の暗号化は S3・EBS・RDS の各サービス機能と KMS が、転送時(in transit)の暗号化は TLS/SSL と ACM が担う。鍵をどこまで自分で握るかは「S3 マネージドキー(SSE-S3)/AWS マネージドキー/カスタマー管理キー(CMK)」の選択で決まり、監査したいなら CMK+CloudTrail が答えになる。つまり要件文のキーワードが軸を指し示し、軸が正解の設定を一意に決める構造になっている。
具体例で見よう。「保存されている顧客データを暗号化したい」——保管時の軸だから 各サービスの SSE/暗号化オプションを有効化。「通信を盗聴から守りたい」——転送時の軸だから TLS(HTTPS)と ACM の証明書。「誰がいつ復号したかを監査したい」——鍵の管理主体の軸だから SSE-KMS(カスタマー管理キー)+ CloudTrail。「稼働中の RDS を暗号化したい」——サービスの作法の軸だから 暗号化スナップショット経由で作り直す(後付け不可)。ここで「とりあえず暗号化を ON にすればいい」と考えると、鍵管理や有効化タイミングを問う設問で誤答する。軸で解く——この一点が暗号化設計問題の攻略法だ。
2. パターン1〜2:保管時と転送時を分ける(守る対象の特定)
パターン1:保管時(at rest)の暗号化——「保存されているデータ」を守る
暗号化設計で最初に反射で引くべきのがこの区別だ。**ディスクやオブジェクトに保存された状態のデータを守るのが「保管時の暗号化(encryption at rest)」**である。
- S3 に置いたオブジェクト → サーバー側暗号化(SSE)を有効化:バケットのデフォルト暗号化で自動適用できる。
- EC2 にアタッチした EBS ボリューム → EBS 暗号化を有効化:ボリュームとそのスナップショットが KMS で暗号化される。
- RDS / Aurora のデータ → 保管時暗号化を有効化:DB インスタンスとスナップショット・ログが暗号化される。
いずれも裏側では KMS が鍵を管理する。「保存された機密データを暗号化せよ」という要件は、まずこの保管時暗号化を疑う。
パターン2:転送時(in transit)の暗号化——「通信中のデータ」を守る
一方、ネットワークを流れている最中のデータを守るのが**転送時の暗号化(encryption in transit)**だ。手段は **TLS/SSL(HTTPS)**であり、証明書の発行・管理は AWS Certificate Manager(ACM) が担う。CloudFront・ALB・API Gateway に ACM 証明書を紐づけて HTTPS を終端するのが定番構成だ。
3. パターン3〜4:S3 の暗号化方式(SSE-S3/SSE-KMS/SSE-C)の使い分け
パターン3:S3 サーバー側暗号化の3方式
S3 の保管時暗号化は、「誰が鍵を管理するか」で3つのサーバー側暗号化(SSE)方式に分かれる。SAA で最頻出の切り分けだ。
- SSE-S3:S3 が管理するキー(AES-256)。追加料金なし・設定も最小限で、とにかくシンプルに暗号化したいとき。ただし「誰がいつ復号したか」の監査ログは取れない。
- SSE-KMS:KMS のキーを使う。CloudTrail に鍵の使用ログが残り、S3 のアクセス権限に加えてキーポリシーによる二重のアクセス制御ができる。監査・コンプライアンス要件があるならこれ。
- SSE-C:顧客が鍵を持ち込む方式。鍵の保管・管理はすべて利用者責任で、AWS は鍵を保存しない。
| 評価項目 | SSE-S3 | SSE-KMS 推奨 | SSE-C |
|---|---|---|---|
| 鍵の管理主体 | S3(AWS 完全管理) | KMS(AWS/顧客が管理) | 顧客が持ち込み・自己管理 |
| 復号の監査(CloudTrail) | 取れない | 取れる | AWS 側では不可 |
| アクセス制御 | S3 権限のみ | S3 権限 + キーポリシー | 鍵を持つ者のみ |
| 追加コスト | なし | KMS リクエスト料金 | なし(鍵管理は自己負担) |
| 代表キーワード | 「シンプルに」「追加費用なし」 | 「監査」「証跡」「鍵を制御」 | 「鍵は自社で保持」 |
パターン4:SSE-KMS のコスト対策は「S3 バケットキー」
SSE-KMS はオブジェクトごとに KMS へリクエストが飛ぶため、大量のオブジェクトを扱うと KMS リクエスト料金が膨らむ。この対策が **S3 バケットキー(S3 Bucket Keys)**だ。バケット単位で短期間有効なキーを生成し、KMS への呼び出し回数を大幅に削減する。「SSE-KMS を使いたいがコストを抑えたい」という設問はバケットキーが答えになる。
4. パターン5:エンベロープ暗号化と KMS キーの種類(AWS 管理 vs カスタマー管理)
暗号化設計問題でKMS の仕組みそのものを問う設問も頻出だ。単独のセクションとして押さえたい。
KMS の中核はエンベロープ暗号化である。仕組みはシンプルで、データ本体は「データキー」で暗号化し、そのデータキーを「KMS キー(旧 CMK)」で暗号化する二段構えだ。大きなデータを KMS に送らずローカルで高速に暗号化でき、鍵の階層管理で安全性も高い。S3 の SSE-KMS も EBS/RDS の暗号化も、内部はこのエンベロープ暗号化で動く。
鍵の種類は「誰が管理するか」で分かれる。
- AWS マネージドキー:
aws/s3aws/ebsのようにサービスごとに AWS が自動で用意する。設定不要で手軽だが、キーポリシーの細かな制御やローテーション周期の指定はできない。 - カスタマー管理キー(CMK / Customer Managed Key):利用者が作成・管理する。キーポリシーで誰が使えるかを制御でき、ローテーション設定・無効化・削除・クロスアカウント共有ができる。監査・厳格な鍵管理が要るならこれ。
5. パターン6〜7:EBS と RDS は「作成時に暗号化」——後付けできない罠
パターン6:EBS 暗号化は「作成時のみ」・スナップショット経由で移行
SAA で最も間違えやすい罠がこれだ。EBS ボリュームの暗号化は、ボリューム作成時にしか有効化できない。稼働中の暗号化されていないボリュームを、そのまま暗号化に切り替えることはできない。
暗号化されていない既存ボリュームを暗号化するには、次の手順を踏む。
- ボリュームのスナップショットを取得する。
- そのスナップショットをコピーする際に暗号化を有効化する。
- 暗号化されたスナップショットから新しいボリュームを作成し、付け替える。
また、暗号化ボリュームから取ったスナップショット、そのスナップショットから作った新ボリュームは暗号化を引き継ぐ。アカウントで「デフォルトの EBS 暗号化」を有効にしておけば、新規ボリュームは自動で暗号化される。ボリュームタイプに関わらず暗号化は適用できる。
パターン7:RDS/Aurora 暗号化も「作成時のみ」・暗号化スナップショットから復元
RDS / Aurora の保管時暗号化も EBS と同じ思想だ。暗号化は DB インスタンスの作成時に有効化する必要があり、稼働中の暗号化されていない DB を直接暗号化することはできない。
既存の非暗号化 DB を暗号化するには、スナップショットを取り → そのスナップショットのコピー時に暗号化を有効化し → 暗号化スナップショットから新しい DB インスタンスを復元する。暗号化を有効にすると、DB 本体・自動バックアップ・リードレプリカ・スナップショットがまとめて暗号化される。
6. パターン8:クロスリージョン・クロスアカウントの鍵とスナップショット
「暗号化スナップショットを別リージョン/別アカウントにコピーして DR やデータ共有に使いたい」——これも頻出の応用パターンだ。KMS キーはリージョンごとに独立しているため、注意点がある。
- クロスリージョンコピー:あるリージョンの暗号化スナップショットを別リージョンへコピーするとき、コピー先リージョンの KMS キーで再暗号化する必要がある(元のキーは使えない)。コピー時に宛先リージョンのキーを指定する。
- クロスアカウント共有:暗号化スナップショットを別アカウントと共有するには、そのスナップショットを暗号化しているカスタマー管理キーを相手アカウントに使えるよう、キーポリシーで許可する。AWS マネージドキーで暗号化したものは共有できないため、共有前提なら初めからカスタマー管理キー(CMK)を使う。
7. パターン9〜10:転送時暗号化の強制と鍵ローテーション・監査
パターン9:転送時暗号化の「強制」(aws:SecureTransport)
転送時暗号化は「TLS を使える」だけでなく、「HTTP(非暗号化)を拒否して HTTPS を強制する」設計が問われる。S3 ならバケットポリシーで aws:SecureTransport が false のリクエストを Deny する。これで暗号化されていない通信を確実に遮断できる。ALB ならリスナーで HTTP → HTTPS リダイレクトを設定する。「暗号化通信のみ許可」「非 HTTPS を拒否」という要件はこのパターンだ。
パターン10:鍵の自動ローテーションと復号の監査
最後に、鍵のライフサイクルと検証の道具を押さえる。
- 自動キーローテーション:カスタマー管理キーは年次の自動ローテーションを有効化でき、鍵の定期更新を運用レスで実現する。「鍵を定期的に更新する運用負荷を減らしたい」ならこれ。
- 復号の監査(CloudTrail):CloudTrail は KMS キーの使用(暗号化・復号の呼び出し)を記録する。「誰がいつ機密データを復号したかを追跡したい」なら SSE-KMS(カスタマー管理キー)+ CloudTrail が答え。
- 構成の継続監査(AWS Config):AWS Config のマネージドルールで「暗号化されていない S3 バケット・EBS ボリューム・RDS」を検出し、コンプライアンス状態を継続的に監視できる。
8. 頻出ひっかけパターンと打ち手の整理
暗号化設計問題は、正しい打ち手と“やりがちな誤答”が明確に対になっている。表で押さえれば本番で機械的に振るえる。
9. 次のアクション チェックリスト
暗号化設計パターンを、今日からの学習に落とし込むための具体アクションをまとめる。
10. 関連記事
- SAA 試験完全ガイド|SAA-C03 の出題範囲・難易度・3ヶ月合格戦略 — 本シリーズの上位ガイド
- SAA 試験範囲:4ドメイン詳細解説 — ドメイン1〜4の全体像
- SAA ドメイン1:セキュアなアーキテクチャの設計 — 暗号化が主役の配点30%ドメイン
- SAA IAM 設計問題の頻出パターン10選 — キーポリシー・アクセス制御の隣接テーマ
- SAA S3 設計問題の頻出パターン10選 — バケット暗号化とデータ保護
- SAA RDS と Aurora の使い分け問題対策 — DB の保管時暗号化の隣接テーマ
- AWS KMS とは?暗号鍵管理の基本 — エンベロープ暗号化とキーポリシーの基礎
- AWS S3 完全ガイド:オブジェクトストレージの仕組み — SSE の対象となるストレージ
- EBS ボリュームタイプ完全比較 — 暗号化と組み合わせるボリューム選択
- Amazon RDS とは?マネージド DB の基本 — 保管時暗号化の対象 DB
- AWS Secrets Manager と Parameter Store の違い — 機密情報の暗号化保管
- AWS Certificate Manager(ACM)の使い方 — 転送時暗号化の証明書管理
- CloudTrail の仕組みと監査ログ活用 — 復号の監査に使う証跡
11. 関連サイト
AWS 公式
- AWS Key Management Service デベロッパーガイド(公式)
- KMS の概念:エンベロープ暗号化(公式)
- AWS KMS キーによるサーバー側の暗号化(SSE-KMS)(公式)
- Amazon EBS 暗号化(公式)
- Amazon RDS リソースの暗号化(公式)
- AWS Certified Solutions Architect – Associate(公式)
- SAA-C03 試験ガイド(公式 PDF)