👋

WAF Rule を Count に上書きする時は RuleActionOverrides を使用しよう

に公開

既存の AWS WAF Rule を Block モードから Count モードに変更する際に、多くのドキュメントなどでは ExcludedRules を使用するように記載がされていた。
確かにこの設定により見た目は Count モードで上書きをされているのだが、内部の処理的には以下のような挙動をしているようだった。

  • 既存の Rule Set から、Rule 自体が除外される
  • 画面では Override to Count と表示されているが、実態としては検知自体がされず、ログも出力されない

つまり、画面では Count と表示されているが、Count モードとして動作しない、と言うことになる。

https://docs.aws.amazon.com/waf/latest/APIReference/API_ExcludedRule.html

Instead of this option, use RuleActionOverrides. It accepts any valid action setting, including Count.

公式ドキュメント(↑)には上記のような振る舞いについては記述されていないが、RuleActionOverrides を代わりに使用するようにアナウンスはされている。

実際に動作確認を行ったが、RuleActionOverrides を使用すると既存の設定を Count モードに上書くことができ、ログの出力も行われることを確認した。

設定については。CloudFormation で記載すると以下のようになる。

              RuleActionOverrides:
                - Name: NoUserAgent_HEADER
                  ActionToUse:
                    Count: {}
                - Name: UserAgent_BadBots_HEADER
                  ActionToUse:
                    Count: {}

なお、ExcludedRules の設定を行う場合は以下のようになる。

              ExcludedRules:
                - Name: NoUserAgent_HEADER
                - Name: UserAgent_BadBots_HEADER

Discussion