[アップデート] AWS CloudTrail のデータイベントで 5 分単位の集約情報を記録できるようになりました

[アップデート] AWS CloudTrail のデータイベントで 5 分単位の集約情報を記録できるようになりました

2025.11.24

AWS CloudTrail のデータイベントを5分単位で集約して出力する機能である Aggregating data events が追加されました。

https://aws.amazon.com/about-aws/whats-new/2025/11/cloudtrail-data-event-aggregation-security-monitoring/

AWS Cloudtrail のデータイベントを記録する際に追加で有効化することができ、追加料金を支払うことで5分単位で次の集約情報を記録できます。

集約テンプレート名 概要
API Activity API 毎(GetObject など)の集約
Resource Access リソース毎の集約
User Actions IAM プリンシパル毎(IAM ユーザーなど)の集約

料金は、S3 に配信されて集計のために分析されたデータイベント 100,000 件あたり $0.03 です。

cloudtrail-data-event-aggregation-1

引用元:AWS CloudTrail pricing

AWS ユーザーガイドでは次のページに記載されています。本ブログ執筆時点では英語のページのみです。

https://docs.aws.amazon.com/awscloudtrail/latest/userguide/aggregating-data-events.html

試してみた

Aggregating data events を有効化して、S3 に配信された集約情報を確認してみます。

Aggregating data events の有効化

マネジメントコンソールから設定する場合は、データイベントを有効化した場合に Aggregating data events の設定ステップが追加されました。今回は S3 のすべてのイベントを記録する設定で試してみます。

cloudtrail-data-event-aggregation-2

Aggregation templates 毎に有効化するかどうかを選択できます。今回は3種類のテンプレートすべてを有効化して証跡を作成してみます。

cloudtrail-data-event-aggregation-3

作成した証跡の設定において、Aggregating data events が有効化されていることを確認できました。

cloudtrail-data-event-aggregation-4

AWS CLI で Aggregating data events の設定を確認した場合は次のコマンドで確認できます。

aws cloudtrail get-event-configuration \
  --trail-name <your-trail-name> \
  --region ap-northeast-1

有効化されている場合のコマンド実行結果例です。

$ aws cloudtrail get-event-configuration \
>   --trail-name cloudtrail-for-organizations \
>   --region ap-northeast-1
{
    "TrailARN": "arn:aws:cloudtrail:ap-northeast-1:111122223333:trail/cloudtrail-for-organizations",
    "AggregationConfigurations": [
        {
            "Templates": [
                "API_ACTIVITY",
                "RESOURCE_ACCESS",
                "USER_ACTIONS"
            ],
            "EventCategory": "Data"
        }
    ]
}

無効化されている場合のコマンド実行結果例です。

$ aws cloudtrail get-event-configuration \
>   --trail-name test-cloudtrail \
>   --region ap-northeast-1
{
    "TrailARN": "arn:aws:cloudtrail:ap-northeast-1:111122223333:trail/Members",
    "AggregationConfigurations": []
}

Aggregating data events の確認

既存で作成済みの S3 バケット test-on-aaa-20251122 test-on-bbb-20251122 から3回ずつオブジェクトをダウンロードしておきます。

for i in {1..3}; do aws s3 cp s3://test-on-aaa-20251122/download.txt .; done
for i in {1..3}; do aws s3 cp s3://test-on-bbb-20251122/download.txt .; done

AWS CloudTrail の配信先の S3 バケットでは次のフォルダ構成となっていました。今回は組織の証跡を作成していますが、アカウント単独の証跡の場合は組織 ID がないためフォルダ構成が一部変わると思われます。

AWSLogs/
└── o-1jnexample/
    └── 111122223333/
        └── CloudTrail-Aggregated/
            └── ap-northeast-1/
                └── 2025/
                    └── 11/
                        └── 23/

約5分間隔でファイルが出力されていました。5分単位で集約していることが関係していると思われます。

cloudtrail-data-event-aggregation-5

S3 バケットにアクセスした時刻の情報を確認してみます。コマンドを実行したのは 00:15 頃であり、今回の場合はその情報は 00:31 に配信されたファイル内にありました。
集約情報は下表のようにまとめられており、集約テンプレート毎に何にフォーカスして集計されているのかが異なっていました。表には行数を記載していますが、ブログ中では表示されないため、手元でコピーして確認いただくと分かりやすいかもしれません。

