← 記事一覧へ

AWS WAF と AWS Shieldについてざっくり

AWS WAF と AWS Shield

AWS公式ドキュメントに基づいた、AWS WAF と AWS Shield の解説記事。 両者の違い、使い分け、組み合わせパターンまでをまとめる。

参考: AWS WAF or AWS Shield? / How AWS Shield and Shield Advanced work / AWS Shield Advanced capabilities and options


1. はじめに:なぜ2つのサービスがあるのか

AWSにおけるWebアプリケーション保護は、攻撃が どのネットワーク階層(OSIレイヤー)で発生するか によって担当サービスが分かれる。

レイヤー攻撃例担当サービス
L3(ネットワーク層)ICMP/UDP flood、ボリューメトリック攻撃AWS Shield
L4(トランスポート層)TCP SYN flood、UDP reflectionAWS Shield
L7(アプリケーション層)SQL Injection、XSS、HTTP floodAWS WAF

公式の整理:

AWS Shield Standard and AWS Shield Advanced provide protections against Distributed Denial of Service (DDoS) attacks for AWS resources at the network and transport layers (layer 3 and 4) and the application layer (layer 7).

つまり Shield が下位層、WAF が上位層 を主に守る分担になっている。両者を併用することで、多層防御 (defense in depth) が成立する。


2. AWS Shield

2.1 概要

AWS ShieldマネージドDDoS保護サービス。 すべてのAWSアカウントに Shield Standard が無償で自動有効化されており、より高度な防御が必要な場合に有償の Shield Advanced を追加契約する2階建て構造。

2.2 Shield が検知する攻撃クラス(公式分類)

公式ドキュメントは検知対象を3クラスに整理している:

  1. Network volumetric attacks (Layer 3) ネットワーク容量を飽和させてサービス拒否を狙う攻撃。
  2. Network protocol attacks (Layer 4) プロトコルを悪用する攻撃。代表例が TCP SYN flood で、サーバー・ロードバランサー・ファイアウォールの接続状態テーブルを枯渇させる。
  3. Application layer attacks (Layer 7) 正規に見えるリクエスト(例: Webリクエストフラッド)でアプリを過負荷にする攻撃。

2.3 Shield Standard

  • すべてのAWS顧客に追加料金なしで自動適用
  • 保護対象: Amazon EC2、ELB、CloudFront、Route 53 などのAWSサービス
  • 設定不要、常時稼働(always-on)
  • 一般的なネットワーク層・トランスポート層 DDoS を自動緩和

2.4 Shield Advanced

サブスクリプション契約で利用する有償サービス。Standardの保護に加え、以下の機能が追加される。

機能内容
AWS WAF統合Shield Advanced保護対象リソースの標準WAF費用(Web ACL、ルール、最大1,500 WCU・5,000万リクエスト/月まで)をカバー
自動アプリ層DDoS緩和既知のDDoSソースに対するWAFレート制限と、検知時のカスタム保護を自動適用
ヘルスベース検知Route 53ヘルスチェックと連携し、誤検知低減と早期検知を実現
保護グループリソースを論理グループ化し、グループ単位での検知・緩和
詳細な可視化リアルタイムメトリクス、攻撃レポート、CloudWatchメトリクス
AWS Firewall Manager連携複数アカウントへのShield Advanced保護とWAFルールを一元展開
AWS Shield Response Team (SRT)DDoS攻撃時に24/7サポートを受けられる専門チーム(Business/Enterprise Support契約が必要)
プロアクティブエンゲージメントヘルスチェックの異常時にSRTから直接連絡
コスト保護攻撃起因のデータ転送量などのスパイクに対するサービスクレジット

2.5 Shield Standard と Advanced の比較

項目StandardAdvanced
料金無償(全AWSアカウントに自動付与)月額固定 + 従量課金
保護対象全AWSサービス明示的に登録したリソース
L3/L4 DDoS防御自動自動(より高度)
L7 DDoS自動緩和なしあり(WAF連携)
SRTサポートなしあり
コスト保護なしあり
詳細レポート限定的完全

3. AWS WAF

3.1 概要

AWS WAFWeb Application Firewall。HTTP/HTTPSリクエスト(L7)を検査し、不正なリクエストを ブロック / 許可 / カウント / Captcha などのアクションで制御する。

