AWS CloudTrail の新しいイベントカテゴリー 「ネットワークアクティビティイベント」 が一般公開(GA)されました
こんにちは、クラウド事業本部の平木です!
2024 年 9 月頃にプレビューとしてリリースされた AWS CloudTrail (以下、CloudTrail) の
新しいイベントカテゴリーのネットワークアクティビティイベント
が GA されたためプレビューとの変更点と合わせて見ていきます。
プレビュー時のブログはこちら↓
AWS 公式のアップデートブログはこちら↓
ざっくりまとめ
- VPC 内のリソースから VPC エンドポイントを経由して行われた API 呼び出しを CloudTrail 上に記録できる
- 現在時点(2025/02/15)で対応しているサービスは AWS CloudTrail、Amazon EC2、AWS KMS、Amazon S3(NEW)、AWS Secrets Manager
- ただし S3 は現在適用可能なリージョンが限定されていそう?
- 利用には追加料金が必要となる
ネットワークアクティビティイベントとは
CloudTrail では通常管理イベントというカテゴリで AWS アカウント上で発生する API イベントまたは非 API イベントを記録します。
ただ全てのイベントを記録するわけでなくオプションで明示的に有効化可能なイベントカテゴリがあり、
その一つとして今回ネットワークアクティビティイベントが追加されました。
現在時点ではイベントカテゴリは 4 種類あります。
- 管理イベント
- データイベント
- インサイトイベント
- ネットワークアクティビティイベント
ネットワークアクティビティイベントでは、
VPC 内リソースが VPC エンドポイントを経由して発生した API イベントを記録することが可能です。
サポートするサービス
ネットワークアクティビティイベントでは、現在以下のサービスのアクティビティイベントを記録します。
GA となってから S3 もサポートするようになりました。
- AWS CloudTrail
- Amazon EC2
- AWS KMS
- Amazon S3
- マルチリージョンアクセスポイントはサポート外
- AWS Secrets Manager
高度なイベントセレクター
データイベントにもありますが、高度なイベントセレクターを使用することで、イベントソースなどを指定し記録ができます。
次のフィールドは必ず指定する必要があります。
- eventCategory: 記録する値を
NetworkActivity
とする必要があります。マネジメントコンソールの場合は指定箇所はありません - eventSource: 記録するイベントソースを指定します。種類別に個別のセレクターを作成する必要があります。現在時点で次のイベントソースをサポートしています
- cloudtrail.amazonaws.com
- ec2.amazonaws.com
- kms.amazonaws.com
- s3.amazonaws.com
- ※現在時点では、コンソール上ではバージニア北部・オレゴン・北カリフォルニアリージョンでのみ指定可能
- secretsmanager.amazonaws.com
次のフィールドはオプションで指定できます。
- eventName: 記録するレコードをイベント名でフィルターできます
- errorCode: 記録するレコードをエラーコードでフィルターできます
- vpcEndpointId: 記録するレコードを VPC エンドポイント ID でフィルターできます
ログ
ネットワークアクティビティイベントを有効化した場合、
指定した S3 バケットの (バケット名)/AWSLogs/(アカウント ID)/CloudTrail-NetworkActivity/
配下にリージョン別に日付毎に記録されます。
下記は KMS の ListKey を VPC エンドポイント経由でアクセスした際の
ネットワークアクティビティイベントのログのサンプルです。
{
"eventVersion": "1.11",
"userIdentity": {
"type": "AssumedRole",
"principalId": "ASIAIOSFODNN7EXAMPLE:role-name",
"arn": "arn:aws:sts::123456789012:assumed-role/Admin/role-name",
"accountId": "123456789012",
"accessKeyId": "ASIAIOSFODNN7EXAMPLE",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "ASIAIOSFODNN7EXAMPLE",
"arn": "arn:aws:iam::123456789012:role/admin-role",
"accountId": "123456789012",
"userName": "admin-role"
},
"attributes": {
"creationDate": "2025-02-14T06:04:22Z",
"mfaAuthenticated": "false"
}
}
},
"eventTime": "2025-02-14T08:50:38Z",
"eventSource": "kms.amazonaws.com",
"eventName": "ListKeys",
"awsRegion": "ap-northeast-1",
"sourceIPAddress": "10.0.129.3",
"requestID": "16bcc089-ac49-43f1-9177-EXAMPLE23731",
"eventID": "228ca3c8-5f95-4a8a-9732-EXAMPLE60ed9",
"eventType": "AwsVpceEvent",
"recipientAccountId": "123456789012",
"sharedEventID": "4abbdd2b-b0d6-4f21-b3dc-b1f94e0faf8b",
"vpcEndpointId": "vpce-EXAMPLE08c1b6b9b7",
"vpcEndpointAccountId": "123456789012",
"eventCategory": "NetworkActivity"
}
ネットワークアクティビティイベントの場合、 eventCategory
に NetworkActivity
と表記されます。
料金
こちらはプレビュー時と変わらず以下のような料金形態になります。
- CloudTrail 証跡
- S3 に配信されるネットワークアクティビティイベント 100,000 件あたり
0.10
USD
- S3 に配信されるネットワークアクティビティイベント 100,000 件あたり
- CloudTrail Lake イベントデータストア
0.75
USD/GB (1 年間延長可能な保持価格)
参考リンク: AWS CloudTrail pricing
有効化してみた
新規の証跡の場合
証跡作成時のステップ 2 のイベントタイプにて「ネットワークアクティビティイベント」が選択できるようになっているので、
ここにチェックを入れます。
プレビュー時には VPCE イベント
と表記されていたようなのでここも GA で修正されたようです。
ネットワークアクティビティイベントの設定ができるようになっているので、
イベントソースを選択します。
東京リージョンでは s3.amazonaws.com はまだ選択できないようなので 4 つから選択できます。
他のイベントソースも指定したい場合は、
「ネットワークアクティビティイベントセレクターの追加」で項目を追加します。
ログセレクターテンプレートでは以下 3 種類から選べます。
- すべてのイベントをログに記録する
- ネットワークアクティビティアクセス拒否イベントをログに記録
- カスタム
高度なイベントセレクターによるフィルターを実施したい場合にはカスタムを選択します。
イベントセレクターにて Key となるフィールド、条件、Value を設定します。
これであとは作成したら完了です。
既存の証跡の場合
既存の証跡かつデータイベントを今まで有効化したことない証跡の場合、
下記のようにネットワークアクティビティイベントを編集できないようになっています。
これはデフォルトでは基本的なイベントセレクターというものが指定されているためなので、
高度なイベントセレクターを利用するように変更する必要があります。
変更方法は次のステップで可能です。
まずデータイベントの項目の「編集」を押します。
データイベントにチェックを入れます。
画像中の「高度なイベントセレクターに切り替えます」を押します。
データイベントの記録を有効化したい場合はそのままデータイベントのタイプを選択し変更の保存をしてください。
データイベントの記録が不要な場合には、データイベントのチェックを外して、変更の保存をしてください。
そうするとネットワークアクティビティイベントを編集できるようになります。
参考リンク
- Logging network activity events
- AWS CloudTrail network activity events for VPC endpoints now generally available
おわりに
今回はGAしたCloudTrailのネットワークアクティビティイベントについてまとめてみました。
例えば、VPCエンドポイントを通過するトラフィックを分析したい場合に、
VPCエンドポイントに紐づくENIまたはVPCにてフローログを取って確認してもソースIP、宛先のIP、プロトコルなどトラフィックの情報が主ですが、
どういったAPIを誰がどの認証情報で実行したかをネットワークアクティビティイベントでは確認できるため、
監査や CloudWatch Logs Insights や Athena の使用により傾向分析などに今後活用できそうかなと感じました。
この記事がどなたかの役に立つと嬉しいです。