AWS WAF 設定ガイド (ALB / CloudFront)

ALB や CloudFront に AWS WAF をアタッチし、WebACL で Web 脆弱性を防ぐ基本設定手順です。

関連ページ: VPC やサブネット設計など、ネットワーク関連のトピックについては、AWS ネットワーク設計のコツ を参照してください。

AWS WAF の基本概念

AWS WAF は、一般的な Web 脆弱性(SQLインジェクション、XSS、DDoS攻撃など)から Web アプリケーションを保護するためのファイアウォールです。主に以下のリソースにアタッチして利用します。

  • Amazon CloudFront (グローバルディストリビューション)
  • Application Load Balancer (ALB) (リージョナルリソース)
  • Amazon API Gateway (リージョナルリソース)
  • AWS AppSync (リージョナルリソース)

CloudFront への設定手順

ステップ 説明
1. リージョンの選択 WebACL を作成する際、Resource type として CloudFront distributions を選択します。この場合、リージョンは自動的に Global (CloudFront) に設定されます。
※リージョンを「Global」以外にすると CloudFront にはアタッチできません。
2. WebACL の作成 AWS マネジメントコンソールから WAF & Shield 画面に移動し、Create web ACL をクリックします。
3. ルールの追加 AWS が提供する AWSManagedRulesCommonRuleSet などのマネージドルールを追加します。これにより一般的な攻撃をブロックできます。
4. リソースの関連付け "Associated AWS resources" のステップで、保護したい CloudFront ディストリビューションを選択して追加します。

ALB への設定手順

ステップ 説明
1. リージョンの選択 WebACL を作成する際、Resource type として Regional resources (ALB, API Gateway, AppSync) を選択します。
リージョンは対象の ALB が存在するリージョン(例: Asia Pacific (Tokyo))と一致させる必要があります。
2. WebACL の作成 CloudFront と同様にマネジメントコンソールから WebACL を作成し、デフォルトのアクション(Allow または Block)を定義します。
3. ルールの設定 要件に合わせて IP セット(ホワイトリスト/ブラックリスト)やレートベースのルール(DDoS対策)を追加します。
4. リソースの関連付け 作成した WebACL を特定の ALB にアタッチします。ALB のコンソールから「Integrations」タブで AWS WAF を関連付けることも可能です。