Cloudtrail証跡の管理イベントとデータイベントは同じファイルに出力されますか?

Cloudtrail証跡の管理イベントとデータイベントは同じファイルに出力されますか?

1つのCloudtrail証跡に対して、管理イベントとデータイベント両方を取得するよう設定し、S3バケットを保存先としようとしています。 管理イベントとデータイベントのログは同じファイルに保存されますか?別々のファイルに保存されますか? 1つのCloudTrail証跡に管理イベントとデータイベント両方を取得するよう設定すると、それぞれ別のログファイルとしてS3に保存されます。
Clock Icon2025.06.03

困っていた内容

1つのCloudtrail証跡に対して、管理イベントとデータイベント両方を取得するよう設定し、S3バケットを保存先としようとしています。

管理イベントとデータイベントのログは同じファイルに保存されますか?別々のファイルに保存されますか?

どう対応すればいいの?

1つのCloudTrail証跡に管理イベントとデータイベント両方を取得するよう設定すると、それぞれ別のログファイルとしてS3に保存されます。

一方で、生成されるログファイル名だけでは管理イベントとデータイベントの区別が難しいものとなっています。

やってみた

管理イベントを取得しているCloudTrail証跡に対して、データイベントについても取得するよう設定し、生成されるログファイルを確認します。

  1. CLoudTrail証跡の「データイベント」を編集し、データイベントを有効にします。データイベントソースとしてS3を設定します。今回は検証のため、読み取りバケットを任意のバケット1つに限定しています。
    スクリーンショット 2025-05-30 14.27.56.png

スクリーンショット 2025-05-30 14.27.18

  1. データイベントソースに設定したS3バケット内のオブジェクトに対して、任意のデータイベントアクションを実行します。(例:DeleteObject,GetObject,PutObjectなど)

  2. CloudTrail証跡の保存先として設定されているS3バケット内のオブジェクトを確認します。該当の操作時間におけるログファイルを確認すると以下のように、管理イベントとデータイベントで別れていることが確認できます。また、判別方法としては、"eventCategory"が"management"のものは管理イベント、"Data"のものはデータイベントと判別することが可能です。

