记录管理事件 - AWS CloudTrail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

记录管理事件

默认情况下,跟踪记录和事件数据存储将记录管理事件,但不包含数据事件或 Insights 事件。

数据事件或 Insights 事件需额外支付费用。有关更多信息,请参阅AWS CloudTrail 定价

管理事件

管理事件可让您了解对 AWS 账户中的资源执行的管理操作。这些也称为控制层面操作。示例管理事件包括:

  • 配置安全性(例如,IAMAttachRolePolicyAPI操作)

  • 注册设备(例如,Amazon EC2 CreateDefaultVpc API 运营)

  • 配置数据路由规则(例如,Amazon EC2 CreateSubnet API 操作)

  • 设置日志记录(例如, AWS CloudTrail CreateTrailAPI操作)

管理事件也可以包括您账户中发生的非API事件。例如,当用户登录您的账户时,会 CloudTrail 记录该ConsoleLogin事件。有关更多信息,请参阅 捕获的非API事件 CloudTrail

默认情况下,跟踪和事件数据存储配置为记录管理事件。

注意

CloudTrail 事件历史记录功能仅支持管理事件。您不能从API事件历史记录中排除 AWS KMS 或 Amazon RDS Data 事件;您应用于跟踪或事件数据存储的设置不适用于事件历史记录。有关更多信息,请参阅 处理 CloudTrail 事件历史记录

读取和写入事件

将跟踪或事件数据存储配置为记录管理事件时,可以指定是需要只读事件、只写事件还是两者都需要。

  • 读取

    只读事件包括读取您的资源但不进行更改的API操作。例如,只读事件包括 Amazon EC2 DescribeSecurityGroupsDescribeSubnetsAPI操作。这些操作仅返回有关您的 Amazon EC2 资源的信息,不会更改您的配置。

  • 写入

    只写事件包括修改(或可能修改)资源的API操作。例如,Amazon EC2 RunInstancesTerminateInstancesAPI操作会修改您的实例。

示例:为单独的跟踪记录记录读取事件和写入事件

以下示例说明如何将跟踪记录配置为将账户的日志活动拆分到单独的 S3 存储桶中:一个存储桶接收只读事件,另一个存储桶接收只写事件。

  1. 您创建一个跟踪并选择一个名为 amzn-s3-demo-bucket1 的 S3 存储桶来接收日志文件。然后,您更新跟踪以指定您需要 Read(读取)管理事件。

  2. 您创建另一个跟踪并选择一个名为 amzn-s3-demo-bucket2 的 S3 存储桶来接收日志文件。然后,您更新跟踪以指定您需要 Write(写入)管理事件。

  3. Amazon EC2 DescribeInstancesTerminateInstancesAPI操作发生在您的账户中。

  4. DescribeInstancesAPI操作是一个只读事件,它与第一个跟踪的设置相匹配。跟踪记录事件并将事件传送到amzn-s3-demo-bucket1

  5. TerminateInstancesAPI操作是一个只写事件,它与第二个跟踪的设置相匹配。跟踪记录事件并将事件传送到amzn-s3-demo-bucket2

使用记录管理事件 AWS Management Console

  1. 登录 AWS Management Console 并打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/

  2. 要更新跟踪,请打开 CloudTrail 控制台的 Trails 页面并选择跟踪名称。

    要更新事件数据存储,请打开 CloudTrail 控制台的事件数据存储页面,然后选择事件数据存储名称。

  3. 对于 Management events(管理事件),选择 Edit(编辑)。

    • 选择您希望跟踪或事件数据存储记录读取事件、写入事件,还是两者都记录。

    • 选择 “排除 AWS KMS 事件”,从您的跟踪或事件数据存储中筛选 AWS Key Management Service (AWS KMS) 事件。默认设置是包括所有 AWS KMS 事件。

      仅当您在跟踪或 AWS KMS 事件数据存储中记录管理事件时,才可使用记录或排除事件的选项。如果您选择不记录管理事件,则不会记录 AWS KMS 事件,也无法更改 AWS KMS 事件日志记录设置。

      AWS KMS 诸如EncryptDecrypt、和之类的操作GenerateDataKey通常会生成大量事件(超过 99%)。这些操作现在记录为读取事件。诸如DisableDelete、和ScheduleKey(通常占事件量不到 0.5%)之类的低容量相关 AWS KMS 操作被记录为写入 AWS KMS 事件。

      要排除高容量事件(如EncryptDecryptGenerateDataKey、和),但仍记录相关事件(例如DisableScheduleKeyDelete和),请选择记录写入管理事件,然后清除 “排除” AWS KMS 事件复选框。

    • 选择 “排除亚马逊RDS数据API事件”,从您的跟踪或API事件数据存储中筛选出亚马逊关系数据库服务数据事件。默认设置是包括所有 Amazon RDS 数据API事件。有关亚马逊RDS数据API事件的更多信息,请参阅 A urora 亚马逊RDS用户指南 AWS CloudTrail中的使用记录数据API调用

  4. 完成后选择保存更改

