【AWSサービス 基礎編】AWS CloudTrail で API 操作履歴を確認する

目次

概要

AWS アカウント上で「誰が」「いつ」「どのリソースに対して」「何をしたか」を把握することは、セキュリティ管理や運用監査において欠かせません。意図しないリソースの変更が発生した場合や、セキュリティインシデントの調査を行う場合に、API 操作の記録がなければ原因の特定は困難です。

AWS CloudTrail は、AWS アカウント内で行われた API コールを自動的に記録するサービスです。マネジメントコンソールの操作、AWS CLI や SDK からの呼び出し、AWS サービスによる内部的な API コールなど、ほぼすべての操作がイベントとして記録されます。

本記事では、CloudTrail の基本概念を理解し、イベント履歴の閲覧と証跡(Trail)の作成を通じて API 操作の記録と確認方法を体験します。

CloudTrail の全体像(API 操作 → CloudTrail → イベント記録 → S3 / CloudWatch Logs への配信)を示す図解を挿入
CloudTrail の全体像(API 操作 → CloudTrail → イベント記録 → S3 / CloudWatch Logs への配信)を示す図解を挿入

この記事のメリット

  • CloudTrail のイベント履歴から「誰が・いつ・何をしたか」を確認する方法を習得できる
  • 管理イベントとデータイベントの違いを理解できる
  • 証跡(Trail)を作成し、イベントログを S3 バケットに継続的に保存する設定を体験できる
  • 特定のユーザーやリソースに関する操作を絞り込んで調査する方法を把握できる
  • セキュリティ監査やインシデント調査の基礎的な手法を理解できる

執筆者とキャラクター紹介

執筆者:土肥(とひ)

株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。

土肥

クラウドおさる

クラウドおさる

はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。

クラウドおさる

基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。

クラウドおさる

猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。

技術解説

AWS CloudTrail とは

クラウドおさる

とひさん、AWS CloudTrail ってどんなサービスですか?

土肥

CloudTrail は、AWS アカウント内の API アクティビティを記録・監視するサービスだよ。「誰が」「いつ」「何をしたか」を全部記録してくれるんだ。

クラウドおさる

自分で設定しなくても使えるんですか?

土肥

そう、AWS アカウントを作成すると CloudTrail は自動的に有効になるよ。直近 90 日間のマネジメントイベント(管理イベント)をイベント履歴として確認できるんだ。

クラウドおさる

なるほど、勝手に記録してくれてるんですね。どんな場面で使うんですか?

土肥

主なユースケースはこんな感じだよ。

  • セキュリティインシデントの調査(不正アクセスの特定)
  • コンプライアンス監査(操作記録の保全と提出)
  • 運用トラブルシューティング(リソース変更の原因特定)
  • 変更管理(リソースの設定変更履歴の追跡)
クラウドおさる

セキュリティだけじゃなくて、運用やコンプライアンスにも使えるんですね!

イベントの種類

クラウドおさる

CloudTrail で記録されるイベントにはどんな種類があるんですか?

土肥

大きく 3 種類に分かれているよ。表にまとめるとこうなるんだ。

イベント種類説明例
管理イベントAWS リソースに対する管理操作EC2 インスタンスの起動、IAM ロールの作成、S3 バケットの作成
データイベントリソース上またはリソース内で実行されるデータ操作S3 オブジェクトの GetObject/PutObject、Lambda 関数の Invoke
Insights イベント異常な API アクティビティを検出した際に生成通常よりも大幅に多い API コールの検出
クラウドおさる

3 種類もあるんですね。全部デフォルトで記録されるんですか?

土肥

いや、デフォルトで記録されるのは管理イベントだけだよ。データイベントと Insights イベントは、証跡で明示的に有効化する必要があるんだ。

クラウドおさる

有効化し忘れると記録されないんですね。注意が必要ですね。

土肥

そうだね。特にデータイベントは S3 オブジェクトの読み書きとか大量に発生するものだから、コストも考えて必要なときに有効化するのがポイントだよ。

イベント履歴

クラウドおさる

さっき「90 日間のイベント履歴」って話がありましたけど、もう少し詳しく教えてもらえますか?

土肥

イベント履歴は、CloudTrail が自動的に記録する直近 90 日間の管理イベントのログだよ。証跡を作成しなくても利用可能で、CloudTrail コンソールから閲覧できるんだ。

クラウドおさる

どんな情報が確認できるんですか?

土肥

イベント履歴では以下の情報が確認できるよ。

  • イベント名: 実行された API アクション(例: RunInstances、CreateBucket)
  • イベント時間: 操作が実行された日時
  • ユーザー名: 操作を実行した IAM ユーザーまたはロール
  • イベントソース: API コールの送信先サービス(例: ec2.amazonaws.com)
  • リソースタイプ・名前: 操作対象のリソース
クラウドおさる

「誰が・いつ・何をしたか」がひと目でわかるんですね!

土肥

そのとおり。フィルタ機能もあるから、特定のユーザーや特定の操作に絞り込んで調べることもできるよ。

イベント履歴の構成要素を示す図解
イベント履歴の構成要素を示す図解

