🌊
【Azure】Front Door WAF ポリシーでカスタムルールによるIP制限をしながらマネージドルールを適用する方法
やりたいこと
カスタムルールを使ってIP制限を適用しつつ、許可されたIPからのトラフィックに対してマネージドルールで評価を行いたい。
通常、カスタムルールで特定のIPアドレスを許可すると、そのトラフィックに対してはマネージドルールによる評価が実施されません。
そのため、IP制限をかけながらも、マネージドルールによるトラフィック評価が行われるように設定したいです。
解決策
カスタムルールで「次の値を含まない」「トラフィックを拒否する」の条件を使うことで、許可された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