3.2 動作レイヤーと統合先サービス

  • 動作レイヤー: アプリケーション層(L7)のみ
  • 検査単位: リクエスト単位(パケット単位ではない)
  • デプロイ先:
    • Amazon CloudFront
    • Application Load Balancer (ALB)
    • Amazon API Gateway
    • AWS AppSync
    • Amazon Cognito user pool
    • AWS App Runner
    • AWS Verified Access
    • AWS Amplify

3.3 主要コンポーネント

Web ACL(Access Control List)

WAFの中核。1つ以上のルールを束ねた ルールセット で、AWSリソースに関連付けて利用する。 未マッチリクエストに対する デフォルトアクション(allow / block)を持つ。

ルール(Rule)

リクエストの 検査条件 + マッチ時のアクション を定義。 条件はIPアドレス、HTTPヘッダー、クエリ文字列、ボディ、地理情報など多岐にわたる。

ルールグループ(Rule Group)

複数ルールをまとめた再利用可能なユニット。以下の種類がある:

  • Self-managed(自前で作成)
  • AWS Managed Rules(AWS提供)
  • AWS Marketplace Managed Rules(サードパーティ)
  • Shield Advanced / Firewall Manager 所有

3.4 AWS Managed Rules(公式マネージドルール)

AWSが提供する事前定義済みルール群。OWASP Top 10 や PCI / HIPAA などの規制対応 を支援する。

主要なマネージドルールグループ:

ルールグループ用途
Core rule set一般的なWeb脆弱性への基本防御
Known bad inputs既知の不正リクエストパターン
SQL databaseSQLインジェクション対策
Linux operating systemLFI(ローカルファイルインクルージョン)等
PHP applicationPHP固有の攻撃パターン
WordPress applicationWordPress固有の攻撃パターン
Amazon IP reputation list既知の不正IP
Anonymous IP listVPN/プロキシ/Tor
Bot Control(追加料金)悪性Bot対策(スクレイピング、スキャナー等)
Account Takeover Prevention (ATP)(追加料金)クレデンシャルスタッフィング対策
Account Creation Fraud Prevention (ACFP)(追加料金)不正アカウント作成対策

注意: マネージドルールの自動更新により新たな脅威にも追従できるが、ルール詳細はAWS側で非公開(知財・回避防止のため)。本番適用前に 必ず非本番環境でテスト すること(公式推奨)。

3.5 カスタムルールの主要な条件

条件タイプ用途例
IPセット特定IP/CIDRの許可・拒否
地理情報マッチ国単位のアクセス制御(例: 日本以外をブロック)
レートベースIP単位での流量制御(例: 5分間で1000リクエスト超でブロック)
サイズ制約ボディ・ヘッダーのサイズ制限
SQLインジェクション検査クエリ・ボディ内のSQL文検出
XSS検査スクリプトタグ検出
正規表現マッチ任意パターン
ラベル他ルールの判定結果を引き回し

3.6 高度な機能

  • Captcha / Challenge: 自動化されたアクセスをふるい落とす
  • JavaScript SDK / Mobile SDK: クライアント側でチャレンジトークンを発行
  • CloudWatchメトリクス連携: ブロック数・許可数・ルール別効果の可視化
  • ログ配信: CloudWatch Logs / S3 / Kinesis Data Firehose

4. WAF vs Shield ─ 詳細比較

公式の比較表を整理:

比較軸AWS WAFAWS Shield
主目的Webアプリの脆弱性悪用(SQLi、XSS等)からの保護DDoS攻撃(SYN flood、UDP flood等)からの保護
動作レイヤーL7(アプリケーション層)L3/L4 中心、Advanced は L7 にも対応
デプロイ明示的にWeb ACLを作成・関連付けStandard は全アカウント自動。Advanced は明示契約
カスタマイズ高い(自前ルール + マネージドルール)限定的(Advanced で一部設定可能)
マネージドルールあり(AWS / Marketplace)該当機能なし
料金モデル従量制(Web ACL数 × ルール数 × リクエスト数)Standard: 無償 / Advanced: 月額 + 従量
攻撃対応チームなしAdvanced で SRT(24/7)に連絡可能
リアルタイム監視あり(CloudWatch連携)あり(Advanced はより詳細)
トラフィック検査リクエストレベル(HTTP内容)パケットレベル(ヘッダー、流量パターン)

5. 使い分けと組み合わせパターン

