インターネットへ公開するWebアプリケーションでは、不正なリクエストや脆弱性を狙った攻撃、DDoS攻撃など、さまざまな脅威への対策が必要です。
AWSでは、こうしたWebアプリケーションへの攻撃を防御する代表的なサービスとして、
AWS WAFとAWS Shieldが提供されています。
どちらも「Webサービスを攻撃から守る」という点では似ていますが、担当する防御領域は異なります。
AWS WAF
Webリクエストの内容を検査し、不正なアクセスを許可・拒否する
AWS Shield
DDoS攻撃からAWSリソースを保護する
SAA(AWS Certified Solutions Architect – Associate)では、WAFとShieldの機能を暗記するだけでなく、「どのような攻撃を防ぎたいのか」から適切なサービスを判断できることが重要です。
本記事では、AWS WAFとAWS Shieldの仕組みや違い、CloudFrontやApplication Load Balancer(ALB)と組み合わせた代表的な防御構成まで解説します。
📚 SAA試験対策ボックス
| 試験頻出度 | ★★★★☆ |
|---|---|
| 重要度 | ★★★★★ |
| 関連分野 | セキュアなアーキテクチャの設計 / Webアプリケーション保護 / DDoS対策 |
| 重要キーワード | AWS WAF / Web ACL / AWS Managed Rules / Rate-based Rule / AWS Shield Standard / AWS Shield Advanced / CloudFront / ALB |
この記事で覚えること
- AWS WAFとAWS Shieldの役割の違い
- Web ACLとWAFルールの関係
- AWS Managed Rulesの役割
- レートベースルールによる大量リクエスト対策
- Shield StandardとShield Advancedの違い
- CloudFront・ALB・WAF・Shieldを組み合わせた防御構成
- SAAでWAFとShieldをどう使い分けるか
AWS WAFとは?
AWS WAF(Web Application Firewall)は、Webアプリケーションへ送られてくるHTTP/HTTPSリクエストを検査し、設定したルールに基づいてアクセスを制御するサービスです。
通常のファイアウォールがIPアドレスやポート番号などを基準に通信を制御するのに対し、WAFではWebリクエストの内容を確認して制御できます。
例えば、次のような条件を利用できます。
- 送信元IPアドレス
- HTTPヘッダー
- URIパス
- クエリ文字列
- リクエスト本文
- リクエスト数
- 攻撃パターンに一致する文字列
これらの条件を利用することで、Webアプリケーションに到達する前に不正なリクエストをブロックできます。
AWS WAFはどのような攻撃を防ぐ?
AWS WAFは、Webアプリケーションレイヤーを狙った攻撃への対策に利用できます。
代表的な例として、次のような攻撃があります。
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- 悪意のあるIPアドレスからのアクセス
- 特定地域からの不要なアクセス
- 大量のWebリクエスト
- 既知の攻撃パターンを含むリクエスト
覚え方
AWS WAFは「HTTP/HTTPSリクエストの中身を見る警備員」と考えると分かりやすいでしょう。
AWS WAFの基本構成
AWS WAFでは、主にWeb ACL(Web Access Control List)とルールを組み合わせてアクセスを制御します。
基本的なイメージは次のとおりです。

