CloudTrail ログ分析実践 - CloudTrail Lake と AI活用 ​

CloudTrailのログは膨大になりがちです。JSONファイルが大量にS3に保存されている状態から、必要な情報を瞬時に引き出すための「分析基盤」について解説します。

1. CloudTrail Lake (次世代の分析基盤) ​

これまでCloudTrailの分析といえば「S3に出力してAthenaでクエリ」が定石でしたが、現在は AWS CloudTrail Lake が推奨されています。

CloudTrail Lake とは? ​

CloudTrail専用のマネージドデータレイクです。S3バケットやAthenaのテーブル設計を自分で行う必要がなく、数クリックで収集から分析(SQLクエリ)まで完結します。

AI による分析支援 (New!) ​

CloudTrail Lakeには、生成AIを活用した強力な機能が搭載されています。

自然言語クエリ生成 (Query Generation) ​

SQLが書けなくても、自然言語で質問するだけでクエリを生成してくれます。

質問例: "Show me all console login failures in the last 24 hours." (過去24時間のコンソールログイン失敗を見せて)

これにより、複雑な useridentity 構造体のパースなどをAIに任せることができます。

クエリ結果のAI要約 (Summarization) ​

大量のログが出力された場合でも、AIがその傾向や特筆すべきイベントを要約してくれます。インシデント初動対応の時間を大幅に短縮できます。

Event Enrichment (イベントエンリッチメント) ​

ログに「ビジネスコンテキスト」を付与する機能です。 通常、ログには i-12345678 のようなリソースIDしか残りませんが、この機能を使うと、そのリソースに付与されている タグ情報 などをログ自体に追加して保存できます。

  • メリット: 「Project=Alpha のリソースに対する操作のみ抽出」といった分析が容易になります。

2. Amazon Athena による分析 (従来方式) ​

既存のS3バケットにあるログを分析する場合や、コストを極限までコントロールしたい場合は、Amazon Athenaを使用します。

コスト最適化のポイント ​

CloudTrailのログはJSON形式ですが、Athenaでそのまま検索するとスキャン料金が高くなりがちです。 パフォーマンスとコストを最適化するには、パーティショニング が必須です。

sql
-- 推奨されるパーティション構成
PARTITIONED BY (region string, year string, month string, day string)

よく使うクエリ集 ​

コンソールログイン履歴 ​

sql
SELECT useridentity.username, eventtime, sourceipaddress
FROM cloudtrail_logs
WHERE eventname = 'ConsoleLogin'
  AND region = 'us-east-1'
ORDER BY eventtime DESC
LIMIT 100;

権限変更 (IAMポリシー変更) の追跡 ​

sql
SELECT eventtime, useridentity.username, eventname, requestparameters
FROM cloudtrail_logs
WHERE eventname IN ('AttachUserPolicy', 'DetachUserPolicy', 'PutUserPolicy')
ORDER BY eventtime DESC;

失敗したAPI呼び出し (AccessDenied) ​

sql
SELECT eventtime, useridentity.username, eventname, errorcode, errormessage
FROM cloudtrail_logs
WHERE errorcode IN ('AccessDenied', 'UnauthorizedOperation')
ORDER BY count DESC;

3. 分析基盤の使い分け ​

特徴CloudTrail LakeS3 + Athena
セットアップ即座に利用可能 (Easy)テーブル定義などが必要 (Hard)
検索速度高速に最適化されているデータ量とパーティション設計に依存
AI機能あり (Query Generation, Summarization)なし
データ保持最長7年 (設定による)無期限 (S3ライフサイクルで制御)
コストデータ取り込み量 + クエリ量S3ストレージ費 + Athenaスキャン費

推奨: 新規構築や、運用負荷を下げたい場合は CloudTrail Lake がおすすめです。既存のS3ログ資産が大量にある場合はAthenaを併用します。

次のステップ ​

分析ができるようになったら、次は「自動検知」と「セキュリティ対応」に進みましょう。