AWS WAFのログが3時間なので、どうにかしてみた。

2018/08/30のアップデートでログが完全に取れるようになりました!

こちらは使わずFirehoseからS3へ上げましょう!

AWS WAF の包括的なログ記録機能が新たに利用可能に

こちらも作成してみて導入法、使い方を投稿する予定です。

というわけで、ここからは過去の手法の記事

↓↓↓↓↓

巨人の肩の上に立つために梯子をかけるだけの記事

wafの導入はこっち

aws wafを導入したはいいが、動作の確認をしようとログを漁ると皆が思うはず。

ログが3時間しかもたないのかよ

まぁ、書き出して好きなように使えってことなんですかね。それともsampleだからそんな信用するなと?

1から作るのはめんどうだなーとりあえずみたいだけなんだけどなーと思ってたら丁度いい記事が。

AWS WAFのログを取得するCloudFormationテンプレートv2作ってみた

こちら、lambdaでS3へログを飛ばすもの。これでとりあえずはログが保管される。

さらにさらに、

AWS WAFログ解析に利用するAthenaクエリパターンまとめてみた

めんどくさがりな自分のためにあるかのような記事。この2つを使えば、転送からログ確認までサクッとできそうなのでレッツトライ。

CloudFormationテンプレートから入れてみる。

もうまんまですね。awsにログインした状態で記事にある、「WAFログ取得テンプレートv2を起動」をクリック、以下を埋めます。

INTERVAL:60

OutputBucket:hogehoge

WAFType: CloudFront

WEBACLID:hogehoge

記事にあるように、OutputBucketとWEBACLIDがわからなかったら、参照してみて下さい。

でもって実行しますと、lambdaに「get_waf_sample_logs」ができていると思います。

S3にできるかなーとワクワク待っていましたが、即時では出来ない模様なので、一旦CloudWatchから間隔を1分へ変更

すぐにファイルが出来上がりました。

すごく…便利。ありがてぇ。

Athenaからログを確認する

ファイルができたので、今度はこれを見るためにAthenaへ。まずは見れるようにするところから。

こちらも記事にあるように

こんな感じで実行してあげると、左側に項目が追加されてます。

あとは

SELECT * FROM waflogs;

とかで実行すれば、実行結果でログが確認出来ます。

何がすごいって、lambdaもほとんど使ったことない、Athenaに至っては触った経験0の人間でも導入が簡単ってことだよね。

5分位でサクサクっとログ確認出来るようになりました。

ただ、多分ログの重複は考えられてないっぽい・・・?CloudWatchの起動時間を1分で3分間くらいとってみると同じログになっちゃってたので、もしかしたら自分の変更のせいかもしれません。

まぁ、1時間間隔で取って、エラーがとんだ次の日とかにチェックすることになるのでそのへんは別にいいや。

かなり便利に使えそうです。

ありがたや。