AWS認定の「ソリューションアーキテクト - アソシエイト(SAA-C03)」では、データの安全性と保護に関する設計課題が非常によく出題されます。
その中で頻繁に問われるのが、「Amazon S3 に保存するセンシティブなデータをどのように暗号化し、どうやってその鍵を管理・監査するか」というポイントです。
「SSE-S3」「SSE-KMS」「SSE-C」など、似たようなアルファベットが並んでいて混乱しやすい部分ですが、実は鍵の「管理者」と「ログの残り方」を整理すれば非常にシンプルです。
この記事では、実際の模擬試験レベル of 設計課題をもとに、S3におけるサーバーサイド暗号化の仕組みや、監査・追跡要件を満たすための設計ポイントを初心者向けに優しく解説します!
💻 よくある設計課題(シナリオ)
課題: ある極地観測研究所では、気候変動の長期データを AWS 上で管理することを決定しました。収集したデータには各国政府から提供されたセンシティブな医療・経済データが含まれており、これらは Amazon S3 に格納されます。
研究所はセキュリティと運用の観点から、次のような厳格な要件を課しています:
- 暗号鍵は AWS 内で安全に保管・管理されること
- 鍵の使用状況を完全にトレース(追跡)可能であること
- データ保護ポリシーに対し、外部監査が行える状態であること
この要件を最もシンプルかつ安全に満たす S3 の暗号化構成はどれでしょうか?
🔑 S3 サーバーサイド暗号化(SSE)の3つの選択肢
S3 にデータを保存する際、AWS側で暗号化を行ってくれる仕組みをサーバーサイド暗号化(SSE: Server-Side Encryption)と呼びます。
これには主に3つの方式があり、それぞれ「誰が鍵を管理し、どのようにログを残すか」が異なります。
| 暗号化方式 | 正式名称 | 鍵の管理元 | 特徴とメリット | ログと監査(トレーサビリティ) |
|---|---|---|---|---|
| SSE-S3 | Amazon S3 管理キーを使用したサーバー側の暗号化 | Amazon S3 | 設定が極めて簡単(デフォルト有効)。追加料金なし。 | 鍵の個別使用ログは記録されないため、厳格な監査要件には不向き。 |
| SSE-KMS | AWS KMS キーを使用したサーバー側の暗号化 | AWS KMS (Key Management Service) | キーポリシーによる詳細なアクセス制御が可能。自動ローテーション対応。 | 鍵の使用履歴(誰がいつどのデータのために使ったか)が AWS CloudTrail に詳細に記録される。 |
| SSE-C | 顧客提供のキーを使用したサーバー側の暗号化 | ユーザー自身 (顧客) | 暗号鍵を AWS に保存したくない場合に適している。 | 鍵の保管や管理・追跡はすべてユーザー自身が自前で設計・運用する必要がある。 |
🎯 研究所の「3つの要件」をどう満たすか?
今回のシナリオで提示された厳格な要件と、それぞれの解決策を紐解いていきましょう。
要件①:暗号鍵は AWS 内で安全に保管・管理されること
- 解決策: AWS に鍵管理を任せられる SSE-S3 または SSE-KMS が適しています。
- NGな構成: SSE-C は、暗号鍵を AWS 内ではなく「ユーザー自身(顧客)」が管理するため、この要件を満たせません。
要件②:鍵の使用状況を完全にトレース(追跡)可能であること
- 解決策: SSE-KMS 一択となります。 AWS KMS(Key Management Service)の最大の特徴は、AWS CloudTrail と緊密に連携している点です。KMSキーが使われる(データを暗号化・復号する)たびに、「いつ、誰が(どのIAMロールが)、どのAPI経由で鍵を使用したか」がログに刻まれます。
- NGな構成: 最も手軽な SSE-S3 では、KMSのような鍵ごとの詳細な利用履歴ログは記録されません。
要件③:データ保護ポリシーに対し、外部監査が行える状態であること
- 解決策: SSE-KMS の CloudTrail ログを利用することで、外部の監査人に対して「不適切なアクセスや鍵の使用がなかったこと」を証明する監査ログを提供できます。また、KMSの「キーポリシー」を監査することで、鍵に対する適切なアクセス権制限が行われているかを一目で証明できます。
🚫 なぜ他の選択肢は適していないのか?
試験対策として、なぜ他のアプローチが間違い(または最適ではない)なのかを整理しておきましょう。
1. Amazon Redshift にロードし、列単位の暗号化を行う
- Redshiftとは?: 膨大なデータを高速に集計・分析するための「データウェアハウス(DWH)」サービスです。
- 間違いの理由: 今回の要件は「S3に格納される長期データの安全な保管と暗号化」です。データの長期アーカイブ保存が目的であるため、わざわざ分析用データベースである Redshift にデータを移行して列単位の暗号化を設定するのは、構成が複雑になりすぎ、コストも跳ね上がってしまいます。
2. Amazon GuardDuty を使い、暗号化は SSE-S3 を使用する
- GuardDutyとは?: AWSアカウントやS3バケットに対する不審なアクティビティ(不正アクセスやマルウェアの挙動など)を機械学習で検知するセキュリティ監視サービスです。
- 間違いの理由: 監視を強めることは良いことですが、暗号化に SSE-S3 を使っているため、そもそも「鍵の使用状況を完全にトレースする」という要件を満たす詳細な鍵操作ログが得られません。また、GuardDutyは脅威の「検出」が役割であり、鍵の管理や監査ログの提供そのものを行うサービスではありません。
3. Amazon CloudHSM を用いて独自の鍵管理システムを構築し、SSE-C を使用する
- CloudHSMとは?: AWSクラウド内で、専用の物理的なハードウェア(HSM)を占有して暗号鍵を管理する、極めてセキュアで高価なサービスです。金融機関や政府機関など、業界独自の最高レベルのセキュリティ規格を満たす必要がある場合に利用されます。
- 間違いの理由: CloudHSM と SSE-C を組み合わせると、鍵のローテーション、バックアップ、可用性の担保などをすべて自前で設計・運用(プログラミング)しなければならず、運用負荷が爆発的に高くなります。また、CloudHSMの維持費は非常に高価であるため、S3の暗号化と追跡という要件に対してオーバーテクノロジー(過剰な構成)です。
💡 まとめ:試験対策のチートシート
AWS 認定試験(SAA)で S3 の暗号化設計が出題されたら、以下の「鍵の組み合わせ」パターンを頭に叩き込んでおきましょう!
- 🔑 「運用の手間をかけずに、自動で安全に暗号化したい」 ➡️ SSE-S3(Amazon S3 管理キー)
- 🔑 「鍵の使用状況を追跡(トレース)したい」「外部監査に対応したい」「詳細なアクセス制限をかけたい」 ➡️ SSE-KMS(AWS KMS キー)
- 🔑 「暗号鍵は自社で厳格に管理したい(AWSには保存したくない)」 ➡️ SSE-C(顧客提供キー)
今回の研究所のケースは、まさに「AWSでの鍵管理 + トレース・監査要件」が求められているため、AWS KMS(SSE-KMS) の採用がベストプラクティスになります。
適切な暗号化方式を選択することで、セキュリティ要件を確実に満たしつつ、無駄な運用コストや構築コストを抑えるのがソリューションアーキテクトとしての重要な役割です。ぜひ参考にしてみてください!
🎯 AWS SAA 合格に向けたおすすめの教材
AWS SAA(ソリューションアーキテクト – アソシエイト)のネットワークやセキュリティ分野は、仕組みが抽象的なため図解で学ぶのが最も効率的です。勉強をさらに進めたい方向けのおすすめ教材です。
1. 【書籍】AWS教科書 AWS認定ソリューションアーキテクトアソシエイト テキスト&問題集 第2版
試験範囲の網羅率が非常に高く、ハイブリッド接続のVPG、CGW、Direct Connectの役割が詳細な図解付きで体系的に学べる一冊です。
2. 【Udemy】【SAA-C03版】これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座
ベストセラーとなっている動画教材です。ハンズオン(実際にAWS画面を操作するパート)が豊富で、Direct Connectのルーティング概念やVPNの接続設定などをビジュアルで体感できるため、本で学ぶよりも圧倒的にネットワークの仕組みが腹落ちします。