记录管理事件 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

记录管理事件

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

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

管理事件

通过管理事件,可以了解对在您 Amazon 账户内的资源上执行的管理操作。这些也称为控制层面操作。示例管理事件包括:

  • 配置安全性(例如,IAM AttachRolePolicy API 操作)

  • 注册设备(例如,Amazon EC2 CreateDefaultVpc API 操作)。

  • 配置传送数据的规则(例如,Amazon EC2 CreateSubnet API 操作)

  • 设置日志记录(例如,Amazon CloudTrail CreateTrail API 操作)

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

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

注意

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

使用 Amazon Web Services Management Console 记录管理事件

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

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

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

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

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

    • 选择排除 Amazon KMS 事件以从跟踪或事件数据存储中筛选出 Amazon Key Management Service(Amazon KMS)事件。默认设置是包含所有 Amazon KMS 事件。

      只有当您在跟踪或事件数据存储上记录管理事件时,用于记录或排除 Amazon KMS 事件的选项才可用。如果选择不记录管理事件,则不会记录 Amazon KMS 事件,并且您无法更改 Amazon KMS 事件日志记录设置。

      EncryptDecryptGenerateDataKey 等 Amazon KMS 操作通常会生成大量事件(占比超过 99%)。这些操作现在记录为读取事件。DisableDeleteScheduleKey(通常占不到 Amazon KMS 事件量的 0.5%)等少量的相关 Amazon KMS 操作记录为 Write(写入)事件。

      如果要排除大批量事件(例如 EncryptDecryptGenerateDataKey),但仍然记录相关事件(例如 DisableDeleteScheduleKey),选择记录 Write(写入)管理事件,然后清除 Exclude Amazon KMS events(排除 Amazon KMS 事件)复选框。

  4. 完成后选择保存更改

读取和写入事件

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

  • 读取

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

  • 写入

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

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

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

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

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

  3. Amazon EC2 DescribeInstancesTerminateInstances API 操作将在您的账户中执行。

  4. DescribeInstances API 操作是只读事件,它匹配第一个跟踪的设置。跟踪将记录事件并将事件传送到 read-only-bucket

  5. TerminateInstances API 操作是只写事件,它匹配第二个跟踪的设置。跟踪将记录事件并将事件传送到 write-only-bucket

使用 Amazon Command Line Interface 记录事件

您可以使用 Amazon 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选择器),但排除 Amazon Key Management Service (Amazon KMS) 事件。由于Amazon KMS事件被视为管理事件,而且其数量可能很大,因此,如果您有多个跟踪记录管理事件,它们可能会对您的 CloudTrail 账单产生重大影响。

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

要再次开始将 Amazon 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 管理事件。要排除 Amazon RDS 数据 API 管理事件,请在eventSource字段的字符串值中指定 Amazon RDS 数据 API 事件源rdsdata.amazonaws.com

如果您选择不记录管理事件,则不会记录 Amazon RDS 数据 API 管理事件,也无法更改 Amazon 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:::mybucket/prefix", "arn:aws:s3:::mybucket2/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:::mybucket/prefix", "arn:aws:s3:::mybucket2/prefix2", ] } ], "ExcludeManagementEventSources": [] } ] }

要从跟踪的日志中排除 Amazon Key Management Service (Amazon KMS) 事件,请运行 put-event-selectors 命令并添加值为 kms.amazonaws.comExcludeManagementEventSources 属性。以下示例为名为的跟踪创建事件选择器,TrailName以包括只读和只写管理事件,但不包括Amazon KMS事件。由于 Amazon 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" ] } ] }

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

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

要将相关 Amazon KMS 事件记录到跟踪(如 DisableDeleteScheduleKey),并排除高量 Amazon KMS 事件(如 EncryptDecryptGenerateDataKey),请记录只写管理事件,并保留关于记录 Amazon KMS 事件的默认设置,如以下示例所示。

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

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

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

向 Amazon CloudWatch 日志发送事件

对于跟踪, CloudTrail 支持向 CloudWatch 日志发送数据和管理事件。当您将跟踪配置为向 CloudWatch 日志日志组发送事件时,仅 CloudTrail 发送您在跟踪中指定的事件。例如,如果您将跟踪配置为仅记录管理事件,则您的跟踪仅将管理事件传送到您的 CloudWatch 日志日志组。有关更多信息,请参阅 使用 Amazon CloudWatch Logs 监控 CloudTrail 日志文件