🌊

【Azure】Front Door WAF ポリシーでカスタムルールによるIP制限をしながらマネージドルールを適用する方法

2024/11/12に公開

やりたいこと

カスタムルールを使ってIP制限を適用しつつ、許可されたIPからのトラフィックに対してマネージドルールで評価を行いたい。

通常、カスタムルールで特定のIPアドレスを許可すると、そのトラフィックに対してはマネージドルールによる評価が実施されません。
そのため、IP制限をかけながらも、マネージドルールによるトラフィック評価が行われるように設定したいです。

https://learn.microsoft.com/ja-jp/azure/web-application-firewall/afds/waf-front-door-tuning?pivots=front-door-standard-premium

解決策

カスタムルールで「次の値を含まない」「トラフィックを拒否する」の条件を使うことで、許可されたIPからのトラフィックに対してもマネージドルールによる評価を行わせることが可能です。

詳細

通常、以下のようなカスタムルールでは、特定のIPからのアクセスが明示的に許可されるため、マネージドルールの評価がスキップされてしまいます。

優先度 カスタムルール名 一致の種類 一致変数 演算 IPアドレスまたは範囲 結果
10 AllowXXXInbound IPアドレス RemoteAddr 含まれる X.X.X.X/32 トラフィックを許可する
20 AllowXXXInbound IPアドレス SocketAddr 含まれる X.X.X.X/32 トラフィックを許可する
100 DenyAllIpv4Inbound IPアドレス RemoteAddr 含まれる 0.0.0.0/0 トラフィックを拒否する
200 DenyAllIpv6Inbound IPアドレス RemoteAddr 含まれる ::/0 トラフィックを拒否する

一方、以下のようなカスタムルールでは、特定のIPからのアクセスがカスタムルールに一致しない(暗黙的に許可される)ため、マネージドルールによる評価も行われます。

優先度 カスタムルール名 一致の種類 一致変数 演算 IPアドレスまたは範囲 結果
100 DenyUnmatchedTraffic IPアドレス RemoteAddr 次の値を含まない x.x.x.x/32 トラフィックを拒否する

注意点

「次の値を含まない」「トラフィックを拒否する」の条件は、カスタムルールで1つしか設定できない可能性があります。そのため、複数の条件を組み合わせる場合は、設定の都度検証を行うことをおすすめします。

感想

Azure Front DoorでIPアドレス制限とOWASPなどのマネージドルールによる2重評価を同時に行うケースはあまり考慮されていないのかもしれないと感じました。
この仕様について詳しい方がいらっしゃれば、コメントいただけますと幸いです。

ヘッドウォータース

Discussion