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ルールは最初にCountモードで評価し、誤検知を確認してからBlockへ変更 CloudWatchでWAF、CloudFront、ALB、ECS、RDSのメトリクスとログを集約 CloudTrail、GuardDuty、Security Hub、AWS Configで監査と検知を実施 Secrets ManagerとKMSを環境ごとに分離し、シークレットとデータを暗号化 WAF、ネットワーク、アプリ基盤はTerraform、AWS CDKまたはCloudFormationで共通化
構成の要点
環境ごとのWAF方針
| 環境 | 主なルール | アクセス方針 |
|---|---|---|
| 開発 | AWS Managed Rules、IP許可リスト | 開発メンバーのみ |
| 検証 | 本番同等ルール、IP制限、Count評価 | 誤検知とログを確認 |
| 本番 | Managed Rules、Rate limit、Bot対策、Geo制御 | 原則公開、脅威通信を遮断 |
運用設計
前提
この図はWebアプリケーションをECS Fargateで稼働させる例です。EC2、EKS、Lambdaを採用する場合でも、エッジ層のCloudFront + AWS WAFと環境分離の考え方は同様です。