0Pricing
AWS Security Academy · レッスン

CloudTrailイベントレコードの読み方

各呼び出しを誰が実行したかを示すJSONフィールドを読み解きます。

「CloudTrailイベントレコードの読み方」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。

イベントの構造

CloudTrailイベントは、一定のフィールドで構成されたJSONレコードです。これを読み取れるようになると、調査中に何が起きたのかを正確に再構成できます。

各レコードは1回のAPI呼び出しを表します。誰が、何を、いつ、どこから実行し、結果がどうなったのかを記録します。

userIdentityフィールド

セキュリティ上最も重要なフィールドはuserIdentityです。呼び出しを実行したプリンシパルについて、タイプ(IAMUser、AssumedRole、Root、AWSService)、アカウント、ARN(Amazon Resource Name)を記録します。

これにより、アクションを特定の人物、ロール、サービスに確実に結び付けられます。

"userIdentity": {
  "type": "AssumedRole",
  "arn": "arn:aws:sts::1111:assumed-role/Admin/alice"
}

イベント名と送信元

eventNameは呼び出されたAPI操作です。たとえばDeleteBucketやRunInstancesがあります。一方、eventSourceは、その操作が属するサービスです。たとえばs3.amazonaws.comがあります。

この2つを組み合わせることで、どの操作が実行されたのかを正確に把握できます。これは、イベントを理解するうえで中心となる情報です。

時刻、リージョン、IP

eventTimeのタイムスタンプ(UTC)、awsRegion、sourceIPAddressによって、呼び出しがいつ、どこで行われたのかを特定できます。

予期しないリージョンや見慣れないIPからの呼び出しは、典型的な危険信号です。user agentフィールドからは、コンソール、CLI、SDKのどれで呼び出されたかも確認できます。

リクエストとレスポンス

requestParametersには、どのバケット、どのインスタンス、どのポリシーを対象にしたかなど、呼び出しへの入力が記録されます。responseElementsには、新しく作成されたリソースIDなど、AWSが返した内容が記録されます。

これらの情報により、何かが起きたという事実だけでなく、何が変更され、その結果どうなったのかを正確に確認できます。

エラーから読み取れること

呼び出しが拒否された場合、レコードにはerrorCodeとerrorMessageが含まれます。たとえばAccessDeniedです。

1つのプリンシパルから拒否された呼び出しが急増している場合、攻撃者が盗んだ認証情報で何ができるかを探っている可能性があります。失敗したイベントも、成功したイベントと同じように調査上の価値があります。

ロールチェーン

Assumed Roleを経由してアクセスされた場合は、ロールのチェーンをたどります。userIdentityにはassumed-roleセッションが表示されることがあり、sessionContextから、そのロールを引き受けた元のプリンシパルを確認できます。

複数のロールを経由している場合でも、このチェーンを追跡すれば、最終的に誰がアクションを実行したのかを明らかにできます。

読み取り専用フラグと管理フラグ

readOnly や managementEvent のようなフィールドを見ると、その呼び出しの性質がすぐにわかります。つまり、何らかの変更を行ったかどうか、またコントロールプレーンの操作かどうかを判断できます。

大量のレコードを確認するとき、これらのフィールドを使えば、環境を変更したイベントだけにすばやく絞り込めます。

大規模なレコードのクエリ

レコードを1件手作業で読むのは問題ありませんが、数百万件を精査するのは現実的ではありません。ログを CloudWatch Logs に送るか、S3 アーカイブを Athena から SQL でクエリしてください。

userIdentity、eventName、sourceIPAddress、errorCode でフィルタリングすれば、調査に関係する呼び出しを正確に特定できます。

ユーザーエージェントを確認する

userAgent フィールドからは、呼び出し方法がわかります。AWS コンソール、特定の CLI バージョン、SDK、または自動化ツールのいずれかです。

予期しないユーザーエージェントは、攻撃者が使うツールの手がかりになることがあります。通常はコンソールから行われる呼び出しが、突然、見慣れない IP アドレスから生の SDK 経由で届いた場合は、詳しく確認する価値のある微妙な異常です。

まとめて考える

調査では、フィールドを組み合わせます。誰が (userIdentity)、何を (eventName)、どのリソースに対して (requestParameters)、いつ (eventTime)、どこから (sourceIPAddress)、どのような結果で行ったか (responseElements または errorCode) を確認します。

1つのレコードからこの全体像を把握することが、AWS における API アクティビティのフォレンジックの本質です。

クイックチェック

帰属を示すフィールドを見つけてください。

まとめ

CloudTrail イベントは JSON レコードであり、主要なフィールドから調査に必要な情報を把握できます。userIdentity(ARN と sessionContext 経由のロールチェーンを含む、誰が)、eventName/eventSource(何を)、eventTime/awsRegion/sourceIPAddress(いつ、どこから)、requestParameters/responseElements または errorCode(変更内容と結果)です。失敗した AccessDenied イベントは重要なシグナルとなり、Athena を使えばレコードを大規模にクエリできます。

よくある質問

「CloudTrailイベントレコードの読み方」レッスンは無料ですか?

はい。「CloudTrailイベントレコードの読み方」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。

「CloudTrailイベントレコードの読み方」で何を学びますか?

各呼び出しを誰が実行したかを示すJSONフィールドを読み解きます。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AWS Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「CloudTrailイベントレコードの読み方」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAWS Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. CloudTrailが記録する内容
  2. 管理イベント、データイベント、インサイトイベント
  3. アカウントをまたぐ組織トレイル
  4. CloudTrailイベントレコードの読み方
← AWS Security Academyに戻る