2024年8月8日更新
本記事はWafCharmダッシュボード(旧管理画面)向けの内容です。WafCharmコンソール(新管理画面)をご利用されている場合は、以下のブログ記事をご参考ください。
また、新規申し込みはWafCharmコンソールからのみ受け付けております。
※WafCharmコンソールではインターフェースの大幅な変更を行っているため、WafCharmダッシュボードとは操作手順などが異なります。
WafCharmコンソールをリリースしました目次

1. はじめに
2021年11月15日 PTD に AWS WAF のドキュメントにアップデートがあり、 CloudWatch Logs と S3 へ直接ログ出力できる設定が可能になりました。
これまでは Kinesis DataFirehose を利用したログの出力のみが選択可能でした。
Kinesis DataFirehose はほぼリアルタイムにストリーミングデータをデータストアや分析ツールにロードすることができるものとなります。
WafCharm をご利用のお客様は、WafCharmの「レポート機能/通知機能」を利用するために設定された方も多いかと思います。
今回は Kinesis DataFirehose 以外の設定方法と Wafcharm での対応状況を解説していきます。
2.CloudWatch Logsへの設定
設定をしたい Web ACL を開き「Logging and metrics」を選択します。

Logging の項目の「Enable」を選択します。

CloudWatch Logs log group を選択し、「Create new」を選択します。

CloudWatch のロググループの作成画面が表示されますのでロググループ名を入力します。
ロググループ名には制約があり、「aws-waf-logs-」で始まる必要があります。

ロギングの編集画面に戻り、作成したロググループを選択して保存すれば設定は完了です。

CloudWatch Log Insights でクエリを実行して結果を表示することも可能です。

検索結果からログが取得できていることが確認できました。

3. S3 への設定
設定をしたい Web ACL を開き「Logging and metrics」を選択します。

Logging の項目の「Enable」を選択します。

S3 bucket を選択し、「Create new」を選択します。

バケットの作成画面が表示されますのでバケット名を入力します。
バケット名には制約があり、「aws-waf-logs-」で始まる必要があります。

ロギングの編集画面に戻り、作成したバケットを選択して保存すれば設定は完了です。

S3 バケットを見ると、5分おきに出力されていることが確認できました。

4.WafCharm での対応状況
WafCharm では「レポート機能/通知機能」を利用する場合に WAF ログの出力を Kinesis DataFirehose で実施いただいております。S3 に直接紐づける形式の場合、出力されるパスが我々の想定と異なるため、正常に利用できませんのでご利用いただかないようお願いいたします。
S3 に直接紐づける形式には対応予定ですので、対応が完了しましたらご案内いたします。
5.おわりに
Kinesis DataFirehose を使うほどリアルタイムでの確認は必要がなかった方には、嬉しい選択肢になるかと思います。S3 への出力も5分で行われることを考えると遅いというわけではないため、十分実用的かと思います。CloudWatch 経由でメールやチャットツールへの連携といった利用も考えられるため、より簡単かつ柔軟にログを活用できるようになったのではないかと思われます。