記載行 集約テンプレート名 集約内容 備考
2~93行目 API Activity GetObject イベント
93~185行目 API Activity HeadObject イベント
186~265行目 Resource Access test-on-aaa-20251122 バケット
266~345行目 Resource Access test-on-bbb-20251122 バケット
346~441行目 User Actions test-s3-user ユーザー コマンドを実行した IAM ユーザー
[
    {
        "eventVersion": "1.0",
        "accountId": "444455556666",
        "eventId": "14ff0257-c7de-4f1b-92ec-0e11291eb79e",
        "eventCategory": "Aggregated",
        "eventType": "AwsAggregatedEvent",
        "awsRegion": "ap-northeast-1",
        "eventSource": "s3.amazonaws.com",
        "timeWindow": {
            "windowStart": "2025-11-23T15:15:00Z",
            "windowEnd": "2025-11-23T15:20:00Z",
            "windowSize": "PT5M"
        },
        "summary": {
            "primaryDimension": {
                "dimension": "eventName",
                "statistics": [
                    {
                        "name": "GetObject",
                        "value": 6
                    }
                ],
                "aggregationType": "Count"
            },
            "details": [
                {
                    "dimension": "resourceARN",
                    "statistics": [
                        {
                            "name": "arn:aws:s3:::test-on-aaa-20251122",
                            "value": 3
                        },
                        {
                            "name": "arn:aws:s3:::test-on-bbb-20251122",
                            "value": 3
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userIdentity",
                    "statistics": [
                        {
                            "name": "ARN:arn:aws:iam::444455556666:user/test-s3-user",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userAgent",
                    "statistics": [
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/E,G,Z,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,E,b,Z cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,Z,E,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/Z,E,G,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,E,G cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,G,E cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "sourceIpAddress",
                    "statistics": [
                        {
                            "name": "192.0.2.1",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                }
            ]
        }
    },
    {
        "eventVersion": "1.0",
        "accountId": "444455556666",
        "eventId": "82305865-f48d-4a82-97ac-f58fdf0841d3",
        "eventCategory": "Aggregated",
        "eventType": "AwsAggregatedEvent",
        "awsRegion": "ap-northeast-1",
        "eventSource": "s3.amazonaws.com",
        "timeWindow": {
            "windowStart": "2025-11-23T15:15:00Z",
            "windowEnd": "2025-11-23T15:20:00Z",
            "windowSize": "PT5M"
        },
        "summary": {
            "primaryDimension": {
                "dimension": "eventName",
                "statistics": [
                    {
                        "name": "HeadObject",
                        "value": 6
                    }
                ],
                "aggregationType": "Count"
            },
            "details": [
                {
                    "dimension": "resourceARN",
                    "statistics": [
                        {
                            "name": "arn:aws:s3:::test-on-aaa-20251122",
                            "value": 3
                        },
                        {
                            "name": "arn:aws:s3:::test-on-bbb-20251122",
                            "value": 3
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userIdentity",
                    "statistics": [
                        {
                            "name": "ARN:arn:aws:iam::444455556666:user/test-s3-user",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userAgent",
                    "statistics": [
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/E,G,Z,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,E,b,Z cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,Z,E,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/Z,E,G,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,E,G cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,G,E cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 1
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "sourceIpAddress",
                    "statistics": [
                        {
                            "name": "192.0.2.1",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                }
            ]
        }
    },
    {
        "eventVersion": "1.0",
        "accountId": "444455556666",
        "eventId": "c512ee92-f012-4887-8690-825ea6389d8f",
        "eventCategory": "Aggregated",
        "eventType": "AwsAggregatedEvent",
        "awsRegion": "ap-northeast-1",
        "eventSource": "s3.amazonaws.com",
        "timeWindow": {
            "windowStart": "2025-11-23T15:15:00Z",
            "windowEnd": "2025-11-23T15:20:00Z",
            "windowSize": "PT5M"
        },
        "summary": {
            "primaryDimension": {
                "dimension": "resourceARN",
                "statistics": [
                    {
                        "name": "arn:aws:s3:::test-on-aaa-20251122",
                        "value": 6
                    }
                ],
                "aggregationType": "Count"
            },
            "details": [
                {
                    "dimension": "eventName",
                    "statistics": [
                        {
                            "name": "GetObject",
                            "value": 3
                        },
                        {
                            "name": "HeadObject",
                            "value": 3
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userIdentity",
                    "statistics": [
                        {
                            "name": "ARN:arn:aws:iam::444455556666:user/test-s3-user",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userAgent",
                    "statistics": [
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,E,b,Z cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,Z,E,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/Z,E,G,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "sourceIpAddress",
                    "statistics": [
                        {
                            "name": "192.0.2.1",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                }
            ]
        }
    },
    {
        "eventVersion": "1.0",
        "accountId": "444455556666",
        "eventId": "e13fe544-0ce5-4452-a068-0b9ae60defa4",
        "eventCategory": "Aggregated",
        "eventType": "AwsAggregatedEvent",
        "awsRegion": "ap-northeast-1",
        "eventSource": "s3.amazonaws.com",
        "timeWindow": {
            "windowStart": "2025-11-23T15:15:00Z",
            "windowEnd": "2025-11-23T15:20:00Z",
            "windowSize": "PT5M"
        },
        "summary": {
            "primaryDimension": {
                "dimension": "resourceARN",
                "statistics": [
                    {
                        "name": "arn:aws:s3:::test-on-bbb-20251122",
                        "value": 6
                    }
                ],
                "aggregationType": "Count"
            },
            "details": [
                {
                    "dimension": "eventName",
                    "statistics": [
                        {
                            "name": "GetObject",
                            "value": 3
                        },
                        {
                            "name": "HeadObject",
                            "value": 3
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userIdentity",
                    "statistics": [
                        {
                            "name": "ARN:arn:aws:iam::444455556666:user/test-s3-user",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userAgent",
                    "statistics": [
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/E,G,Z,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,E,G cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,G,E cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "sourceIpAddress",
                    "statistics": [
                        {
                            "name": "192.0.2.1",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                }
            ]
        }
    },
    {
        "eventVersion": "1.0",
        "accountId": "444455556666",
        "eventId": "fe8aab53-b00b-44d1-aef6-4bb5139d5e9d",
        "eventCategory": "Aggregated",
        "eventType": "AwsAggregatedEvent",
        "awsRegion": "ap-northeast-1",
        "eventSource": "s3.amazonaws.com",
        "timeWindow": {
            "windowStart": "2025-11-23T15:15:00Z",
            "windowEnd": "2025-11-23T15:20:00Z",
            "windowSize": "PT5M"
        },
        "summary": {
            "primaryDimension": {
                "dimension": "userIdentity",
                "statistics": [
                    {
                        "name": "ARN:arn:aws:iam::444455556666:user/test-s3-user",
                        "value": 12
                    }
                ],
                "aggregationType": "Count"
            },
            "details": [
                {
                    "dimension": "resourceARN",
                    "statistics": [
                        {
                            "name": "arn:aws:s3:::test-on-aaa-20251122",
                            "value": 6
                        },
                        {
                            "name": "arn:aws:s3:::test-on-bbb-20251122",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "eventName",
                    "statistics": [
                        {
                            "name": "GetObject",
                            "value": 6
                        },
                        {
                            "name": "HeadObject",
                            "value": 6
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "userAgent",
                    "statistics": [
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/E,G,Z,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,E,b,Z cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/G,Z,E,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/Z,E,G,b cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,E,G cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        },
                        {
                            "name": "[aws-cli/2.32.3 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,Z,G,E cfg/retry-mode#standard md/installer#exe md/prompt#off md/command#s3.cp]",
                            "value": 2
                        }
                    ],
                    "aggregationType": "Count"
                },
                {
                    "dimension": "sourceIpAddress",
                    "statistics": [
                        {
                            "name": "192.0.2.1",
                            "value": 12
                        }
                    ],
                    "aggregationType": "Count"
                }
            ]
        }
    }
]

これで Aggregating data events の確認は終わりです。

さいごに

AWS CloudTrail のデータイベントを5分単位で集約して出力する機能である Aggregating data events が追加されたため、試してみました。既存のデータイベントを残しつつ、追加で集約情報を記録できました。データイベントを分析するための仕組みを作っていない場合に、手軽にサマリを確認したい場合に便利な機能だと思いました。
以上、このブログがどなたかのご参考になれば幸いです。

この記事をシェアする

FacebookHatena blogX

関連記事