记录网络活动事件 - AWS CloudTrail

记录网络活动事件

注意

网络活动事件是 CloudTrail 的预览版,可能会发生变化。

CloudTrail 网络活动事件使 VPC 端点所有者能够记录使用其 VPC 端点进行的从私有 VPC 到 AWS 的 AWS 服务 API 调用。通过网络活动事件,可以了解在 VPC 中执行的资源操作。例如,记录网络活动事件可以帮助 VPC 端点所有者检测组织外部的凭证何时尝试访问其 VPC 端点。

您可以记录以下服务的网络活动事件:

  • AWS CloudTrail

  • Amazon EC2

  • AWS KMS

  • AWS Secrets Manager

您可以配置跟踪和事件数据存储来记录网络活动事件。

默认情况下,跟踪和事件数据存储不记录网络活动事件。网络活动事件将收取额外费用。有关更多信息,请参阅 AWS CloudTrail 定价

网络活动事件的高级事件选择器字段

您可以通过指定要记录活动的事件源来配置高级事件选择器以记录网络活动事件。您可以使用 AWS SDK、AWS CLI 或 CloudTrail 控制台配置高级事件选择器。

记录网络活动事件需要以下高级事件选择器字段:

  • eventCategory – 要记录网络活动事件,值必须为 NetworkActivityeventCategory 只能使用 Equals 运算符。

  • eventSource – 要记录网络活动事件的事件源。eventSource 只能使用 Equals 运算符。如果要记录多个事件源的网络活动事件,则必须为每个事件源创建单独的字段选择器。

    有效值包括:

    • cloudtrail.amazonaws.com

    • ec2.amazonaws.com

    • kms.amazonaws.com

    • secretsmanager.amazonaws.com

以下高级事件选择器字段是可选的:

  • eventName – 要筛选的请求操作。例如,CreateKeyListKeyseventName 可以使用任何运算符。

  • errorCode – 要筛选的请求错误代码。目前,唯一有效 errorCodeVpceAccessDenied。您只能将 Equals 运算符与 errorCode 配合使用。

  • vpcEndpointId – 标识操作通过的 VPC 端点。您可以将任何运算符与 vpcEndpointId 配合使用。

默认情况下,在您创建跟踪或事件数据存储时,未记录网络活动事件。要记录 CloudTrail 网络活动事件,您必须明确配置要收集活动的每个事件源。

记录网络活动事件将收取额外费用。有关 CloudTrail 定价的信息,请参阅 AWS CloudTrail 定价

使用 AWS Management Console 记录网络活动事件

您可以使用控制台更新现有的跟踪或事件数据存储以记录网络活动事件。

更新现有跟踪以记录网络活动事件

使用以下过程更新现有跟踪以记录网络活动事件。

注意

记录网络活动事件将收取额外费用。有关 CloudTrail 定价的信息,请参阅 AWS CloudTrail 定价

  1. 登录到 AWS Management Console,然后通过以下网址打开 CloudTrail 控制台:https://console.aws.amazon.com/cloudtrail

  2. 在 CloudTrail 控制台的左侧导航窗格中,打开 Trails(跟踪记录)页面,然后选择跟踪记录名称。

  3. 网络活动事件中,选择编辑

    要记录网络活动事件,请采取以下步骤:

    1. 网络活动事件源中,选择网络活动事件的来源。

    2. Log selector template(日志选择器模板)中,选择一个模板。您可以选择记录所有网络活动事件、记录所有网络活动访问被拒绝的事件,或者选择自定义来构建自定义日志选择器以筛选多个字段(例如 eventNamevpcEndpointId)。

    3. (可选)输入用于标识选择器的名称。选择器名称在高级事件选择器中列为 名称,展开 JSON 视图即可查看该名称。

    4. 高级事件选择器中,通过为字段运算符选择值来构建表达式。如果您使用的是预定义日志模板,则可跳过此步骤。

      1. 要排除或包括网络活动事件,您可以从控制台中的以下字段中进行选择。

        • eventName – 您可以将任何运算符与 eventName 配合使用。您可以使用它来包含或排除任何事件(如 CreateKey)。

        • errorCode – 您可以使用它来筛选错误代码。目前,唯一支持的 errorCodeVpceAccessDenied

        • vpcEndpointId – 标识操作通过的 VPC 端点。您可以将任何运算符与 vpcEndpointId 配合使用。

      2. 对于每个字段,请选择 + 条件以根据需要添加任意数量的条件,所有条件总共可有最多 500 个指定值。

      3. 根据需要,选择 + Field(+ 字段)以添加其他字段。为了避免错误,请不要为字段设置冲突或重复的值。

    5. 要添加您想要记录网络活动事件的另一个事件源,请选择添加网络活动事件选择器

    6. 或者,展开 JSON 视图将您的高级事件选择器作为 JSON 数据块查看。

  4. 选择保存更改以保存您的更改。