ユーザー
↓
Internet
↓
AWS WAF
│
├─ Rule 1:SQLインジェクションを検査
├─ Rule 2:特定IPをブロック
├─ Rule 3:大量アクセスを検査
│
↓
CloudFront / ALBなど
↓
Web Application
AWS WAFでは、複数のルールをWeb ACLへ登録し、そのWeb ACLを保護対象となるAWSリソースへ関連付けます。
Web ACLとは?
Web ACLは、AWS WAFで使用するアクセス制御ルールをまとめたものです。
Web ACLには複数のルールを設定できます。
Web ACL
├── Rule 1:SQLインジェクション対策
├── Rule 2:XSS対策
├── Rule 3:特定IPアドレスを拒否
└── Rule 4:大量リクエストを制御
リクエストが送信されると、AWS WAFがWeb ACLに設定されたルールを評価します。
ルールの評価結果などに応じて、リクエストに対する処理を決定します。
AWS WAFの代表的なアクション
AWS WAFでは、ルールに一致したリクエストに対してさまざまなアクションを設定できます。
| アクション | 概要 |
|---|---|
| Allow | リクエストを許可する |
| Block | リクエストをブロックする |
| Count | ブロックせず、一致したリクエストをカウントする |
| CAPTCHA | CAPTCHAによる確認を要求する |
| Challenge | クライアントへチャレンジを実行する |
💼 実務ではこう使う
新しいWAFルールをいきなりBlockで導入すると、正常なユーザーまで遮断してしまう可能性があります。
そのため、まずCountでマッチ状況を確認し、問題がないことを確認してからBlockへ変更する運用が考えられます。
AWS Managed Rulesとは?
すべての攻撃パターンを利用者自身でルール化するのは大きな負担になります。
そこでAWS WAFでは、AWSが管理するAWS Managed Rulesを利用できます。
AWS Managed Rulesには、一般的なWebアプリケーションの脅威や既知の攻撃パターンに対応するためのマネージドルールグループが用意されています。
これにより、利用者が一からすべての検査ルールを作成する必要を減らすことができます。
📘 SAA試験ポイント
「一般的なWeb攻撃から保護したい」「運用負荷を抑えたい」といった要件では、AWS Managed Rulesが重要な選択肢になります。
SQLインジェクション対策
SQLインジェクションは、Webアプリケーションへ不正なSQL文などを入力し、データベースを不正操作しようとする攻撃です。
AWS WAFでは、SQLインジェクションに関連するパターンを検査し、不正なリクエストをブロックするルールを設定できます。
Attacker
↓
不正なSQLを含むHTTP Request
↓
AWS WAF
↓
BLOCK
ただし、WAFだけに依存するのではなく、アプリケーション側でも適切な入力処理やセキュアな実装を行うことが重要です。
クロスサイトスクリプティング(XSS)対策
クロスサイトスクリプティング(XSS)は、Webページへ悪意のあるスクリプトを混入させる攻撃です。
AWS WAFでは、XSSに関連するパターンを検査するルールを利用できます。
Attacker
↓
悪意のあるスクリプトを含むRequest
↓
AWS WAF
↓
BLOCK
SQLインジェクションと同様、アプリケーション側の対策とWAFによる防御を組み合わせることが重要です。
IPアドレスによるアクセス制御
AWS WAFでは、IP setを利用して特定のIPアドレスやIPアドレス範囲をアクセス制御へ利用できます。
例えば、
- 悪意のあるIPアドレスを拒否する
- 特定IPアドレスからのみアクセスを許可する
- 社内ネットワークのIPアドレスだけ許可する
といった制御が可能です。
ポイント
AWS WAFは、単なるSQLインジェクション対策サービスではありません。
Webリクエストに関するさまざまな条件を利用してアクセスを制御できることを覚えておきましょう。
レートベースルールとは?
AWS WAFには、一定期間に大量のリクエストを送信するクライアントを検出・制御するレートベースルールがあります。
例えば、通常のユーザーでは考えにくい頻度で大量のHTTPリクエストが送信されている場合、そのアクセスを制限できます。
Client
│
├─ Request
├─ Request
├─ Request
├─ Request
├─ Request
└─ Request
↓
Rate-based Rule
↓
しきい値を超えたアクセスを制御
Webアプリケーションレイヤーへの大量アクセス対策として重要な機能です。
📘 SAA試験ポイント
「特定のクライアントから短時間に大量のHTTPリクエストが送信されるため制限したい」といった要件では、AWS WAFのレートベースルールを検討します。
AWS WAFを関連付けられる代表的なサービス
AWS WAFは、Webリクエストを受けるさまざまなAWSリソースと組み合わせて利用できます。
SAA学習では、特に次の組み合わせを理解しておきましょう。
- Amazon CloudFront
- Application Load Balancer(ALB)
- Amazon API Gateway
このほかにも、AWS WAFがサポートする複数のAWSサービスがあります。
特にWebアプリケーションでは、
Internet
↓
CloudFront
↓
AWS WAF
↓
ALB
↓
EC2
といった構成をイメージしておくとよいでしょう。
なお、WAFは物理的に「CloudFrontとALBの間へ設置する装置」ではなく、Web ACLをCloudFrontなどの保護対象リソースへ関連付けて利用します。
AWS Shieldとは?
AWS Shieldは、AWS上で動作するアプリケーションをDDoS(Distributed Denial of Service)攻撃から保護するためのサービスです。
DDoS攻撃では、多数の端末などから大量のトラフィックを送りつけ、対象システムのリソースやネットワーク帯域を消費させ、正常なサービス提供を妨害します。
Attacker
Attacker ──┐
Attacker ──┼── 大量トラフィック ──→ Web Service
Attacker ──┤
Attacker ──┘
AWS Shieldは、このようなDDoS攻撃への防御を提供します。
Shield StandardとShield Advanced
AWS Shieldには、主に次の2つがあります。
- AWS Shield Standard
- AWS Shield Advanced
SAAでは、この2つの違いを理解することが重要です。
AWS Shield Standardとは?
AWS Shield Standardは、AWSの利用者に対して追加料金なしで提供されるDDoS保護です。
一般的なネットワーク層・トランスポート層のDDoS攻撃などに対する保護を提供します。
利用者がShield Standardを有効化するために個別のサブスクリプションを行う必要はありません。
覚えておきたいポイント
Shield Standard = AWSで標準的に提供されるDDoS保護
AWS Shield Advancedとは?
AWS Shield Advancedは、より高度なDDoS保護を必要とする環境向けの有料サービスです。
高度なDDoS攻撃への保護や可視性に加え、DDoSイベント発生時の支援など、Standardより充実した機能が提供されます。
代表的な特徴として、次のようなものがあります。
- 高度なDDoS検出・緩和
- 攻撃に関する詳細な可視性
- AWS Shield Response Team(SRT)による支援
- DDoSに関連する一部のスケーリング料金に対するコスト保護
- AWS WAFと組み合わせた高度な保護
📘 SAA試験ポイント
「大規模なDDoS攻撃への高度な保護」「DDoS発生時にAWSの専門チームから支援を受けたい」といった要件では、AWS Shield Advancedが重要な候補になります。
Shield StandardとAdvancedの違い
| 比較項目 | Shield Standard | Shield Advanced |
|---|---|---|
| 料金 | 追加料金なし | 有料 |
| 主な目的 | 一般的なDDoS攻撃への保護 | 高度なDDoS保護 |
| DDoSイベントの詳細な可視性 | 基本的な保護 | より高度 |
| SRTによる支援 | なし | あり |
| DDoSコスト保護 | なし | 条件に基づき提供 |
| 想定環境 | 一般的なAWS利用 | 高い可用性・セキュリティが要求されるシステム |
AWS WAFとAWS Shieldの違い
ここまでの内容を整理すると、AWS WAFとAWS Shieldでは防御する攻撃の種類が異なります。

