WAFのログ調査をするべく、Athenaを使用したのですが
中々苦戦したので、備忘録です。
※もっと改善できるとは思うのですが、力及ばず断念してしまったので、
何かあればコメントいただけると嬉しいです※
●調査ポイント
期間範囲指定あり
対象IPアドレス&ユーザーエージェントで接続元を調査したい
Blockログのみ抽出できれば良い
●参考にしたブログ \ありがとうございました/
https://qiita.com/hkato/items/610cd54bdea395da7cd1
なんとなくログ抽出はできていたのですが、
ユーザーエージェントで絞り込めていないことに気がついてからというもの、エラーとの長い戦いでした。
上記を参考に、最終的に実行したログはこちら。
SELECT from_unixtime(timestamp/1000, 'Asia/Tokyo') AS JST,
httpsourcename,
terminatingruleid,
rulegrouplist,
action,
httprequest.clientip,
httprequest.country,
httprequest.httpmethod,
httprequest.headers,
httprequest.uri,
requestheadersinserted,
httprequest.args
FROM "★DB名★"."★テーブル名★",
UNNEST(httprequest.headers) AS t(f)
WHERE action = 'BLOCK'
AND date(from_unixtime(timestamp/1000, 'Asia/Tokyo')) = date '2022-04-01'
;
●改善したい点
①dateで期間範囲指定したい(betweenで範囲指定出来るか?!と思ってトライするもエラー続きで断念)
②UNNEST部分(出力したhttprequest.headers部分がとても長くなってしまい、調査時やや煩わしかったため。ここを工夫できれば改善可能?)
Athenaとの戦いはまだまだ続く…