[AWS ]CloudTrailの証跡ログをAthenaを使ってサクッと解析する[このリソース誰が作ったの?]

CloudTrailのログをAthenaで解析します。
2018.05.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンニチハ、千葉です。

CloudTrailの証跡ログは、マネージメントコンソールから過去90日間のものを検索できますが、90日以前のものは別途S3に保存したファイルを見る必要があります。で、少し前にCloudTrailの画面から対象のログに対してAthenaのテーブルをGUIでさくっと作れるようになっていたので試しました。 また、開発環境のリーソースを消してもいいものか?を確認したかったので棚卸し時に投げたクエリも載せておきます。

Athenaテーブルの作成

Athenaのテーブル作成は、CloudTrailの画面かクリックで作成できるようになっているのでそちらから作成します。 イベント履歴を選択し「Amazon Athena で高度なクエリを実行します」をクリックします。

CloudTrailのログを保存しているS3を選択し、「テーブル作成」をクリックします。

Athenaに移動をクリックします。

Athenaのテーブルが作成されました!あとは、クエリを投げられますね。

サンプルクエリ

調査したときに使ったクエリを折角なのでおいておきます。JSONを分解する方法はこちらが参考になります。

CloudTrailログからAmazon Athenaを使ってログイン監査レポートを作成する

下記のeventNameに調査したいAPIを入れることで見たい操作を確認できます。 またクエリ結果の、useridentityフィールドを確認することで、APIを実行したユーザーを特定できます。

インスタンスを作成したログ

SELECT
 *
FROM "default"."cloudtrail_logs_cloudtrail_ap_northeast_1_327984237958"
WHERE eventName='RunInstances';

DynamoDBを作成したログ

 SELECT
 *
FROM "default"."cloudtrail_logs_cloudtrail_ap_northeast_1_327984237958"
WHERE eventName='CreateTable';

Configを作成

SELECT
 *
FROM "default"."cloudtrail_logs_cloudtrail_ap_northeast_1_327984237958"
WHERE eventName='StartConfigurationRecorder';

CloudFormationスタックを作成人を確認

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/