AWS WAF付き 開発・検証・本番環境のシステム構成図

❌ Unsupported block (callout)❌ Unsupported block (embed)

構成の要点

  • 通信経路:Internet → Route 53 → CloudFront + AWS WAF → ALB → ECS Fargate → RDS / S3
  • ALBのみPublic Subnetに配置し、ECSとRDSはPrivate Subnetに配置
  • 開発・検証・本番はAWSアカウント、VPC、IAM、データ、ログ保存先を分離
  • 2つのAvailability Zoneを利用して単一障害点を抑制
  • CI/CDは開発 → 検証 → 手動承認 → 本番の順で昇格
  • 環境ごとのWAF方針

    環境主なルールアクセス方針
    開発AWS Managed Rules、IP許可リスト開発メンバーのみ
    検証本番同等ルール、IP制限、Count評価誤検知とログを確認
    本番Managed Rules、Rate limit、Bot対策、Geo制御原則公開、脅威通信を遮断

    運用設計

  • WAFルールは最初にCountモードで評価し、誤検知を確認してからBlockへ変更
  • CloudWatchでWAF、CloudFront、ALB、ECS、RDSのメトリクスとログを集約
  • CloudTrail、GuardDuty、Security Hub、AWS Configで監査と検知を実施
  • Secrets ManagerとKMSを環境ごとに分離し、シークレットとデータを暗号化
  • WAF、ネットワーク、アプリ基盤はTerraform、AWS CDKまたはCloudFormationで共通化
  • 前提

    この図はWebアプリケーションをECS Fargateで稼働させる例です。EC2、EKS、Lambdaを採用する場合でも、エッジ層のCloudFront + AWS WAFと環境分離の考え方は同様です。