ユーザ用ツール

サイト用ツール


aws:waf:firehose2s3

AWS WAFのログをKinesis Data FirehoseでS3に保存



2021年11月15日 PTD に AWS WAF のドキュメントにアップデートがあり、 CloudWatch Logs と S3 へ直接ログ出力できる設定が可能になりました。

AWS WAFのログをS3やCloudWatch logsに保存



Kinesis Firehose(配信ストリーム)設定

注意事項

  • リージョンに注意
    • ALBの場合はWAF (Web ACL)と同じRegion
    • CloudFrontで利用するときはRegionを「N. Virginia」(米国東部(バージニア北部))にします。
  • Kinesis Firehoseのストリーム名は「aws-waf-logs-」で開始する必要があります。


設定

「Create delivery streams」をクリックします。

「Delivery stream name」を入力します。好きな名前で構いませんが、先頭に「aws-waf-logs-」を付けてください。

「Source」は「Direct PUT or other sources」を選択します。

「Transform source records with AWS Lambda」ですが今回はAWS WAFが出力するログをそのままの形でS3に出力させたいので、「Disabled」を選択します。

「Convert record format」もそのままの形でS3に出力させたいので「Disabled」を選択し、[ Next ]をクリックします。

「Destination」は「Amazon S3」を選択します。

ログを出力したいS3 bucket、必要であればPrefixを設定します。Prefixの後に ”/” を入れてください。「Next」をクリックします。

データをバッファするサイズ、時間を決めます。時間は最短で確認ができる60秒をオススメします。

続いてログの圧縮方法ですが、S3の容量を少なくする為「GZIP」にします。暗号化はここではあまり考えず、「Disabled」を選択します。

エラーログはデフォルトで「Enabled」になっているのでそのままにします。


WAFの設定

[Web ACLs] > [Logging] で、 [Enable Logging] をクリックします。

「Amazon Kinesis Data Firehose」で、先ほど設定した名前を選択します。

Redacted filedsはチェックしません。
チェックするとチェックした内容を省略します。(HTTP method, Query string, RUI path, Header,)


S3ログの確認


Monitoringの確認

[Kinesis Firehose] > [Data Firehose] > [Monitoring] でFirehoseのグラフが見えます。

Firehoseの配信ストリームは、1000レコード/s、1000トランザクション/s、1MiB/sの上限が設定されているので、
上限に達してしまう場合はAWSサポートへの上限緩和申請をします。


参考

aws/waf/firehose2s3.txt · 最終更新: 2022/08/09 00:33 by kurihara

ページ用ツール