更新现有事件数据存储以记录网络活动事件

按照以下过程更新现有事件数据存储以记录网络活动事件。

注意

您只能在 CloudTrail 事件类型的事件数据存储上记录网络活动事件。

  1. 登录到 AWS Management Console,然后通过以下网址打开 CloudTrail 控制台:https://console.aws.amazon.com/cloudtrail

  2. 在 CloudTrail 控制台的左侧导航窗格中的 Lake 下,选择事件数据存储

  3. 选择事件数据存储名称。

  4. 网络活动事件中,选择编辑

    要记录网络活动事件,请采取以下步骤:

    1. 网络活动事件源中,选择网络活动事件的来源。

    2. Log selector template(日志选择器模板)中,选择一个模板。您可以选择记录所有网络活动事件、记录所有网络活动访问被拒绝的事件,或者选择自定义来构建自定义日志选择器以筛选多个字段(例如 eventNamevpcEndpointId)。

    3. (可选)输入用于标识选择器的名称。选择器名称在高级事件选择器中列为 名称,展开 JSON 视图即可查看该名称。

    4. 高级事件选择器中,通过为字段运算符选择值来构建表达式。如果您使用的是预定义日志模板,则可跳过此步骤。

      1. 要排除或包括网络活动事件,您可以从控制台中的以下字段中进行选择。

        • eventName – 您可以将任何运算符与 eventName 配合使用。您可以使用它来包含或排除任何事件(如 CreateKey)。

        • errorCode – 您可以使用它来筛选错误代码。目前,唯一支持的 errorCodeVpceAccessDenied

        • vpcEndpointId – 标识操作通过的 VPC 端点。您可以将任何运算符与 vpcEndpointId 配合使用。

      2. 对于每个字段,请选择 + 条件以根据需要添加任意数量的条件,所有条件总共可有最多 500 个指定值。

      3. 根据需要,选择 + Field(+ 字段)以添加其他字段。为了避免错误,请不要为字段设置冲突或重复的值。

    5. 要添加您想要记录网络活动事件的另一个事件源,请选择添加网络活动事件选择器

    6. 或者,展开 JSON 视图将您的高级事件选择器作为 JSON 数据块查看。

  5. 选择保存更改以保存您的更改。

使用 AWS Command Line Interface 记录网络活动事件

您可以使用 AWS CLI 配置跟踪或事件数据存储以记录网络活动事件。

示例:记录跟踪的网络活动事件

您可以使用 AWS CLI 配置跟踪以记录网络活动事件。运行 put-event-selectors 命令来为您的跟踪配置高级事件选择器。

要查看您的跟踪是否正在记录网络活动事件,请运行 get-event-selectors 命令。

示例:记录 CloudTrail 操作的网络活动事件

以下示例演示了如何配置您的跟踪以包含 CloudTrail API 操作的所有网络活动事件,例如 CreateTrailCreateEventDataStore 调用。eventSource 字段的值是 cloudtrail.amazonaws.com

aws cloudtrail put-event-selectors / --trail-name TrailName / --region region / --advanced-event-selectors '[ { "Name": "Audit all CloudTrail API calls through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["cloudtrail.amazonaws.com"] } ] } ]'

该命令将返回以下示例输出。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Audit all CloudTrail API calls through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "cloudtrail.amazonaws.com" ] } ] } ] }

示例:记录 AWS KMS 的 VpceAccessDenied 事件

以下示例演示了如何配置跟踪以包含 AWS KMS 的 VpceAccessDenied 事件。此示例将 errorCode 字段设置为等于 VpceAccessDenied 事件,将 eventSource 字段设置为等于 kms.amazonaws.com

aws cloudtrail put-event-selectors \ --region region / --trail-name TrailName / --advanced-event-selectors '[ { "Name": "Audit AccessDenied AWS KMS events through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["kms.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] } ] } ]'

该命令将返回以下示例输出。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied AWS KMS events through VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "kms.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] } ] } ] }

示例:通过特定 VPC 端点记录 EC2 VpceAccessDenied 事件

以下示例演示了如何配置您的跟踪以包含特定 VPC 端点的 Amazon EC2 的 VpceAccessDenied 事件。此示例将 errorCode 字段设置为等于 VpceAccessDenied 事件,将 eventSource 字段设置为等于 ec2.amazonaws.com,而将 vpcEndpointId 设置为感兴趣的 VPC 端点。

