SAP-C02-066 · セクション 08 / タスク 2.3
Data in TransitのEncryption Strategy
TLS / HTTPS / AWS Certificate Manager / 証明書 / エンドツーエンド暗号化 / 転送中の暗号化
ゴール
通信を単に「HTTPS化」するのではなく、必要なデータフローをホップへ分解し、通常経路・バックエンド・オリジン・プライベート統合・フォールバックまで含めて平文区間の抜けが残っていないかを判断できるようにします。
転送中の暗号化要件
↓
必要なデータフロー
↓
ホップへ分解
↓
各ホップでTLS成立?
↓
中継点での復号を許容?
↓
証明書/ 信頼 / TLSポリシー確認
↓
代替 / 障害時経路も確認
↓
要件成立1. HTTPS エンドポイントが1つあっても全経路暗号化とは限らない
転送中の暗号化では、データが通る経路をホップ単位で確認します。
クライアント
│ HTTPS
▼
エッジ / ロードバランサー
│ HTTP ?
▼
アプリケーション
│ TLS ?
▼
バックエンドサービス
フロントエンドがHTTPSでも、バックエンド区間がHTTPなら「全ネットワークホップを暗号化」という要件は満たしません。
2. データフローをホップへ分解する
| ホップ | 確認 |
|---|---|
| クライアント → エッジ / フロントエンド | HTTPS / TLS、フロントエンドTLSポリシー |
| エッジ / フロントエンド→ オリジン | オリジンプロトコル、証明書/ 信頼 |
| ロードバランサー → 対象 | バックエンドプロトコル、サービス固有TLS 動作 |
| アプリケーション→ 内部サービス | 内部 TLS 要件の有無 |
| 障害 / 代替経路 | 障害時だけHTTPへフォールバックしていないか |
アーキテクチャ図上の矢印をそのまま「暗号化済み」とみなさず、各接続を独立して評価します。
3. 全ホップ暗号化と中間復号禁止は別要件
次の2つは同じではありません。
| 要件 | 判断 |
|---|---|
| ネットワーク上に平文ホップを作らない | TLS終端後に再暗号化するアーキテクチャでも成立し得る |
| 中継コンポーネントでペイロードを復号してはならない | 途中でTLSを終端しないパススルー可能なアーキテクチャを評価 |
終端 + 再暗号化クライアント ─TLS─> ロードバランサー ─TLS─> アプリケーションパススルー
クライアント ─────────TLS────────> アプリケーション中継点で復号しない4. プライベート接続は転送中の暗号化を代替しない
プライベートサブネット、AWS PrivateLink、VPC リンク、Transit Gateway、AWS Direct Connectなどでパブリックインターネットを避けても、アプリケーションプロトコルがHTTPならTLSによるペイロード暗号化とは別です。
プライベート経路
≠
TLS 暗号化
要件が「プライベートネットワーク内を含むすべてのホップを暗号化」であれば、プライベート接続とは別にTLSを適用します。
5. ACM証明書は配置したホップだけを成立させる
AWS Certificate Managerで証明書を管理してフロントエンドTLSを成立させても、それだけでバックエンドTLSまで完成したとは判断しません。
クライアント
│ HTTPS
▼
ALB
↑ ACM証明書
│
│ バックエンド区間は別確認
▼
アプリケーション
証明書管理の知識は、各TLS終端ポイントへ適用します。1枚の証明書が複数ホップを自動的に保護するわけではありません。
6. CloudFrontはビューワーとオリジンを別ホップとして確認する
CloudFrontではビューワー側とオリジン側は別接続です。
ビューワー ─HTTPS─> CloudFront
│
│ HTTPS ?
▼
オリジン
ビューワープロトコルポリシーがHTTPSのみでも、オリジンプロトコルポリシーがHTTPならオリジン側は平文です。全ホップ暗号化要件ならオリジン側もHTTPSにします。
カスタムオリジンへHTTPS接続する場合は、CloudFrontがオリジン証明書の信頼性やドメイン名などを検証するため、TLS化だけでなくそのホップの信頼成立も確認します。
7. ALBではバックエンド暗号化とバックエンドの証明書検証を分ける
Application Load BalancerはHTTPS 対象を利用してバックエンド区間を暗号化できます。
クライアント ─HTTPS─> Aロードバランサー ─HTTPS─> 対象
ただしALBは対象証明書を検証しません。そのため、
バックエンドTLS 暗号化
≠
バックエンド証明書によるアイデンティティ検証
要件が「暗号化」だけなのか、「CA / ホスト名等によるバックエンドの証明書検証」まで求めるのかを分離します。
8. ALB バックエンドTLSポリシーはフロントエンドと同一とは限らない
フロントエンドリスナーがコンプライアンス要件を満たしていても、バックエンド接続が同じセキュリティポリシーを使うとは限りません。
ALBではバックエンドのセキュリティポリシーを独立して選択するのではなく、リスナーセキュリティポリシーのカテゴリに応じてAWS側がバックエンドポリシーを決定します。
フロントエンドのリスナーポリシー
↓
現在ALB 動作を確認
↓
バックエンドのセキュリティポリシー
↓
対象のプロトコル / 暗号スイートの互換性
↓
バックエンドTLS 要件成立?
具体的なポリシー名を固定暗記せず、現在サービス動作を確認します。
9. Amazon API Gateway フロントエンドHTTPSとプライベート統合は別
Amazon API GatewayのフロントエンドエンドポイントがHTTPSでも、プライベートバックエンドとの統合プロトコルは別に確認します。
クライアント ─HTTPS─> API ゲートウェイ
│
│ HTTP / HTTPS ?
▼
プライベートバックエンド
要件がバックエンドまでTLS必須なら、プライベート統合側でもHTTPS / TLSを明示的に成立させます。
10. リダイレクトとHTTPSのみを要件で分ける
| 制御 | 意味 |
|---|---|
| リダイレクト HTTPからHTTPSへ | 最初のHTTP リクエストを受け取り、HTTPSへ誘導する |
| HTTPSのみ | HTTP 接続自体を許可しない |
要件が「アプリケーションデータはHTTPSへ誘導」でよいのか、「平文 HTTP 接続そのものを禁止」なのかで選択が変わります。
11. 証明書とTLS セキュリティポリシーを分ける
有効な証明書を配置しただけでは、TLS 1.2以上などのプロトコル要件は完成しません。
証明書
→ エンドポイントのアイデンティティ/ TLS成立要素
TLS セキュリティポリシー
→ TLS バージョン / 暗号スイートの許容範囲
コンプライアンス要件が明確なら、デフォルトに任せず対象サービスの現在のセキュリティポリシーとクライアント / バックエンド互換性を確認します。
12. 障害経路にも平文区間の抜けを残さない
通常時だけHTTPSでも、障害時にHTTPへフォールバックするなら「平文禁止」という要件は満たしません。
通常経路ロードバランサー ─HTTPS─> アプリケーション障害時経路ロードバランサー ─HTTP──> アプリケーション ← 要件違反
ヘルスチェック、フォールバックリスナー、代替オリジン、復旧経路など、実際にトラフィックが通る可能性がある経路も確認します。
13. 候補比較
| 候補 | 要件への適合 |
|---|---|
| フロントエンドHTTPS + バックエンドHTTP | インターネット側だけTLSなら成立。全ホップ暗号化では不十分 |
| 終端 + バックエンド再TLS | 全ホップ暗号化には有力。中間復号禁止には不適合 |
| TLS パススルー | 中間で復号禁止なら有力 |
| プライベート接続 + HTTP | プライベート経路は満たせても転送中の暗号化を満たすとは限らない |
| HTTP → HTTPS リダイレクト | HTTPS誘導には有効。HTTP 接続自体の禁止には不十分 |
| フロントエンド証明書だけ配置 | バックエンドTLSやTLS バージョン要件は別確認 |
14. 判断フロー
転送中の暗号化要件
↓
必要なデータフローを列挙
↓
ホップへ分解
↓
各ホップでTLS必須?
↓
平文ホップあり?
↓
中継点での復号を許容?
↓
各ホップの証明書/ 信頼確認
↓
サービス固有TLS 動作確認
↓
TLS バージョン / 暗号スイート要件確認
↓
障害 / 代替経路確認
↓
平文区間の抜けなし
↓
要件成立15. 混同ポイント
| 混同 | 正しい判断 |
|---|---|
| フロントエンドがHTTPSならバックエンドも暗号化済み | 各ホップを独立して確認 |
| プライベートネットワークならTLS不要 | プライベート接続と転送中の暗号化は別 |
| 全ホップ暗号化なら中間で復号していない | TLS終端ポイントでは復号される |
| ACM証明書があれば全ホップ TLS | 証明書を使用する終端ポイントごとに確認 |
| HTTPSならサーバー証明書を必ず同じ方法で検証 | 検証動作はサービス/ ホップごとに確認 |
| 証明書を配置すればTLS 1.2以上 | TLS バージョンはセキュリティポリシーで別確認 |
| リダイレクトはHTTPを受け付けていない | 最初のリクエストはHTTP |
| フロントエンドTLSポリシーが適合ならバックエンドも同じ | バックエンドの現在サービス動作を確認 |
まとめ
転送中の暗号化
=
必要なデータフロー
+
ホップバイホップ TLS
+
終端要件
+
証明書/ 信頼
+
TLS セキュリティポリシー
+
障害時経路の検証
重要なのは「HTTPSを使っているか」ではなく、要件対象のすべての経路で平文区間の抜けがなく、必要な信頼 / TLSポリシーまで成立しているかです。
理解確認
このページの内容を13問で確認します。
理解確認13問へ →