使用 AWS CLI记录管理事件

您可以使用 AWS CLI配置跟踪或事件数据存储以记录管理事件。

示例:记录跟踪的管理事件

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

aws cloudtrail get-event-selectors --trail-name TrailName

以下示例返回跟踪的默认设置。默认情况下,跟踪记录所有管理事件,记录所有事件源的事件,但不记录数据事件。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ] }

您可以使用基本或高级事件选择器来记录管理事件。不能将事件选择器和高级事件选择器同时应用于跟踪。如果将高级事件选择器应用于跟踪,则所有现有的基本事件选择器都将被覆盖。以下各节提供了如何使用高级事件选择器和基本事件选择器记录管理事件的示例。

示例:使用高级事件选择器记录跟踪的管理事件

以下示例为名为的跟踪创建高级事件选择器 TrailName 包括只读和只写管理事件(省略readOnly选择器),但要排除 AWS Key Management Service (AWS KMS) 事件。由于 AWS KMS 事件被视为管理事件,而且其数量可能很大,因此,如果您有多个跟踪记录管理事件,它们可能会对您的 CloudTrail 账单产生重大影响。

如果您选择不记录管理事件,则不会记录 AWS KMS 事件,也无法更改 AWS KMS 事件日志记录设置。

要重新开始将 AWS KMS 事件记录到跟踪,请移除eventSource选择器,然后再次运行该命令。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["kms.amazonaws.com"] } ] } ]'

以下示例返回为跟踪配置的高级事件选择器。

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "kms.amazonaws.com" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

要再次开始将排除的事件记录到跟踪,请删除 eventSource 选择器,如以下命令中所示。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

下一个示例为名为的跟踪创建高级事件选择器 TrailName 包括只读和只写管理事件(省略readOnly选择器),但不包括 Amazon RDS 数据API管理事件。要排除亚马逊RDS数据API管理事件,请在eventSource字段的字符串值中指定亚马逊RDS数据API事件源:rdsdata.amazonaws.com

如果您选择不记录管理事件,则不会记录亚马逊RDS数据API管理事件,也无法更改亚马逊RDS数据API事件记录设置。

要重新开始将 Amazon RDS 数据API管理事件记录到跟踪中,请移除eventSource选择器,然后再次运行该命令。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except Amazon RDS Data API management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["rdsdata.amazonaws.com"] } ] } ]'

以下示例返回为跟踪配置的高级事件选择器。

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except Amazon RDS Data API management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "rdsdata.amazonaws.com" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

要再次开始将排除的事件记录到跟踪,请删除 eventSource 选择器,如以下命令中所示。

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

示例:使用基本事件选择器记录跟踪的管理事件

要将跟踪配置为记录管理事件,请运行 put-event-selectors 命令。以下示例说明如何配置您的跟踪以包含两个 S3 对象的所有管理事件。您可以为一个跟踪指定 1 至 5 个事件选择器。您可以为一个跟踪指定 1 至 250 个数据资源。

注意

无论有多少个事件选择器,最多只能有 250 个 S3 数据资源。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{ "ReadWriteType": "All", "IncludeManagementEvents":true, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::amzn-s3-demo-bucket/prefix", "arn:aws:s3:::amzn-s3-demo-bucket2/prefix2"] }] }]'

以下示例返回为跟踪配置的事件选择器。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [ { "Type": "AWS::S3::Object", "Values": [ "arn:aws:s3:::amzn-s3-demo-bucket/prefix", "arn:aws:s3:::amzn-s3-demo-bucket2/prefix2", ] } ], "ExcludeManagementEventSources": [] } ] }

要从跟踪日志中排除 AWS Key Management Service (AWS KMS) 事件,请运行put-event-selectors命令并添加值为ExcludeManagementEventSources的属性kms.amazonaws.com。以下示例为名为的跟踪创建事件选择器 TrailName 包括只读和只写管理事件,但不包括 AWS KMS 事件。由于 AWS KMS 可能会生成大量事件,因此本示例中的用户可能希望限制事件以管理跟踪成本。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["kms.amazonaws.com"],"IncludeManagementEvents": true}]'

