AWS WAFのブロックしたログは、直近のものであればAWSのコンソール上からでも確認できるが、直近のログしか表示されない上に件数も限られているため、何らか調査の必要がある場合等には向かない。
全件のログを取得するには、あらかじめロギングの設定をしておく必要がある。
これには、Kinesis Firehoseを利用してS3バケットにログを貯めておくのが一般的。
この時にいくつかハマったポイント。
Firehoseのストリーム名は"aws-waf-logs-"で始まっている必要がある
ロギングの設定は、AWS WAFの設定画面の"Logging"のタブから行えるが、設定するFirehoseを選択する画面にはストリーム名が"aws-waf-logs-"から始まるものしか選択肢に出てこない。設定画面にも注意書きがある。
FirehoseはWAFが設定されているリージョンと同一のリージョンで設定する
WAFをグローバルで設定している場合は、Firehoseはバージニア北部のリージョンで設定すること。東京リージョン等でFirehoseを設定してもWAFの設定画面で選択肢に現れない。