AWS WAFのlog取得機能を試してみた

富松広太 2019年1月7日

aws waf でlog取得機能がアップデートされましたので試してみました。
https://aws.amazon.com/jp/about-aws/whats-new/2018/08/aws-waf-launches-new-comprehensive-logging-functionality/
WAFルール適応履歴は、WAFの画面から確認することも可能ですが、
ログを残しておくと、過去ブロックされたアクセスの原因確認等も
可能になるため、重宝しそうな機能です。

設定作業

手順としては事前にKinesis firehoseを作成しておく必要があります。
fiehoseの作成リージョンはバージニアでないといけないようです。
(執筆時点で、CLIでもバージニアでないとエラーが出力されました)
例では、firehoseでS3を連携サービスとして選択しています。
本番でもS3と連携する場合は、 S3にライフサイクルルールを設定しておいたほうが良さそうです。

動作確認

設定後、適当にWAFを経由したアクセスを実施し、数分後にS3を確認します。
Firehoseで指定したS3の場所にログが出力されています。
`aws s3 ls s3://対象バケット名/指定プレフィックス/yyyy/mm/dd/hh/
2018-10-01 14:54:55       3552 aws-waf-logs-test-1-2018-10-01-05-49-51-56b24646-d81a-46b7-83eb-e28272fbc7ef`
ログで取得可能な項目は下記Documentに記載されています。
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/logging.html
WAFでのログ取得は結構便利なので、ご参考にして頂ければ幸いです。