AWS WAF で検知、ブロックしたリクエストを CloudWatch Logs で確認する
AWS で CloudFront や ALB に WAF を設定した際に、WAFで検知したリクエストの詳細を知りたい場合に CloudWatch Logs を使用します。
しかし、大量のログを吐くとなると CloudWatch Logs の料金が非常に高くなってしまいます。
WAF の Logging の設定内容を見れば分かるのですが、フィルタを掛けて検知したものだけを出力するような設定を記します。
対応
「Log filters」で「Rule action: COUNT」もしくは「Rule action: BLOCK」のみを残すように「Keep in logs」に設定し、その他はドロップするように設定します。
※ ちなみに CloudWatch Logs のロググループは ”aws-waf-logs-” で始まる名前のグループしか認識しないようです。
また「Sampled requests for web ACL default actions」は Disabled にしておくと、コンソールの 「Overview」で見れる「Sampled requests」も(ログの量によりますが)見やすくなると思います。
たったこれだけのことですが後々WAFのロギングで想定外のコストがかからないように注意したいところです。