AWS WAFのログを調査する
403 Forbiddenが発生したので調査。
そのサービスではAWS WAFを使用おり、WAFによってブロックされていました。
今回はその調査方法を紹介します。
まずはWAFのログをS3に保存します。
こちらに関しては以下のサイトが参考になります。
https://dev.classmethod.jp/articles/awf-waf-comprehensive-logging/
次にAthenaを使用してログを分析できるようにします。
これに関しては以下のサイトが詳しいです。
https://dev.classmethod.jp/articles/query-aws-waf-full-log-by-athena/
上記参考の2サイトでもはや十分なのですが、参考までに私が使用したクエリを紹介します。
やりたいこと
→ 7/28にWAFによりブロックされた日本からのアクセスが知りたい
SELECT from_unixtime(timestamp/1000, 'Asia/Tokyo') AS JST,
httpsourcename,
httpsourceid,
terminatingruleid,
httprequest.clientip,
httprequest.country,
httprequest.uri,
httprequest.args,
httprequest.httpmethod
FROM waflogs
WHERE date(from_unixtime(timestamp/1000, 'Asia/Tokyo')) = date '2021-07-28'
AND action = 'BLOCK'
AND httpRequest.country = 'JP'
ORDER BY timestamp;
こんな感じで抽出できました。
日時を変換するのが少し面倒ですね。
こちらからは以上です。