AWS WAF のマネージドルールで特定パスへのリクエストを例外扱いするにはどうすればいいでしょうか。
2025.11.13
困っていた内容
AWS WAF のマネージドルールを利用してアプリケーションを運用している中で、
一部の URI(パス)に対してのみ特定のマネージドルールの検知を除外したいという要望がありました。
このようなケースの場合、どのようにルールを設定すれば良いでしょうか。
具体的な解決策
特定のリクエストを除外する方法としては、スコープダウンステートメント を利用する方法と ラベル を利用する方法があります。
- スコープダウンステートメントでは、ルールグループ単位で評価を除外することが可能ですが、ルール単位での除外はできません。
- 一方で、ラベルを用いた方法では、ルール単位で除外設定を行うことが可能なため、マネージドルールグループ内の特定のルールに対してのみ除外を行いたい場合には、ラベルを用いた方法を使用します。
対象ルールのアクションをCountに変更し、当該のマネージドルールグループよりも低い優先度で、
「当該ルールのラベルが付与された通信」かつ「特定の URI ではない通信」をBlockするカスタムルールを作成することで、
指定された URI 以外のリクエストのみをブロックすることが可能です。
■ 設定例
特定の URI へのリクエストに対してのみ、AWSManagedRulesSQLiRuleSet ルールグループ内の SQLi_BODY ルールの検知を除外したい場合
SQLi_BODYルールのアクションを Override to Count に設定する- 新規でカスタムルールを作成し、SQLi_BODYルールのラベルが付与されているかつ、特定の URI 以外へのリクエストをブロックするルールを作成する
- 2-1. カスタムルール作成画面にて、「If a request」のドロップダウンリストから matches all the statements (AND) を選択
- 2-2. Statement 1 にて
- Inspect:Has a label
- Match scope:Label(Match key は SQLi_BODY のものを選択)
- 2-3. Statement 2にて
- Negate statement results:オン
- Inspect:URI Path
- Match type:希望する文字列一致条件を選択
- String to match:該当の URI パスを入力
- 2-4.
Actionにて Block を選択
- 作成したカスタムルールの優先度を、AWSManagedRulesSQLiRuleSet ルールグループよりも低く設定する