証跡(Trail)

クラウドおさる

90 日より前のイベントを確認したい場合はどうするんですか?

土肥

そのために「証跡(Trail)」を作成するんだ。証跡は、CloudTrail イベントを S3 バケットに継続的に配信するための設定だよ。

クラウドおさる

証跡を作ると何ができるようになるんですか?

土肥

こんなことが可能になるよ。

  • 90 日を超えるイベントの長期保存
  • データイベントや Insights イベントの記録
  • CloudWatch Logs への配信(リアルタイム監視やアラーム設定)
  • S3 に保存したログの Athena によるクエリ分析
クラウドおさる

証跡って特定のリージョンだけですか?それとも全リージョン対象にできますか?

土肥

どちらもできるよ。単一リージョンまたは全リージョンを対象に作成できるんだ。ただし、セキュリティのベストプラクティスとしては、全リージョンを対象とした証跡を作成することが推奨されているよ。

クラウドおさる

使ってないリージョンでも不正操作される可能性があるから、全リージョンにしておくべきなんですね。

土肥

そういうこと。普段使わないリージョンで勝手にリソースを作られても、証跡があれば検知できるからね。

イベントの構造

クラウドおさる

記録されるイベントって、具体的にはどんなデータ構造になっているんですか?

土肥

CloudTrail イベントは JSON 形式で記録されるよ。主要なフィールドをまとめるとこうなるんだ。

フィールド説明
eventTimeイベントの発生時刻(UTC)
eventSourceAPI コールの送信先サービス
eventName実行された API アクション
userIdentity操作を実行したプリンシパルの情報
sourceIPAddressリクエスト元の IP アドレス
requestParametersAPI リクエストのパラメータ
responseElementsAPI レスポンスの内容
errorCode / errorMessageエラー発生時のコードとメッセージ
クラウドおさる

sourceIPAddress でどこからアクセスしたかもわかるんですね。インシデント調査に便利そうです!

土肥

そうだね。特に userIdentity と sourceIPAddress の組み合わせで、「誰がどこから操作したか」を特定できるのが、セキュリティ調査では重要なポイントだよ。

クラウドおさる

エラーが起きたときも errorCode で記録されるなら、トラブルシューティングにも使えますね!

新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方を募集しています。プログラミング未経験から入社して活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

実践

前提条件

  • リージョン: ap-northeast-1(東京)
  • IAM ユーザーまたはロールに CloudTrail、S3 の操作権限があること

作成するリソース一覧

リソース種別リソース名用途
CloudTrail 証跡basic-management-trail管理イベントの記録用
S3 バケットCloudTrail が自動作成証跡ログの保存先

ステップ1: イベント履歴の確認

まず、証跡を作成せずに利用できるイベント履歴を確認します。

  • AWS マネジメントコンソールにログインし、リージョンが ap-northeast-1(東京)であることを確認します
  • 上部の検索バーに CloudTrail と入力し、表示された「CloudTrail」を選択します
  • 左側ナビゲーションの「イベント履歴」を選択します
  • 直近の API 操作がイベントとして一覧表示されます
CloudTrail イベント履歴画面(直近のイベントが一覧表示されている状態)
CloudTrail イベント履歴画面(直近のイベントが一覧表示されている状態)

ステップ2: イベントの絞り込みと詳細確認

イベント履歴のフィルタ機能を使って、特定の操作を検索します。

  • イベント履歴画面の検索フィルタで、ドロップダウンから「イベント名」を選択します
  • 検索ボックスに ConsoleLogin と入力し、Enter キーを押します
  • マネジメントコンソールへのサインインイベントが表示されます
イベント履歴画面(イベント名「ConsoleLogin」でフィルタした結果)
イベント履歴画面(イベント名「ConsoleLogin」でフィルタした結果)
  • 表示されたイベントの行をクリックすると、イベントの詳細が表示されます
  • 詳細画面では、以下の情報が確認できます
  • イベント時間: サインインした日時
  • ユーザー名: サインインした IAM ユーザー
  • ソース IP アドレス: サインイン元の IP アドレス
  • イベントレコード: JSON 形式の完全なイベントデータ
イベント詳細画面(ConsoleLogin イベントの JSON レコードが表示されている状態)
イベント詳細画面(ConsoleLogin イベントの JSON レコードが表示されている状態)
  • フィルタをリセットし、今度はドロップダウンから「リソースタイプ」を選択します
  • AWS::S3::Bucket と入力して検索すると、S3 バケットに関する管理操作(バケットの作成、削除、設定変更など)に絞り込めます

ステップ3: 証跡の作成

90 日を超えてイベントを保存するために、証跡を作成します。

  • 左側ナビゲーションの「証跡」を選択します
  • 「証跡の作成」をクリックします
  • 以下の項目を入力します
  • 証跡名: basic-management-trail
  • ストレージの場所: 「新しい S3 バケットを作成」を選択
  • 証跡ログのバケット名: デフォルトのまま(aws-cloudtrail-logs-<アカウントID>-<ランダム文字列> が自動入力されます)
  • ログファイルの SSE-KMS 暗号化: チェックを外す(今回は SSE-S3 暗号化で進めます)
