概要
AWS アカウント上で「誰が」「いつ」「どのリソースに対して」「何をしたか」を把握することは、セキュリティ管理や運用監査において欠かせません。意図しないリソースの変更が発生した場合や、セキュリティインシデントの調査を行う場合に、API 操作の記録がなければ原因の特定は困難です。
AWS CloudTrail は、AWS アカウント内で行われた API コールを自動的に記録するサービスです。マネジメントコンソールの操作、AWS CLI や SDK からの呼び出し、AWS サービスによる内部的な API コールなど、ほぼすべての操作がイベントとして記録されます。
本記事では、CloudTrail の基本概念を理解し、イベント履歴の閲覧と証跡(Trail)の作成を通じて API 操作の記録と確認方法を体験します。

この記事のメリット
- 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) |
eventSource | API コールの送信先サービス |
eventName | 実行された API アクション |
userIdentity | 操作を実行したプリンシパルの情報 |
sourceIPAddress | リクエスト元の IP アドレス |
requestParameters | API リクエストのパラメータ |
responseElements | API レスポンスの内容 |
errorCode / errorMessage | エラー発生時のコードとメッセージ |



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



エラーが起きたときも errorCode で記録されるなら、トラブルシューティングにも使えますね!
実践
前提条件
- リージョン:
ap-northeast-1(東京) - IAM ユーザーまたはロールに CloudTrail、S3 の操作権限があること
作成するリソース一覧
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| CloudTrail 証跡 | basic-management-trail | 管理イベントの記録用 |
| S3 バケット | CloudTrail が自動作成 | 証跡ログの保存先 |
ステップ1: イベント履歴の確認
まず、証跡を作成せずに利用できるイベント履歴を確認します。
- AWS マネジメントコンソールにログインし、リージョンが
ap-northeast-1(東京)であることを確認します - 上部の検索バーに
CloudTrailと入力し、表示された「CloudTrail」を選択します - 左側ナビゲーションの「イベント履歴」を選択します
- 直近の API 操作がイベントとして一覧表示されます


ステップ2: イベントの絞り込みと詳細確認
イベント履歴のフィルタ機能を使って、特定の操作を検索します。
- イベント履歴画面の検索フィルタで、ドロップダウンから「イベント名」を選択します
- 検索ボックスに
ConsoleLoginと入力し、Enter キーを押します - マネジメントコンソールへのサインインイベントが表示されます


- 表示されたイベントの行をクリックすると、イベントの詳細が表示されます
- 詳細画面では、以下の情報が確認できます
- イベント時間: サインインした日時
- ユーザー名: サインインした IAM ユーザー
- ソース IP アドレス: サインイン元の IP アドレス
- イベントレコード: JSON 形式の完全なイベントデータ


- フィルタをリセットし、今度はドロップダウンから「リソースタイプ」を選択します
AWS::S3::Bucketと入力して検索すると、S3 バケットに関する管理操作(バケットの作成、削除、設定変更など)に絞り込めます
ステップ3: 証跡の作成
90 日を超えてイベントを保存するために、証跡を作成します。
- 左側ナビゲーションの「証跡」を選択します
- 「証跡の作成」をクリックします
- 以下の項目を入力します
- 証跡名:
basic-management-trail - ストレージの場所: 「新しい S3 バケットを作成」を選択
- 証跡ログのバケット名: デフォルトのまま(
aws-cloudtrail-logs-<アカウントID>-<ランダム文字列>が自動入力されます) - ログファイルの SSE-KMS 暗号化: チェックを外す(今回は SSE-S3 暗号化で進めます)


- 「次へ」をクリックします
- ログイベントの選択画面で以下を設定します
- イベントタイプ: 「管理イベント」にチェック(デフォルトで有効)
- API アクティビティ: 「読み取り」「書き込み」の両方にチェック(デフォルト)
- データイベントとInsights イベントはチェックを外したままにします


- 「次へ」をクリックします
- 確認画面の内容を確認し、「証跡の作成」をクリックします
- 証跡一覧に
basic-management-trailが表示され、ステータスがログ記録中になっていることを確認します


ステップ4: 証跡で記録されたイベントの確認
証跡を作成した後、いくつかの操作を行い、それが S3 に記録されることを確認します。
- 試しに S3 コンソールで新しいバケットを作成します。上部の検索バーに
S3と入力し、「S3」を選択します - 「バケットを作成」をクリックし、バケット名に
cloudtrail-test-<アカウントID>と入力して「バケットを作成」をクリックします - 数分待ってから CloudTrail コンソールに戻り、「イベント履歴」を選択します
- フィルタで「イベント名」を
CreateBucketに設定すると、先ほどのバケット作成イベントが表示されます


- 証跡のログが S3 に保存されていることを確認します。S3 コンソールで証跡用のバケット(
aws-cloudtrail-logs-で始まるバケット)を開きます AWSLogs/<アカウントID>/CloudTrail/ap-northeast-1/<年>/<月>/<日>/のフォルダ構造でログファイルが保存されていることが確認できます


ステップ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 CloudTrail とは – AWS CloudTrail
- CloudTrail イベント履歴でのイベントの表示 – AWS CloudTrail
- 証跡の作成 – AWS CloudTrail
- CloudTrail ログイベントのリファレンス – AWS CloudTrail
- CloudTrail イベントでの管理イベントのログ記録 – AWS CloudTrail