以下示例返回为跟踪配置的事件选择器。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [], "ExcludeManagementEventSources": [ "kms.amazonaws.com" ] } ] }

要从跟踪日志中排除 Amazon RDS 数据API管理事件,请运行put-event-selectors命令并添加值为ExcludeManagementEventSources的属性rdsdata.amazonaws.com。以下示例为名为的跟踪创建事件选择器 TrailName 包括只读和只写管理事件,但不包括 Amazon RDS 数据API管理事件。由于 Amazon RDS Data API 可以生成大量的管理事件,因此本示例中的用户可能希望限制事件以管理跟踪成本。

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:111122223333:trail/TrailName", "EventSelectors": [ { "ReadWriteType": "All", "IncludeManagementEvents": true, "DataResources": [], "ExcludeManagementEventSources": [ "rdsdata.amazonaws.com" ] } ] }

要重新开始向跟踪记录 AWS KMS 或 Amazon RDS 数据API管理事件,请传递一个空字符串作为的值ExcludeManagementEventSources,如以下命令所示。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true}]'

要将相关 AWS KMS 事件记录到跟踪(如DisableScheduleKeyDelete和),但不包括高容量 AWS KMS 事件(如EncryptDecryptGenerateDataKey、和),请记录只写管理事件,并保留记录 AWS KMS 事件的默认设置,如以下示例所示。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "WriteOnly","ExcludeManagementEventSources": [],"IncludeManagementEvents": true}]'

示例:记录事件数据存储的管理事件

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

aws cloudtrail get-event-data-store --event-data-store arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

以下为响应示例。创建时间和上次更新时间采用 timestamp 格式。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "myManagementEvents", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "FIXED_RETENTION_PRICING", "RetentionPeriod": 2557, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-02-04T15:56:27.418000+00:00", "UpdatedTimestamp": "2023-02-04T15:56:27.544000+00:00" }

要创建包含所有管理事件的事件数据存储,请运行 create-event-data-store 命令。无需指定任何高级事件选择器即可包含所有管理事件。

aws cloudtrail create-event-data-store --name my-event-data-store --retention-period 90\

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-13T16:41:57.224000+00:00", "UpdatedTimestamp": "2023-11-13T16:41:57.357000+00:00" }

要创建排除 AWS Key Management Service (AWS KMS) 事件的事件数据存储,请运行create-event-data-store命令并指定eventSource不等于kms.amazonaws.com。以下示例创建了一个事件数据存储,其中包含只读和只写管理事件,但不包括 AWS KMS 事件。

aws cloudtrail create-event-data-store --name event-data-store-name --retention-period 90 --advanced-event-selectors '[ { "Name": "Management events selector", "FieldSelectors": [ {"Field": "eventCategory","Equals": ["Management"]}, {"Field": "eventSource","NotEquals": ["kms.amazonaws.com"]} ] } ]'

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "event-data-store-name", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "kms.amazonaws.com" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-13T17:02:02.067000+00:00", "UpdatedTimestamp": "2023-11-13T17:02:02.241000+00:00" }

要创建不包括 Amazon RDS 数据API管理事件的事件数据存储,请运行create-event-data-store命令并指定eventSource不等于rdsdata.amazonaws.com。以下示例创建了一个事件数据存储,其中包含只读和只写管理事件,但不包括 Amazon RDS Data API 事件。

aws cloudtrail create-event-data-store --name event-data-store-name --retention-period 90 --advanced-event-selectors '[ { "Name": "Management events selector", "FieldSelectors": [ {"Field": "eventCategory","Equals": ["Management"]}, {"Field": "eventSource","NotEquals": ["rdsdata.amazonaws.com"]} ] } ]'

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Management events selector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] }, { "Field": "eventSource", "NotEquals": [ "rdsdata.amazonaws.com" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-13T17:02:02.067000+00:00", "UpdatedTimestamp": "2023-11-13T17:02:02.241000+00:00" }

使用 AWS SDKs 记录管理事件

使用该GetEventSelectors操作来查看您的跟踪是否正在记录跟踪的管理事件。您可以将跟踪配置为通过PutEventSelectors操作记录管理事件。有关更多信息,请参阅《AWS CloudTrail API参考》。

运行该GetEventDataStore操作以查看您的事件数据存储是否包含管理事件。您可以通过运行CreateEventDataStoreUpdateEventDataStore操作将事件数据存储配置为包含管理事件。有关更多信息,请参阅使用创建、更新和管理事件数据存储 AWS CLIAWS CloudTrail API参考资料。