証跡作成画面の一般的な詳細セクション(証跡名と S3 バケットの設定)
証跡作成画面の一般的な詳細セクション(証跡名と S3 バケットの設定)
  • 「次へ」をクリックします
  • ログイベントの選択画面で以下を設定します
  • イベントタイプ: 「管理イベント」にチェック(デフォルトで有効)
  • API アクティビティ: 「読み取り」「書き込み」の両方にチェック(デフォルト)
  • データイベントとInsights イベントはチェックを外したままにします
ログイベントの選択画面(管理イベントの読み取り・書き込みが有効な状態)
ログイベントの選択画面(管理イベントの読み取り・書き込みが有効な状態)
  • 「次へ」をクリックします
  • 確認画面の内容を確認し、「証跡の作成」をクリックします
  • 証跡一覧に basic-management-trail が表示され、ステータスがログ記録中になっていることを確認します
証跡一覧画面(basic-management-trail が「ログ記録」ステータスで表示されている状態)
証跡一覧画面(basic-management-trail が「ログ記録」ステータスで表示されている状態)

ステップ4: 証跡で記録されたイベントの確認

証跡を作成した後、いくつかの操作を行い、それが S3 に記録されることを確認します。

  • 試しに S3 コンソールで新しいバケットを作成します。上部の検索バーに S3 と入力し、「S3」を選択します
  • 「バケットを作成」をクリックし、バケット名に cloudtrail-test-<アカウントID> と入力して「バケットを作成」をクリックします
  • 数分待ってから CloudTrail コンソールに戻り、「イベント履歴」を選択します
  • フィルタで「イベント名」を CreateBucket に設定すると、先ほどのバケット作成イベントが表示されます
イベント履歴でバケット作成イベント(CreateBucket)が表示されている状態
イベント履歴でバケット作成イベント(CreateBucket)が表示されている状態
  • 証跡のログが S3 に保存されていることを確認します。S3 コンソールで証跡用のバケット(aws-cloudtrail-logs- で始まるバケット)を開きます
  • AWSLogs/<アカウントID>/CloudTrail/ap-northeast-1/<年>/<月>/<日>/ のフォルダ構造でログファイルが保存されていることが確認できます
S3 バケット内の CloudTrail ログファイル(フォルダ構造とログファイルが表示されている状態)
S3 バケット内の CloudTrail ログファイル(フォルダ構造とログファイルが表示されている状態)

ステップ5: イベントレコードの読み方

イベント履歴で CreateBucket イベントをクリックし、イベントレコードの内容を確認します。以下は記録されるイベントの主要部分です。

{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "IAMUser",
        "arn": "arn:aws:iam::123456789012:user/admin-user",
        "accountId": "123456789012",
        "userName": "admin-user"
    },
    "eventTime": "2026-03-22T10:00:00Z",
    "eventSource": "s3.amazonaws.com",
    "eventName": "CreateBucket",
    "awsRegion": "ap-northeast-1",
    "sourceIPAddress": "203.0.113.1",
    "requestParameters": {
        "bucketName": "cloudtrail-test-123456789012"
    },
    "responseElements": null,
    "readOnly": false
}

このイベントレコードから以下が読み取れます。

  • 誰が: admin-user(IAM ユーザー)
  • いつ: 2026-03-22T10:00:00Z
  • 何をしたか: S3 バケットの作成(CreateBucket)
  • どこから: 203.0.113.1(ソース IP)
  • 対象リソース: cloudtrail-test-123456789012

まとめ

  • AWS CloudTrail は、AWS アカウント内の API アクティビティを自動的に記録するサービスです
  • イベント履歴 では、証跡を作成しなくても直近 90 日間の管理イベントを閲覧できます
  • イベントは 管理イベント(リソースの作成・変更・削除)、データイベント(オブジェクトの読み書き)、Insights イベント(異常検出)の 3 種類に分類されます
  • 証跡(Trail) を作成することで、イベントログを S3 に継続的に保存し、90 日を超える長期保存が可能になります
  • イベントレコードには「誰が・いつ・どこから・何をしたか」が JSON 形式で記録されており、セキュリティ調査や監査に活用できます
  • セキュリティのベストプラクティスとして、全リージョンを対象とした証跡の作成が推奨されます

参照先

キャリア相談
クラウドおさる

独学の先に、AWS の仕事がある ── ジュニアおさるのキャリア相談

CLF には受かったけれど、次に何をすればいいのか分からない。独学で AWS を学ぶジュニアおさるの相談に、株式会社ジェニュイン代表の土肥が答えています。

  • ✓資格はゴールか、CLF の次に何から手を付けるか
  • ✓EC2 の次に作ってみる構成と、IaC・コスト管理
  • ✓実務経験ゼロでも、面接で話せる「これまで」の作り方
新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方を募集しています。プログラミング未経験から入社して活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社ジェニュイン(https://genuine-pt.jp)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した株式会社Luxyを引き継ぎ、代表に就任。
その後アガルートグループ内の株式会社ジェニュインと合併。
合併後同社代表に就任。

目次