5.1 ケース別の選択指針

守りたいもの主に使うサービス
SQLインジェクション、XSS等の脆弱性悪用WAF
海外IPからのアクセス制限WAF(Geo match rule)
単一IPからの過剰リクエストWAF(Rate-based rule)
Bot / スクレイピング対策WAF(Bot Control)
クレデンシャルスタッフィングWAF(ATP)
一般的なDDoS攻撃(SYN flood等)Shield Standard(自動)
大規模・高度なDDoS攻撃、24/7サポートShield Advanced
L7 DDoSの自動緩和Shield Advanced + WAF

5.2 推奨構成(多層防御)

公式が推奨する多層防御構成:

                インターネット


            ┌─────────────────┐
            │  AWS Shield     │  ← L3/L4 DDoS をネットワークエッジで遮断
            │  (Standard/Adv) │     (SYN flood, UDP flood 等)
            └────────┬────────┘


            ┌─────────────────┐
            │  CloudFront /   │  ← エッジ配信、TLS終端
            │  ALB            │
            └────────┬────────┘


            ┌─────────────────┐
            │  AWS WAF        │  ← L7 攻撃を検査
            │  (Web ACL)      │     (SQLi, XSS, HTTP flood, Bot 等)
            └────────┬────────┘


            ┌─────────────────┐
            │  アプリケーション │
            └─────────────────┘

5.3 Shield Advanced と WAF の連携

Shield Advanced を契約すると WAFと密接に連携する:

  • 保護対象リソースの 標準WAF費用がカバー される(1,500 WCU、5,000万リクエスト/月まで)
  • 自動アプリ層DDoS緩和 を有効化すると、Shield Advancedが管理するルールグループ(150 WCU)がWeb ACLに追加され、攻撃検知時に動的にWAFルールを適用
  • Layer 7 Anti-DDoS Amazon Managed Rule group が利用可能

ただし以下は Shield Advanced のカバー対象外:

  • Bot Control、ATP、ACFP などの追加料金マネージドルール
  • CAPTCHAアクション
  • 1,500 WCUを超えるWeb ACL
  • デフォルトボディサイズを超える検査

6. 「海外IPからの大量アクセス」への対処例

実際にありがちな「海外から大量アクセスが来ている」シナリオでの判断フロー:

海外IPから大量アクセス


   ┌─ パケット段階で集中(TCP接続できない)
   │  → L3/L4 DDoS の可能性
   │  → Shield に任せる(Advanced を契約していればより堅牢)

   ├─ HTTPリクエストとして大量来る
   │  → L7 DDoS / Bot / スクレイピング
   │  → WAF の Rate-based rule + Bot Control
   │  → 必要なら Shield Advanced の自動L7緩和

   ├─ /login や /signup への試行が多い
   │  → クレデンシャルスタッフィング / アカウント作成詐欺
   │  → WAF ATP / ACFP

   └─ 特定の国からのみ来る
      → WAF の Geographic match rule で地域ブロック

7. コストの考え方

AWS WAF

  • Web ACL: 1つあたり月額固定
  • ルール: ルール数に応じた月額固定
  • リクエスト数: 100万リクエストあたりの従量
  • 追加機能: Bot Control / ATP / ACFP / Captcha は別料金

AWS Shield

  • Standard: 無償
  • Advanced:
    • 月額固定(組織単位の支払いアカウントで一括)
    • データ転送量に応じた従量
    • 保護対象リソースの標準WAF費用は無料に
    • 攻撃時のコストスパイクは サービスクレジット で補填可能

詳細は公式の Shield PricingWAF Pricing を参照。


8. まとめ

観点結論
WAFだけでDDoSを防げるかL7 DDoSの一部のみ可能。L3/L4 DDoSはWAFには届かないため不可
ShieldだけでWeb脆弱性を防げるか不可。SQLi/XSS等はWAFが担当
一般的なWebサービスの基本構成Shield Standard(自動)+ WAF で開始
高い可用性が必要な場合Shield Advanced + WAF + Firewall Manager で組織横断防御
多層防御の原則エッジ(Shield)→ 配信層(CloudFront/ALB)→ アプリ前段(WAF)→ アプリ本体

何の攻撃から守りたいか → どのレイヤーか → どのサービスか」の順で考えると、迷わず構成を選択できる。


参考リンク(公式ドキュメント)