AWS WAFのアクセスログ記録でフィルタリング処理が可能になりました

AWS WAFでサポートされたアクセスログのフィルタリング機能を利用して、「Count」「Block」判定されたログのみの保存を試してみました。
2021.05.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきりょうです。

2021年5月のAWS WAFのアップデートで、アクセスログのフィルタリングがサポートされました。

AWS WAFルールで 「Count」、「Block」と判定されたログのみ記録する設定を試す機会がありましたので、紹介させていただきます。

WAFダッシュボード

Web ACLs > Logging and metrics

WAFのログ設定画面に「Filter Logs」が追加されました。

フィルタ設定

デフォルトは記録対象外(Drop)、「Count」、「Block」と判定されたログのみを記録する設定としました。

2021年4月よりAWS WAFでサポートされたラベルをフィルタ対象とする事も可能です。

結果

フィルタ設定後、WAFアクセスログを記録するFirehoseの容量(IncommingBytes)は、約85%の節減となりました。

変更前(17MB)

  • 5/8 17時0分

変更後(3MB)

  • 5/15 17時0分

まとめ

AWS WAFのアクセスログ、WAFのルール情報やリクエストヘッダなどが記録されるため1レコードあたりの容量が数KB〜と大きくなる場合があり、 アクセス数の多いサイトでは ログ記録、解析時に発生するコストが課題になる事がありました。

今回リリースされたフィルタ機能を利用する事で、コストを抑えたアクセスログの記録が可能になりました。 特に多機能なマネージドルールを利用して遮断を行う場合には、WAFルールの誤判定が発生した場合の調査対応を可能とするために「Block」ログを記録する事をおすすめします。