既存リバースプロキシのオリジンに CloudFront + WAF を後付けする実践パターン
運用中の Web サービス群を、Docker + Traefik で立てたオリジンに直接 DNS を向けている状態から、CloudFront + AWS WAF を間に挟む構成へ移行しました。本記事ではそのとき採用したパターンと、想定しなかった落とし穴を汎用化してまとめます。 類似の構成を移行する方が、同じ落とし穴を回避できることを目的としています。 移行前の構成 ブラウザ ──► DNS ──► オリジン IP(reverse proxy: Traefik on VPS) ├── service-a (cultural.jp 相当) ├── service-b (api.cultural.jp 相当) └── service-c (webcatplus.jp 相当) 各サービスは Docker コンテナ Traefik が Host ヘッダで振り分け、Let’s Encrypt(HTTP-01)で TLS 終端 攻撃検知に CrowdSec バウンサープラグイン 移行後の構成 ブラウザ ──► DNS ──► CloudFront ──► オリジン用ドメイン ──► Traefik │ (origin.example.com) └── WAF(OWASP / 既知悪性入力 / IP評判 / レート制限) ポイントは 3 つ: ...