管理イベントログ一部抜粋
{
  "Records": [
    {
      "eventVersion": "1.11",
      "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAXXXXXXXXXXXXXXX:XXXX-user",
        "arn": "arn:aws:sts::1111111111:assumed-role/XXXX-user/XXXX-user",
        "accountId": "1111111111",
        "accessKeyId": "ASIAXXXXXXXXXXXXXXX",
        "sessionContext": {
          "sessionIssuer": {
            "type": "Role",
            "principalId": "AROAXXXXXXXXXXXXXXX",
            "arn": "arn:aws:iam::1111111111:role/XXXX-user",
            "accountId": "1111111111",
            "userName": "XXXX-user"
          },
          "attributes": {
            "creationDate": "2025-05-23T06:37:32Z",
            "mfaAuthenticated": "true"
          }
        }
      },
      "eventTime": "2025-05-23T08:36:12Z",
      "eventSource": "s3.amazonaws.com",
      "eventName": "GetBucketVersioning",
      "awsRegion": "ap-northeast-1",
      "sourceIPAddress": "14.13.240.128",
      "userAgent": "[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36]",
      "requestParameters": {
        "bucketName": "pythonslack-searchresultsbucket-XXXXXXXXXX",
        "Host": "s3.ap-northeast-1.amazonaws.com",
        "versioning": ""
      },
      "responseElements": null,
      "additionalEventData": {
        "SignatureVersion": "SigV4",
        "CipherSuite": "TLS_AES_128_GCM_SHA256",
        "bytesTransferredIn": 0,
        "AuthenticationMethod": "AuthHeader",
        "x-amz-id-2": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "bytesTransferredOut": 113
      },
      "requestID": "XXXXXXXXXX",
      "eventID": "923803fb-cdfb-4485-ba03-b991efd5ebc2",
      "readOnly": true,
      "resources": [
        {
          "accountId": "1111111111",
          "type": "AWS::S3::Bucket",
          "ARN": "arn:aws:s3:::pythonslack-searchresultsbucket-XXXXXXXXXX"
        }
      ],
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "recipientAccountId": "1111111111",
      "eventCategory": "Management",
      "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "s3.ap-northeast-1.amazonaws.com"
      }
    },
    {
      "eventVersion": "1.09",
      "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAXXXXXXXXXXXXXXX:XXXX-user",
        "arn": "arn:aws:sts::1111111111:assumed-role/XXXX-user/XXXX-user",
        "accountId": "1111111111",
        "accessKeyId": "ASIAXXXXXXXXXXXXXXX",
        "sessionContext": {
          "sessionIssuer": {
            "type": "Role",
            "principalId": "AROAXXXXXXXXXXXXXXX",
            "arn": "arn:aws:iam::1111111111:role/XXXX-user",
            "accountId": "1111111111",
            "userName": "XXXX-user"
          },
          "attributes": {
            "creationDate": "2025-05-23T06:37:32Z",
            "mfaAuthenticated": "true"
          }
        }
      },
      "eventTime": "2025-05-23T08:36:21Z",
      "eventSource": "notifications.amazonaws.com",
      "eventName": "ListNotificationEvents",
      "awsRegion": "ap-northeast-1",
      "sourceIPAddress": "14.13.240.128",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
      "requestParameters": {
        "maxResults": "100",
        "locale": "ja_JP"
      },
      "responseElements": null,
      "requestID": "936b6112-30ce-48fa-ad82-1a193156b54a",
      "eventID": "4b5fc35a-dda1-4165-84e6-c157dec6eca4",
      "readOnly": true,
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "recipientAccountId": "1111111111",
      "eventCategory": "Management"
    },
    {
      "eventVersion": "1.11",
      "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAXXXXXXXXXXXXXXX:XXXX-user2",
        "arn": "arn:aws:sts::1111111111:assumed-role/XXXX-user2/XXXX-user2",
        "accountId": "1111111111",
        "accessKeyId": "ASIAXXXXXXXXXXXXXXX",
        "sessionContext": {
          "sessionIssuer": {
            "type": "Role",
            "principalId": "AROAXXXXXXXXXXXXXXX",
            "arn": "arn:aws:iam::1111111111:role/XXXX-user2",
            "accountId": "1111111111",
            "userName": "XXXX-user2"
          },
          "attributes": {
            "creationDate": "2025-05-23T08:33:34Z",
            "mfaAuthenticated": "true"
          }
        }
      },
      "eventTime": "2025-05-23T08:36:16Z",
      "eventSource": "s3.amazonaws.com",
      "eventName": "GetBucketVersioning",
      "awsRegion": "ap-northeast-1",
      "sourceIPAddress": "104.28.243.105",
      "userAgent": "[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36]",
      "requestParameters": {
        "bucketName": "members-cloudtrail-1111111111",
        "Host": "s3.ap-northeast-1.amazonaws.com",
        "versioning": ""
      },
      "responseElements": null,
      "additionalEventData": {
        "SignatureVersion": "SigV4",
        "CipherSuite": "TLS_AES_128_GCM_SHA256",
        "bytesTransferredIn": 0,
        "AuthenticationMethod": "AuthHeader",
        "x-amz-id-2": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "bytesTransferredOut": 193
      },
      "requestID": "XXXXXXXXXX",
      "eventID": "155475cb-9f47-4305-bcd3-9382d8dc8203",
      "readOnly": true,
      "resources": [
        {
          "accountId": "1111111111",
          "type": "AWS::S3::Bucket",
          "ARN": "arn:aws:s3:::members-cloudtrail-1111111111"
        }
      ],
      "eventType": "AwsApiCall",
      "managementEvent": true,
      "recipientAccountId": "1111111111",
      "eventCategory": "Management",
      "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "s3.ap-northeast-1.amazonaws.com"
      }
    }
  ]
}
データイベントログ一部抜粋
{
  "Records": [
    {
      "eventVersion": "1.11",
      "userIdentity": {
        "type": "AWSService",
        "invokedBy": "cloudtrail.amazonaws.com"
      },
      "eventTime": "2025-05-23T08:37:19Z",
      "eventSource": "s3.amazonaws.com",
      "eventName": "PutObject",
      "awsRegion": "ap-northeast-1",
      "sourceIPAddress": "cloudtrail.amazonaws.com",
      "userAgent": "cloudtrail.amazonaws.com",
      "requestID": "XXXXXXXXXX",
      "eventID": "db9b00cc-3631-39aa-871f-bbe2b8a78014",
      "readOnly": false,
      "resources": [
        {
          "accountId": "1111111111",
          "type": "AWS::S3::Bucket",
          "ARN": "arn:aws:s3:::XXXX-cloudtrail-1111111111"
        },
        {
          "type": "AWS::S3::Object",
          "ARN": "arn:aws:s3:::XXXX-cloudtrail-1111111111/AWSLogs/1111111111/CloudTrail/ap-northeast-1/2025/05/23/1111111111_CloudTrail_ap-northeast-1_20250523T0835Z_XXXXXXXXXX.json.gz"
        }
      ],
      "eventType": "AwsApiCall",
      "managementEvent": false,
      "recipientAccountId": "1111111111",
      "sharedEventID": "01dada74-b38b-4b7c-880a-c110465313a2",
      "vpcEndpointId": "cloudtrail.amazonaws.com",
      "vpcEndpointAccountId": "cloudtrail.amazonaws.com",
      "eventCategory": "Data"
    },
    {
      "eventVersion": "1.11",
      "userIdentity": {
        "type": "AWSService",
        "invokedBy": "cloudtrail.amazonaws.com"
      },
      "eventTime": "2025-05-23T08:38:31Z",
      "eventSource": "s3.amazonaws.com",
      "eventName": "PutObject",
      "awsRegion": "ap-northeast-1",
      "sourceIPAddress": "cloudtrail.amazonaws.com",
      "userAgent": "cloudtrail.amazonaws.com",
      "requestID": "XXXXXXXXXX",
      "eventID": "f1f84d68-c267-35ec-a35b-033e007de37b",
      "readOnly": false,
      "resources": [
        {
          "accountId": "1111111111",
          "type": "AWS::S3::Bucket",
          "ARN": "arn:aws:s3:::XXXX-cloudtrail-1111111111"
        },
        {
          "type": "AWS::S3::Object",
          "ARN": "arn:aws:s3:::XXXX-cloudtrail-1111111111/AWSLogs/1111111111/CloudTrail/us-east-1/2025/05/23/1111111111_CloudTrail_us-east-1_20250523T0840Z_XXXXXXXXXX.json.gz"
        }
      ],
      "eventType": "AwsApiCall",
      "managementEvent": false,
      "recipientAccountId": "1111111111",
      "sharedEventID": "6f248f8d-de4b-403d-a712-38b70ac8bfe2",
      "eventCategory": "Data"
    },
    {
      "eventVersion": "1.11",
      "userIdentity": {
        "type": "AWSService",
        "invokedBy": "cloudtrail.amazonaws.com"
      },
      "eventTime": "2025-05-23T08:38:35Z",
      "eventSource": "s3.amazonaws.com",
      "eventName": "PutObject",
      "awsRegion": "ap-northeast-1",
      "sourceIPAddress": "cloudtrail.amazonaws.com",
      "userAgent": "cloudtrail.amazonaws.com",
      "requestParameters": {
        "bucketName": "XXXX-cloudtrail-1111111111",
        "Host": "XXXX-cloudtrail-1111111111.s3.ap-northeast-1.amazonaws.com",
        "x-amz-acl": "bucket-owner-full-control",
        "x-amz-server-side-encryption": "AES256",
        "key": "AWSLogs/1111111111/CloudTrail/eu-north-1/2025/05/23/1111111111_CloudTrail_eu-north-1_20250523T0840Z_XXXXXXXXXX.json.gz"
      },
      "requestID": "XXXXXXXXXX",
      "eventID": "9fbd7d6b-4013-3ea5-827c-f99c9a09fc5b",
      "readOnly": false,
      "resources": [
        {
          "accountId": "1111111111",
          "type": "AWS::S3::Bucket",
          "ARN": "arn:aws:s3:::XXXX-cloudtrail-1111111111"
        },
        {
          "type": "AWS::S3::Object",
          "ARN": "arn:aws:s3:::XXXX-cloudtrail-1111111111/AWSLogs/1111111111/CloudTrail/eu-north-1/2025/05/23/1111111111_CloudTrail_eu-north-1_20250523T0840Z_XXXXXXXXXX.json.gz"
        }
      ],
      "eventType": "AwsApiCall",
      "managementEvent": false,
      "recipientAccountId": "1111111111",
      "sharedEventID": "9da528d9-118f-4862-89c5-d1ac742326c3",
      "eventCategory": "Data"
    }
  ]
}

まとめ

検証の結果、1つのCloudTrail証跡で管理イベントとデータイベントの両方を有効にした場合でも、それぞれは別々のログファイルとしてS3バケットに保存されることが確認できました。

ログファイル内の各イベントは、以下の方法で区別できます:

  • 管理イベント: "eventCategory": "Management"
  • データイベント: "eventCategory": "Data"

これにより、CloudTrailログを分析する際に、管理イベントとデータイベントを適切に識別して処理することが可能になります。

参考資料

https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html

https://repost.aws/ja/knowledge-center/cloudtrail-data-management-events

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/cloudtrail-logging-s3-info.html

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.