[AWS ]CloudTrailの証跡ログをAthenaを使ってサクッと解析する[このリソース誰が作ったの?]
コンニチハ、千葉です。
CloudTrailの証跡ログは、マネージメントコンソールから過去90日間のものを検索できますが、90日以前のものは別途S3に保存したファイルを見る必要があります。で、少し前にCloudTrailの画面から対象のログに対してAthenaのテーブルをGUIでさくっと作れるようになっていたので試しました。 また、開発環境のリーソースを消してもいいものか?を確認したかったので棚卸し時に投げたクエリも載せておきます。
Athenaテーブルの作成
Athenaのテーブル作成は、CloudTrailの画面かクリックで作成できるようになっているのでそちらから作成します。 イベント履歴を選択し「Amazon Athena で高度なクエリを実行します」をクリックします。
CloudTrailのログを保存しているS3を選択し、「テーブル作成」をクリックします。
Athenaに移動をクリックします。
Athenaのテーブルが作成されました!あとは、クエリを投げられますね。
サンプルクエリ
調査したときに使ったクエリを折角なのでおいておきます。JSONを分解する方法はこちらが参考になります。
下記のeventNameに調査したいAPIを入れることで見たい操作を確認できます。 またクエリ結果の、useridentityフィールドを確認することで、APIを実行したユーザーを特定できます。
インスタンスを作成したログ
1 2 3 4 | SELECT * FROM "default" . "cloudtrail_logs_cloudtrail_ap_northeast_1_327984237958" WHERE eventName= 'RunInstances' ; |
DynamoDBを作成したログ
1 2 3 4 | SELECT * FROM "default" . "cloudtrail_logs_cloudtrail_ap_northeast_1_327984237958" WHERE eventName= 'CreateTable' ; |
Configを作成
1 2 3 4 | SELECT * FROM "default" . "cloudtrail_logs_cloudtrail_ap_northeast_1_327984237958" WHERE eventName= 'StartConfigurationRecorder' ; |
CloudFormationスタックを作成人を確認
1 2 3 4 | SELECT * FROM "default" . "cloudtrail_logs_cloudtrail_ap_northeast_1_327984237958" WHERE eventName= 'CreateStack' ; |
最後に
S3に保管されたCloudTrailをAthenaで解析してみました。Athenaテーブルもサクッと作成することができ、クエリで柔軟に分析できました。何かあったときに必ず役立つので、CloudTrailを有効化をしつつ、Athenaでクエリを投げられるようにしておきましょう。
参考
https://aws.amazon.com/jp/about-aws/whats-new/2018/03/aws-cloudtrail-log-search-using-amazon-athena/