目次
CloudTrailとは
CloudTrailは、AWSで誰が・いつ・何に・どのような操作をしたかを記録するサービスです。
AWSの操作履歴・監査ログとして、障害調査や不審な操作の確認に役立ちます。
1.どのような情報が記録されるか
| 項目 | 記録の例 | 主なフィールド |
|---|---|---|
| 誰が | 操作したIAMユーザーやIAMロール | userIdentity |
| いつ | 操作が行われた日時(ログではUTC) | eventTime |
| どこから | 接続元IPアドレスなど | sourceIPAddress |
| どのサービスで | EC2、S3、IAMなど | eventSource |
| 何をしたか | EC2の停止、設定変更など | eventName |
| 何に | 対象インスタンスID、バケット名など | requestParameters、resourcesなど |
| 操作の結果 | 応答の一部や、失敗時のエラー情報 | responseElements、errorCodeなど |
操作によって、記録されるフィールドや詳細は異なります。すべての項目が必ず入るわけではありません。
2.EC2を停止した場合の例
「EC2が停止していた」という場合に、誰が停止操作を行ったのかを調べるために使えます。以下は読みやすくした説明用の例です。
| 操作した人:IAMユーザー user-a 操作日時 :2026年11月2日 10:00(日本時間) 操作内容 :StopInstances(EC2の停止) 対象 :インスタンス i-0123456789abcdef0 接続元IP :203.0.113.10 |
AWSマネジメントコンソールだけでなく、AWS CLI、SDKを使ったプログラム、AWSサービスによる操作も記録対象になります。
CloudTrailで確認できるのは対応する操作の記録です。OS内部のシャットダウンなど、EC2が停止したすべての原因をCloudTrailだけで判別できるわけではありません。
3.イベントの種類
イベントとは、CloudTrailに記録される操作や活動のことです。代表的な管理イベント・データイベントに加え、ネットワークアクティビティイベント・Insightsイベントもあります。
| 種類 | 何を記録するか | 具体例 |
|---|---|---|
| 管理イベント | AWSリソースの作成・設定変更・削除や、設定情報の参照 | EC2の停止、IAMポリシーの変更 |
| データイベント | リソース内のデータに対する操作や、対応するリソースの実行 | S3オブジェクトの取得、Lambda関数の実行 |
| ネットワークアクティ ビティイベント |
VPCエンドポイント経由のAPI呼び出し | エンドポイントポリシーで拒否されたアクセス |
| Insightsイベント | 通常と異なるAPI呼び出し率・エラー率などを分析して検出した活動 | 特定APIの呼び出し数が通常より急増 |
4.それぞれのイベントの操作例
管理イベントの例
| サービス | 操作例 | イベント名(API名)の例 |
|---|---|---|
| EC2 | EC2を新規作成し、起動した | RunInstances |
| EC2 | EC2を終了した | TerminateInstances |
| EC2 | インスタンスを起動する | StartInstances |
| EC2 | インスタンスを停止する | StopInstances |
| EC2 | セキュリティグループにインバウンドルールを追加する | AuthorizeSecurityGroupIngress |
| EC2 | インスタンス情報を参照する | DescribeInstances |
| IAM | ユーザーを作成する | CreateUser |
| IAM | ロールに管理ポリシーを付ける | AttachRolePolicy |
| S3 | バケットを作成する | CreateBucket |
| S3 | バケットポリシーを設定する | PutBucketPolicy |
| S3 | バケットを削除する | DeleteBucket |
| CloudTrail | 証跡を作成する | CreateTrail |
| サインイン | AWSマネジメントコンソールにログインした | ConsoleLogin |
データイベントの例
| サービス | 操作例 | イベント名(API名)の例 |
|---|---|---|
| S3 | オブジェクト(ファイル)を取得する | GetObject |
| S3 | オブジェクトをアップロードする | PutObject |
| S3 | オブジェクトを削除する | DeleteObject |
| S3 | ファイルの存在やメタデータを確認した | HeadObject |
| Lambda | 関数を呼び出す | Invoke |
| DynamoDB | テーブル内の項目を取得する/書き込む | GetItem/PutItem |
| SNS | トピックにメッセージを発行する | Publish |
S3では「バケットを作成する」は管理イベント、「バケット内のファイルを取得する」はデータイベントです。 「S3のファイルを誰がダウンロードしたか」を後から調べるには、対象のデータイベントを事前に記録する設定が必要です。
ネットワークアクティビティイベント・Insightsイベントの例
| 種類 | 具体例 | わかること |
|---|---|---|
| ネットワーク アクティビティ |
VPCエンドポイント経由でKMSのListKeysを呼び出す | 対象エンドポイントを経由したAPI呼び出しの情報 |
| ネットワーク アクティビティ |
対応するサービスへのリクエストがVPCエンドポイントポリシーで拒否される | VpceAccessDeniedなどの拒否情報 |
| Insights | 通常は少ないAPI呼び出しが短時間に急増する | 通常の傾向と異なる呼び出し率を検出したこと |
| Insights | API呼び出しのエラー率が通常より大きく上がる | 通常の傾向と異なるエラー率を検出したこと |
ネットワークアクティビティイベントは通信パケットや通信量を記録するVPC Flow Logsとは異なります。対応するサービス・操作と、イベントの収集設定を確認してください。Insightsで異常が検出されても、必ず不正アクセスという意味ではありません。
5.最初からすべて記録されるわけではない
イベント履歴
各リージョンの過去90日間の管理イベントを確認できます。データイベントなどは対象外です。
証跡
継続的にログを保存したい場合などに設定し、S3へ配信できます。管理イベントも収集設定の影響を受けます。
データイベント・ネットワークアクティビティイベント・Insights
利用には明示的な設定が必要で、追加料金が発生します。
6.CloudWatchとの違い
| サービス | 主な用途 | 例 |
|---|---|---|
| CloudTrail | AWS上の操作を監査・調査する | 誰がEC2を停止したか |
| CloudWatch | メトリクスやログでシステムの状態を監視する | EC2のCPU使用率が高いか、アプリでエラーが出ているか |
CloudTrailは「誰が何を操作したか」、CloudWatchは「システムがどのような状態か」を確認するために使うと覚えるとわかりやすいです。
関連の記事
