CloudTrail Network Activity Events の新機能「UserIdentity フィルタリング」を試してみた
はじめに
2026年7月20日、AWS CloudTrail の Network Activity Events で UserIdentity ベースのフィルタリングがサポートされました。
Network Activity Events は、VPC エンドポイント経由の API コールを記録するイベントタイプです。従来から eventSource・eventName・vpcEndpointId 等で記録対象を絞り込めましたが、今回のアップデートで userIdentity.arn が条件フィールドに追加され、API コールを行った Identity 単位で記録対象を制御できるようになりました。
検証内容
検証環境
IAM Role (ec2-ssm-core)
└─→ VPC Endpoint (STS, Interface型)
└─→ sts:GetCallerIdentity
└─→ CloudTrail Network Activity Event (記録される/されない)
- リージョン: us-east-1
- VPC: デフォルト VPC
- EC2: t3.nano(Amazon Linux 2023)、SSM Session Manager で接続
- VPC エンドポイント:
com.amazonaws.us-east-1.sts(Interface 型、プライベート DNS 有効) - CloudTrail Trail: Network Activity Events 専用(
eventCategory: NetworkActivityのみ記録する設定) - ログ保存先: S3 バケット
ベースライン(フィルタなし)
UserIdentity フィルタなしの状態で、EC2 から VPC エンドポイント経由で STS を呼び出し、Network Activity Event として記録されることを確認しました。
aws sts get-caller-identity
数分待機した後、S3 バケットの該当パスにログが配信されたことを確認しました。Network Activity Events は通常の管理イベント(CloudTrail/)とは異なり、CloudTrail-NetworkActivity/ プレフィックス配下に配信されます。
aws s3 ls s3://<log-bucket>/AWSLogs/123456789012/CloudTrail-NetworkActivity/us-east-1/2026/07/20/
| 項目 | 結果 |
|---|---|
| STS 呼び出し時刻 | 2026-07-20T19:07:40Z |
| ログ配信時刻 | 2026-07-20T19:12:33Z(約5分後) |
| eventCategory | NetworkActivity |
| eventType | AwsVpceEvent |
| eventSource | sts.amazonaws.com |
| vpcEndpointId | vpce-xxxxxxxxxxxxxxxxx |
| sourceIPAddress | 10.0.x.x |
| userIdentity.arn | arn:aws:sts::123456789012:assumed-role/ec2-ssm-core/i-xxxxxxxxxxxxxxxxx |
イベント全文(JSON)
{
"Records": [
{
"eventVersion": "1.11",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROAXXXXXXXXXXXXXXXXX:i-xxxxxxxxxxxxxxxxx",
"arn": "arn:aws:sts::123456789012:assumed-role/ec2-ssm-core/i-xxxxxxxxxxxxxxxxx",
"accountId": "123456789012",
"accessKeyId": "ASIAXXXXXXXXXXXXXXXX",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "AROAXXXXXXXXXXXXXXXXX",
"arn": "arn:aws:iam::123456789012:role/ec2-ssm-core",
"accountId": "123456789012",
"userName": "ec2-ssm-core"
},
"attributes": {
"creationDate": "2026-07-20T18:55:18Z",
"mfaAuthenticated": "false"
},
"ec2RoleDelivery": "2.0"
},
"inScopeOf": {
"issuerType": "AWS::EC2::Instance",
"credentialsIssuedTo": "arn:aws:ec2:us-east-1:123456789012:instance/i-xxxxxxxxxxxxxxxxx"
}
},
"eventTime": "2026-07-20T19:07:40Z",
"eventSource": "sts.amazonaws.com",
"eventName": "GetCallerIdentity",
"awsRegion": "us-east-1",
"sourceIPAddress": "10.0.x.x",
"requestID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"eventID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"eventType": "AwsVpceEvent",
"recipientAccountId": "123456789012",
"sharedEventID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"vpcEndpointId": "vpce-xxxxxxxxxxxxxxxxx",
"vpcEndpointAccountId": "123456789012",
"eventCategory": "NetworkActivity"
}
]
}
UserIdentity フィルタ設定
Advanced Event Selectors に userIdentity.arn の NotStartsWith 条件を追加し、ec2-ssm-core ロールのセッション ARN(arn:aws:sts::....:assumed-role/ec2-ssm-core/)に一致するイベントを除外する設定を適用しました。
aws cloudtrail put-event-selectors \
--trail-name <trail-name> \
--advanced-event-selectors file://selectors.json
selectors.json の内容:
[
{
"Name": "Log STS network activity excluding ec2-ssm-core",
"FieldSelectors": [
{ "Field": "eventCategory", "Equals": ["NetworkActivity"] },
{ "Field": "eventSource", "Equals": ["sts.amazonaws.com"] },
{ "Field": "userIdentity.arn", "NotStartsWith": ["arn:aws:sts::123456789012:assumed-role/ec2-ssm-core/"] }
]
}
]
フィルタ動作確認
フィルタ設定後、同じ EC2 インスタンスから再度 sts get-caller-identity を実行しました。
aws sts get-caller-identity
ベースライン検証時の配信所要時間(約5分)に対して余裕を持たせ、21分待機した後に S3 の該当ログパスを確認しました。
aws s3 ls s3://<log-bucket>/AWSLogs/123456789012/CloudTrail-NetworkActivity/us-east-1/2026/07/20/
フィルタ設定後の呼び出しに対応する新規ファイルは、21分経過時点では確認できませんでした。
2026-07-20 19:12:33 738 123456789012_CloudTrail-NetworkActivity_us-east-1_20260720T1910Z_eQlnTuU10ITkCJ3z.json.gz
| 項目 | 結果 |
|---|---|
| STS 呼び出し時刻 | 2026-07-20T19:16:30Z |
| 最終確認時刻 | 2026-07-20T19:37:07Z(21分経過) |
| 新規ログ配信 | なし |
21分経過時点で新規ログファイルは確認できず、NotStartsWith 条件により ec2-ssm-core のロールセッションに一致する Network Activity Event が除外された挙動と整合します。
検証中の発見事項
- STS(
sts.amazonaws.com)は公式ドキュメントの Network Activity Events 対応 eventSource リストに未掲載ですが、実際に設定・記録が可能でした(2026-07-20 検証時点)。 - 本記事では Trail に対する
userIdentity.arnフィルタを検証しました。Event Data Store での対応可否は本検証の対象外です。
まとめ
UserIdentity フィルタリングにより、Network Activity Events の記録対象を userIdentity.arn の条件で絞り込めるようになりました。
Network Activity Events は用途が限定される機能ですが、VPC エンドポイント経由の AWS API アクセスについて証跡の取得が求められる一方で、すべての Identity のイベントを保持する必要はない場合があります。たとえば、AWS 外のネットワークや Direct Connect 接続拠点などからのアクセスを含む環境で、VPC エンドポイントを経由した API アクセスを確認対象としたいケースです。
そのような場合に、監視対象から除外してよいロールセッションを userIdentity.arn で除外することで、必要なイベントを残しながら記録量を絞り込む選択肢になります。







