AWS CloudTrailログのエクスポート方法

AWS CloudTrailログのエクスポート方法

SOC Prime Team
SOC Prime Team linkedin icon フォローする

管理イベントの過去90日分には、CloudTrailコンソール (イベント履歴 → イベントをダウンロード → JSON) または aws cloudtrail lookup-events を使用します。より古いデータや、S3オブジェクトの読み取りのようなデータイベントの場合は、S3にあるトレイルのログファイルを読みます。それらは s3:///AWSLogs//CloudTrail//YYYY/MM/DD/ にあります。

CloudTrail は AWS コントロールプレーンの監査ログです: すべてのコンソールログイン、すべての API コール、すべてのロールアサンプションです。クラウドインシデントでは、誰もが最初に求めるものです。Prime Core には 262 の CloudTrail 用検出ルールがあり、177 の MITRE ATT&CK テクニックにマッピングされています。その中には: クラウドアカウントの悪用 (T1078.004)、クラウドロギングをオフにする攻撃者 (T1562.008)、クラウドストレージからのデータ窃盗 (T1530) があります。

始める前に

イベント履歴とトレイルは異なるものです。 イベント履歴は常時有効で無料です。地域ごとに 90 日間の管理イベントを保持します。トレイルは設定するものです: S3 に書き込み、ログを好きなだけ保持でき、データイベントを含めることができます。あなたが持っているものを確認してください:

aws cloudtrail describe-trails

aws cloudtrail get-trail-status --name

実行されるべきトレイルで IsLogging: false である場合、それ自体が発見です。

リージョンが重要です。 イベント履歴はリージョンごとで、IAM のようなグローバルサービスのイベントは通常 us-east-1 にあります。eu-west-1 で CreateUser コールを探している場合、見つけることはできません。

権限。 イベント履歴には cloudtrail:LookupEvents。トレイルファイルには、バケットで s3:ListBucket と s3:GetObject、トレイルが KMS キーで暗号化されている場合は kms:Decrypt を使用します。

オプション 1: コンソールダウンロード

CloudTrail を開き、 イベント履歴に移動し、時間範囲とフィルタ (イベント名、ユーザ、リソース) を設定したら、 イベントをダウンロード → JSONを選択します。ダウンロードはフィルタを考慮するので、まずそれらを確認してください。それは現在のリージョンのみをカバーします。

オプション 2: CLIからのlookup-events

aws cloudtrail lookup-events --region us-east-1 

  --start-time 2026-10-19T00:00:00Z --end-time 2026-10-20T00:00:00Z

  --output json > ct_use1_1019.json

知っておくべきことが2つあります。まず、各結果は実際のイベントをJSON 文字列 として CloudTrailEvent にラップしています。1行1イベントになるようアンラップします:

jq -c '.Events[].CloudTrailEvent | fromjson' ct_use1_1019.json > ct_use1_1019.jsonl

次に、lookup-events はアカウントおよびリージョンごとにレートが制限されており、1 コールにつき –lookup-attributes フィルタを 1 つのみ受け入れます。時間ウィンドウが広いと時間がかかるので、可能な限り絞りましょう。すべてのリージョンをカバーするには、aws ec2 describe-regions –query ‘Regions[].RegionName’ –output text でループします。

オプション 3: S3からのトレイルファイル

これは90日以上の履歴およびデータイベント用のルートです:

aws s3 cp s3://my-trail-bucket/AWSLogs/123456789012/CloudTrail/eu-west-1/2026/10/19/ ./ct/ --recursive

gunzip ./ct/*.json.gz

jq -c '.Records[]' ./ct/*.json > ct_euw1_1019.jsonl

各ファイルは Records 配列を持っており、jq ラインはそれらすべてを1行1イベントに平坦化します。組織のトレイルはパスに組織 ID を追加します: AWSLogs///CloudTrail/…。CloudTrail Lake を使用している場合、イベントに対して SQL を実行し、代わりに結果を保存できます。

探すべきもの

イベント重要な理由
ConsoleLoginadditionalEventData.MFAUsed、不明な失敗、ソースIPを確認してください
CreateUser、CreateAccessKey、AttachUserPolicy新しいアイデンティティとキー: クラシックな永続性と権限昇格
StopLogging、DeleteTrail、PutEventSelectorsCloudTrail が見ている範囲を減らす人
奇妙なソースからの AssumeRoleロールおよびアカウント間の横移動
エラーコード: AccessDenied のバースト盗まれたクレデンシャルによる偵察
GetSecretValue、GetObject のバーストデータアクセス; GetObject は S3 のデータイベントが有効な場合にのみ表示されます

LogTotal にアップロード、サニタイズしてレビュー

  1. アップロード。 開いてください logtotal.com .jsonl (または .json ファイル) をドロップします。
  2. サニタイズ。 [what gets masked: account IDs, ARNs, IPs, access key IDs, usernames]. Look it over before you continue.
  3. レビュー。 

問題が発生したとき

症状考えられる原因Fix
lookup-events が何も返さない間違ったリージョン; IAM イベントは通常 us-east-1 に存在しますus-east-1 にクエリを投げるか、すべてのリージョンをループする
90日以上古いものがないイベント履歴保持S3 のトレイルファイルを使用する
GetObject イベントがないS3 データイベントがトレイルで有効になっていません期待されたもの; 将来のためにそれらを有効にしてください
トレイルファイルを読む AccessDeniedkms:Decrypt、またはバケットポリシーが不足IAM またはバケットポリシーを修正する
ThrottlingExceptionlookup-events のレート制限小さなウィンドウ; CLI にリトライさせる

FAQ

イベント履歴はデータイベントを含みますか?

いいえ。管理イベントのみです。データイベントは、トレイルまたはイベントデータストアがそれらを記録するように設定されている場合にのみ存在します。

イベントはどのくらい早く表示されますか?

通常、API コールから数分以内です。S3 のトレイルファイルはバッチで到着するため、非常に最近のイベントはまだファイルにない可能性があります。

SOC PrimeのDetection as Codeプラットフォームに参加し ビジネスに最も関連性のある脅威に対する可視性を向上させましょう。開始して即座に価値をもたらすためには、今すぐSOC Primeの専門家とのミーティングを予約してください。