目次

  1. 1.はじめに
  2. 2.変更点
  3. 3.既存の Lambda を利用して移行する場合の変更点
  4. 4.注意点
  5. 5.おわりに

1. はじめに

2022年5月11日 JST に WafCharm AWS版でレポート機能/通知機能が「直接 S3 に WAF ログを出力する設定」に対応しました。

これまでは、Kinesis Data Firehose を経由して S3 に WAF ログを出力する設定にのみ対応しておりましたが、直接 S3 に出力した WAF ログでもこれまでと同様のレポート機能/通知機能の提供が可能になりました。

既にレポート機能/通知機能をご利用の場合に「直接 S3 に WAF ログを出力する設定」に変更した場合の差分や不要となる設定について解説します。

2. 変更点

2-1 アーキテクチャ

まずは Kinesis Data Firehose 経由のアーキテクチャと S3 経由のアーキテクチャをご確認ください。

変更点は Kinesis Data Firehose の設定が不要になったことです。

2-2 Lambda

Lambda で使用するスクリプトに変更を行いました。
これまでは Kinesis Data Firehose 経由で出力した場合のパス構成にのみ対応していましたが、以下の3パターンに対応しました。

・Kinesis Data Firehose 経由で出力した場合のパス構成
・Kinesis Data Firehose 経由でタイムスタンプ情報を Hive 形式に設定した場合のパス構成
・S3 経由した場合のパス構成

※ すでに稼働中の Kinesis Data Firehose 経由での利用を継続する場合は、index.js の差し替えは必要ございません。また、差し替えた場合でも問題なく稼働します。
※ Hive 形式は以下に対応しています。

/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/

3. 既存の Lambda を利用して移行する場合の変更点

既存の Lambda を変更する場合の不要となるものと変更箇所は以下となります。

不要となるもの
・Kinesis Data Firehose
・Kinesis Data Firehose 経由で出力していた S3 (ログ保存する場合は削除不要)

変更が必要なもの
・Web ACL の Logging and metrics 設定

・Lambda で利用する WAFLog 出力先 (顧客側 S3) の read 権限 policy のResources 内容を新しい S3 の情報に変更する

・Lambda のトリガーとして設定した S3 を新しい S3 の情報に変更する

・Lambda で設定する関数コードを差し替える
※古いソースコードがブラウザのキャッシュとして残っている可能性がございますので、ブラウザのキャッシュをクリアした上で取得してください。

IAM の権限を編集した場合、動作中の Lambda に変更点が反映されない可能性があるため、 index.js の最終行に空白行の追加等を行い、再度デプロイを実施してください。

既存の Lambda を利用しない場合は以下の手順を利用して新たに S3 及び Lambda を設定してください。その後不要となった Kinesis Data Firehose や Lambda を削除してください。

https://docs.wafcharm.com/manual/new_aws_waf/new_aws_waf_reporting_and_notification_JA_S3_version.pdf

4. 注意点

WafCharm のメール通知は WAF ログファイルが作成されたことをトリガーに稼働します。
これまでの Kinesis Data Firehose の場合、通知間隔は Kinesis Firehose 設定 の Buffer intervals、Buffer size で設定した値に応じて変化しました。
直接 S3 に WAF ログを出力する設定の場合、Web ACL から S3 への直接出力間隔である 5分となります。

1 メール (ログファイル) につき最大 10件まで検知内容が記載される仕様に変更はないため、Kinesis Data Firehose 設定時より最大 10件を超える可能性が高くなります。
なるべく検知状況をメールで受け取りたい場合は Kinesis Data Firehose での設定をご利用ください。

既存環境を移行する場合、変更までの間のログが WafCharm 側へ一部送られないことが予想されます。少しでも送られないログを減らすためには Lambda の設定を先に行い、Web ACL の Logging and metrics設定を最後に行ってください。

5. おわりに

既に利用されている場合は変更する手間などを考えると無理に変更する必要はないかと思います。Kinesis Data Firehose の利用料の削減をしたいと考えている場合は検討してみてはいかがでしょうか。