aws cloudtrail put-event-selectors \ --region region / --trail-name TrailName / --advanced-event-selectors '[ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["ec2.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] }, { "Field": "vpcEndpointId", "Equals": ["vpce-example8c1b6b9b7"] } ] } ]'

该命令将返回以下示例输出。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "ec2.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] }, { "Field": "vpcEndpointId", "Equals": [ "vpce-example8c1b6b9b7" ] } ] } ] }

示例:记录事件数据存储的网络活动事件

您可以使用 AWS CLI 配置事件数据存储以包含网络活动事件。使用 create-event-data-store 命令创建新的事件数据存储以记录网络活动事件。使用 update-event-data-store 命令为现有事件数据存储更新高级事件选择器。

要查看事件数据存储是否包含网络活动事件,请运行 get-event-data-store 命令。

aws cloudtrail get-event-data-store --event-data-store EventDataStoreARN

示例:记录 CloudTrail 操作的所有网络活动事件

以下示例演示了如何创建一个事件数据存储,其中包含与 CloudTrail 操作相关的所有网络活动事件,例如对 CreateTrailCreateEventDataStore 的调用。eventSource 字段的值设置为 cloudtrail.amazonaws.com

aws cloudtrail create-event-data-store \ --name "EventDataStoreName" \ --advanced-event-selectors '[ { "Name": "Audit all CloudTrail API calls over VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["cloudtrail.amazonaws.com"] } ] } ]'

该命令将返回以下示例输出。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE492-301f-4053-ac5e-EXAMPLE441aa", "Name": "EventDataStoreName", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Audit all CloudTrail API calls over VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "cloudtrail.amazonaws.com" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2024-05-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2024-05-20T21:00:17.820000+00:00" }

示例:记录 AWS KMS 的 VpceAccessDenied 事件

以下示例演示了如何创建事件数据存储以包含 AWS KMS 的 VpceAccessDenied 事件。此示例将 errorCode 字段设置为等于 VpceAccessDenied 事件,将 eventSource 字段设置为等于 kms.amazonaws.com

aws cloudtrail create-event-data-store \ --name EventDataStoreName \ --advanced-event-selectors '[ { "Name": "Audit AccessDenied AWS KMS events over VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["kms.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] } ] } ]'

该命令将返回以下示例输出。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEb4a8-99b1-4ec2-9258-EXAMPLEc890", "Name": "EventDataStoreName", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied AWS KMS events over VPC endpoints", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "kms.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2024-05-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2024-05-20T21:00:17.820000+00:00" }

示例:通过特定 VPC 端点记录 EC2 VpceAccessDenied 事件

以下示例演示了如何创建事件数据存储以包含特定 VPC 端点的 Amazon EC2 的 VpceAccessDenied 事件。此示例将 errorCode 字段设置为等于 VpceAccessDenied 事件,将 eventSource 字段设置为等于 ec2.amazonaws.com,而将 vpcEndpointId 设置为感兴趣的 VPC 端点。

aws cloudtrail create-event-data-store \ --name EventDataStoreName \ --advanced-event-selectors '[ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["NetworkActivity"] }, { "Field": "eventSource", "Equals": ["ec2.amazonaws.com"] }, { "Field": "errorCode", "Equals": ["VpceAccessDenied"] }, { "Field": "vpcEndpointId", "Equals": ["vpce-example8c1b6b9b7"] } ] } ]'

该命令将返回以下示例输出。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEb4a8-99b1-4ec2-9258-EXAMPLEc890", "Name": "EventDataStoreName", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Audit AccessDenied EC2 events over a specific VPC endpoint", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "NetworkActivity" ] }, { "Field": "eventSource", "Equals": [ "ec2.amazonaws.com" ] }, { "Field": "errorCode", "Equals": [ "VpceAccessDenied" ] }, { "Field": "vpcEndpointId", "Equals": [ "vpce-example8c1b6b9b7" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2024-05-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2024-05-20T21:00:17.820000+00:00" }

使用 AWS 开发工具包记录事件

运行 GetEventSelectors 操作以查看跟踪是否正在记录网络活动事件。您可以配置您的跟踪记录以通过运行 PutEventSelectors 操作来记录网络活动事件。有关更多信息,请参阅 AWS CloudTrail API 参考

运行 GetEventSelectors 操作以查看事件数据存储是否正在记录网络活动事件。通过运行 CreateEventDataStoreUpdateEventDataStore 操作并指定高级事件选择器,可以将事件数据存储配置为包含网络活动事件。有关更多信息,请参阅 使用 AWS CLI 创建、更新和管理事件数据存储 和《AWS CloudTrail API Referencehttps://docs.aws.amazon.com/awscloudtrail/latest/APIReference/》。