2018/08/30のアップデートでログが完全に取れるようになりました!
こちらは使わずFirehoseからS3へ上げましょう!
こちらも作成してみて導入法、使い方を投稿する予定です。
というわけで、ここからは過去の手法の記事
↓↓↓↓↓
巨人の肩の上に立つために梯子をかけるだけの記事
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時間間隔で取って、エラーがとんだ次の日とかにチェックすることになるのでそのへんは別にいいや。
かなり便利に使えそうです。
ありがたや。