| 比較項目 | AWS WAF | AWS Shield |
|---|---|---|
| 主な役割 | Webリクエストの検査・制御 | DDoS攻撃への防御 |
| 主な対象 | Webアプリケーションレイヤー | 主にDDoS攻撃 |
| SQLインジェクション | 〇 | 主目的ではない |
| XSS | 〇 | 主目的ではない |
| IPベースのWebアクセス制御 | 〇 | 主目的ではない |
| HTTPリクエストのレート制御 | 〇 | DDoS保護とは役割が異なる |
| DDoS対策 | アプリケーション層の対策を補完 | ◎ 主目的 |
最重要ポイント
AWS WAFとAWS Shieldは「どちらを使うか」という競合サービスではありません。
防御する領域が異なるため、要件に応じて組み合わせて利用します。
CloudFront・WAF・Shieldを組み合わせる
インターネット向けWebアプリケーションでは、Amazon CloudFront・AWS WAF・AWS Shieldなどを組み合わせることで多層的な防御を構成できます。
例えば、次のような構成です。
User
↓
Internet
↓
CloudFront
+ AWS Shield
+ AWS WAF
↓
Application Load Balancer
↓
EC2
↓
RDS
それぞれの役割を整理すると、次のようになります。
| サービス | 役割 |
|---|---|
| CloudFront | エッジロケーションからコンテンツを配信 |
| AWS Shield | DDoS攻撃への防御 |
| AWS WAF | 悪意のあるWebリクエストを検査・制御 |
| ALB | Webトラフィックをバックエンドへ分散 |
| Security Group | リソース単位で通信を制御 |
このように、AWSでは1つのセキュリティサービスだけですべてを守るのではなく、複数の防御レイヤーを組み合わせることが重要です。
セキュリティグループとWAFの違い
AWS WAFを学習すると、「セキュリティグループとは何が違うの?」という疑問が出てきます。
両者は通信を制御する点では似ていますが、見る情報が異なります。
| 比較項目 | AWS WAF | Security Group |
|---|---|---|
| 主な制御対象 | HTTP/HTTPSリクエスト | リソースへのネットワーク通信 |
| HTTPリクエスト内容の検査 | 〇 | × |
| SQLインジェクション対策 | 〇 | × |
| ポート番号による制御 | 主目的ではない | 〇 |
| 代表的な用途 | Web攻撃への防御 | EC2・ALBなどへの通信制御 |
Security Group
「このポートへの通信を許可するか」
AWS WAF
「このWebリクエストを通してよいか」
と考えると違いを理解しやすくなります。
WAFをALBに関連付ける構成
CloudFrontを使用しないWebアプリケーションでも、Application Load BalancerへAWS WAFのWeb ACLを関連付けて保護できます。
Internet
↓
AWS WAF
↓
Internet-facing ALB
↓
EC2
(Private Subnet)
例えば、前回の記事で解説したVPC構成と組み合わせると、
Internet
↓
Internet Gateway
↓
ALB
(Public Subnets)
│
│ AWS WAFでWebリクエストを保護
↓
EC2
(Private Subnets)
↓
RDS
(Private DB Subnets)
という多層構成を作ることができます。
🔥 SAAでよくある判断パターン
パターン① SQLインジェクションやXSSを防ぎたい
要件
↓
Webリクエストの内容を検査したい
↓
AWS WAF
答えの候補:AWS WAF
パターン② 特定IPからのWebアクセスを拒否したい
要件
↓
IPアドレスを条件にWebアクセスを制御
↓
AWS WAF
答えの候補:AWS WAF + IP set
パターン③ 大量のHTTPリクエストを制限したい
要件
↓
リクエストレートを基準に制御
↓
AWS WAF
↓
Rate-based Rule
答えの候補:AWS WAFのレートベースルール
パターン④ 一般的なDDoS攻撃からAWSサービスを守りたい
要件
↓
DDoS Protection
↓
AWS Shield Standard
答えの候補:AWS Shield Standard
パターン⑤ 高度なDDoS保護と専門家の支援が必要
要件
↓
高度なDDoS Protection
+
専門チームによる支援
↓
AWS Shield Advanced
答えの候補:AWS Shield Advanced
パターン⑥ Web攻撃とDDoS攻撃の両方から守りたい
Internet
↓
Shield
↓
WAF
↓
Web Application
答えの候補:AWS WAF + AWS Shield
実際には両サービスを物理的に直列配置するというより、それぞれの保護機能を対象リソースへ適用して多層防御を実現すると考えましょう。
⚠ 初心者が間違えやすいポイント
① AWS WAFはDDoS専用サービス
誤りです。
AWS WAFはWebリクエストを検査・制御するサービスです。
DDoS保護を主目的とするサービスはAWS Shieldです。
② Shield Standardは有料オプション
誤りです。
Shield StandardはAWS利用者へ追加料金なしで提供されるDDoS保護です。
③ Shield Advancedを使えばWAFは不要
誤りです。
WAFとShieldでは防御する領域が異なるため、要件に応じて組み合わせます。
④ セキュリティグループがあればWAFは不要
誤りです。
セキュリティグループでは、SQLインジェクションやXSSなどのWebリクエスト内容を検査することはできません。
⑤ WAFを導入すればアプリケーション側のセキュリティ対策は不要
誤りです。
WAFは重要な防御レイヤーですが、アプリケーションの脆弱性をなくすものではありません。
セキュアコーディング、脆弱性管理、アクセス制御などと組み合わせる必要があります。
WAF・Shield・Security Groupを整理
| サービス | 何を見る? | 代表的な防御 |
|---|---|---|
| AWS WAF | Webリクエスト | SQLi / XSS / IP制御 / レート制御 |
| AWS Shield | DDoS攻撃 | DDoS緩和 |
| Security Group | ネットワーク通信 | IP / プロトコル / ポートなどの通信制御 |
📘 SAA問題の考え方
問題文に登場するキーワードから、まず「何を防ぎたいのか」を判断しましょう。
- SQL Injection → AWS WAF
- XSS → AWS WAF
- HTTPリクエストのレート制限 → AWS WAF
- DDoS → AWS Shield
- 高度なDDoS保護・SRT → AWS Shield Advanced
- EC2へのポート制御 → Security Group
AWS公式試験ガイドとの関連
AWS WAFとAWS Shieldは、SAAで求められるセキュアなアーキテクチャの設計を理解するうえで重要なサービスです。
特に、
- Webアプリケーションへの不正アクセスを防ぐ
- 一般的なWeb脆弱性を狙う攻撃を軽減する
- DDoS攻撃からサービスを保護する
- インターネットへ公開するシステムを多層防御する
- 運用負荷を抑えながらAWSマネージドサービスを利用する
といった要件から、WAF・Shield・CloudFront・ALB・Security Groupなどを適切に組み合わせることが重要です。
🔥 SAA試験頻出ポイント
- AWS WAFはWebリクエストを検査・制御する
- Web ACLに複数のWAFルールを設定する
- AWS Managed Rulesを利用できる
- SQLインジェクションやXSSへの対策にWAFを利用できる
- IP setを利用したIPアドレスベースの制御ができる
- 大量のHTTPリクエストにはレートベースルールが利用できる
- Shield Standardは追加料金なしのDDoS保護
- Shield Advancedは高度なDDoS保護を提供する有料サービス
- Shield AdvancedではSRTによる支援を利用できる
- WAFとShieldは競合するサービスではない
- CloudFront・WAF・Shieldなどを組み合わせた多層防御を理解する
- Security GroupとWAFは防御するレイヤー・役割が異なる
まとめ
AWS WAFとAWS Shieldは、インターネットへ公開するAWSシステムを保護するための重要なセキュリティサービスです。
AWS WAF
Webリクエストを検査し、SQLインジェクション・XSS・悪意のあるIPアドレス・大量リクエストなどを制御します。
AWS Shield
AWS上のアプリケーションをDDoS攻撃から保護します。
SAAでは、
Webリクエストへの攻撃
↓
AWS WAF
DDoS攻撃
↓
AWS Shield
という基本的な役割の違いをまず理解しましょう。
さらに実際のWebアプリケーションでは、
Internet
↓
CloudFront
│
├── AWS Shield
└── AWS WAF
↓
ALB
↓
EC2
↓
RDS
というように、複数のAWSサービスを組み合わせて多層的に防御します。
「どのサービスが強いか」ではなく、「どの種類の攻撃から何を守るのか」を考えながらサービスを選択できるようにしておきましょう。

