更新跟踪 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

更新跟踪

要更改跟踪设置,请使用以下过程。

要更新单区域跟踪以记录所有区域中的事件,或更新全区域跟踪以仅记录单个区域中的事件,必须使用 Amazon CLI。有关如何更新单区域跟踪以记录所有区域中的事件的详细信息,请参阅 将应用到一个区域的跟踪转换为应用到所有区域。有关如何更新全区域跟踪以记录单个区域中的事件的详细信息,请参阅 将多区域跟踪转换为单区域跟踪

使用 Amazon Web Services Management Console更新跟踪

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

  2. 在导航窗格中,选择 Trails(跟踪),然后选择跟踪名称。

  3. General details(一般详细信息)中,选择 Edit(编辑)以更改以下设置。您不能更改跟踪的名称。

    • Apply trail to my organization(将跟踪应用于我的组织)- 更改此跟踪是否为 Amazon Organizations 组织跟踪。

    • Trail log location(跟踪日志位置)- 更改您要在其中存储此跟踪的日志的 S3 存储桶或前缀的名称。

    • Log file SSE-KMS encryption(日志文件 SSE-KMS 加密)- 选择此选项可启用或禁用通过 SSE-KMS 而非 SSE-S3 加密日志文件的功能。

    • Log file validation(日志文件验证)- 选择此选项可启用或禁用日志文件完整性验证。

    • SNS notification delivery(SNS 通知传输)- 选择此选项可启用或禁用关于日志文件已传输到为跟踪指定的存储桶的 Amazon Simple Notification Service (Amazon SNS) 通知。

    1. 要将跟踪更改为 Amazon Organizations 组织跟踪,您可以选择为组织中的所有账户启用跟踪。有关更多信息,请参阅 为组织创建跟踪

    2. 要更改 Storage location(存储位置)中的指定存储桶,请选择Create new S3 bucket(创建新 S3 存储桶)以创建存储桶。在创建存储桶时,CloudTrail 会创建并应用所需的存储桶策略。

      注意

      如果选择 Use existing S3 bucket(使用现有 S3 存储桶),则在 Trail log bucket name(跟踪日志存储桶名称)中指定一个存储桶,或选择 Browse(浏览)以选择存储桶。存储桶策略必须授予 CloudTrail 向其写入的权限。有关手动编辑存储桶策略的信息,请参阅针对 CloudTrail 的 Amazon S3 存储桶策略

      为了更轻松地查找日志,在现有存储桶中创建新文件夹(又称为前缀)来存储您的 CloudTrail 日志。在 Prefix(前缀)字段中输入前缀。

    3. 对于 Log file SSE-KMS encryption(日志文件 SSE-KMS 加密),选择 Enabled(已启用)以使用 SSE-KMS 而非 SSE-S3 来加密日志文件。默认值为 Enabled(已启用)。有关此加密类型的更多信息,请参阅使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据

      如果您启用了 SSE-KMS 加密,请选择 New(新建)或 Existing(现有)Amazon KMS key。在 Amazon KMS Alias(Amazon KMS 别名)中,使用 alias/MyAliasName 的格式指定别名。有关更多信息,请参阅 更新跟踪以使用 KMS 密钥。CloudTrail 还支持 Amazon KMS 多区域密钥。有关多区域密钥的更多信息,请参阅 Amazon Key Management Service 开发人员指南中的使用多区域密钥

      注意

      您也可以键入其他账户的密钥 ARN。有关更多信息,请参阅 更新跟踪以使用 KMS 密钥。密钥策略必须允许 CloudTrail 使用此密钥加密您的日志文件,并允许您指定的用户读取未加密形式的日志文件。有关手动编辑密钥策略的信息,请参阅为 CloudTrail 配置 Amazon KMS 密钥策略

    4. 对于 Log file validation(日志文件验证),选择 Enabled(已启用)以将日志摘要传输到您的 S3 存储桶。您可以使用摘要文件验证日志文件在由 CloudTrail 传送之后没有发生改变。有关更多信息,请参阅 验证 CloudTrail 日志文件完整性

    5. 对于 SNS notification delivery(SNS 通知传输),选择 Enabled(已启用)以在每次日志传送到您的存储桶时收到通知。CloudTrail 将多个事件存储在单个日志文件中。SNS 通知针对每个日志文件而不是每个事件发送。有关更多信息,请参阅 为 CloudTrail 配置 Amazon SNS 通知

      如果您启用了 SNS 通知,则对于 Create a new SNS topic(创建新 SNS 主题),选择 New(新建)创建主题,或选择 Existing(现有)使用现有的主题。如果您创建的是应用到所有区域的跟踪,则针对来自所有区域的日志文件传输的 SNS 通知将发送到您创建的单个 SNS 主题中。

      如果选择 New(新建),CloudTrail 会为您指定新主题的名称,您也可以键入名称。如果选择 Existing(现有),则从下拉列表中选择一个 SNS 主题。您还可以输入来自另一个区域或来自一个具有适当权限的账户的主题的 ARN。有关更多信息,请参阅 针对 CloudTrail 的 Amazon SNS 主题策略

      如果您创建一个主题,则必须订阅该主题以便获取日志文件传送的通知。您可通过 Amazon SNS 控制台进行订阅。由于通知的频率,建议您将该订阅配置为使用 Amazon SQS 队列来以编程方式处理通知。有关更多信息,请参阅 Amazon Simple Notification Service 入门指南

  4. CloudWatch Logs 中,选择 Edit(编辑)以更改将 CloudTrail 日志文件发送到 CloudWatch Logs 的设置。在 CloudWatch Logs 中选择 Enabled(已启用)以启用日志文件发送。有关更多信息,请参阅 将事件发送到 CloudWatch Logs

    1. 如果您启用了与 CloudWatch Logs 的集成,请选择 New(新建)创建新日志组,或选择 Existing(现有)使用现有的日志组。如果选择 New(新建),CloudTrail 会为您指定新日志组的名称,您也可以键入名称。

    2. 如果选择 Existing(现有),则从下拉列表中选择一个日志组。

    3. 选择 New(新建)创建新 IAM 角色,以获得将日志发送到 CloudWatch Logs 的权限。选择 Existing(现有)以从下拉列表中选择一个现有 IAM 角色。展开 Policy document(策略文档)时,将显示新角色或现有角色的策略语句。有关该角色的更多信息,请参阅 与 CloudTrail 使用 CloudWatch Logs 进行监控对应的角色策略文档

      注意

      在您配置跟踪时,可以选择属于另一个账户的 S3 存储桶和 SNS 主题。但是,如果您希望 CloudTrail 将事件传送至 CloudWatch Logs 日志组,则必须选择当前账户中的日志组。

  5. Tags(标记)中,选择 Edit(编辑)以更改、添加或删除跟踪上的标签。将一个或多个自定义标签(键值对)添加到跟踪中。标签可帮助您识别 CloudTrail 跟踪和包含 CloudTrail 日志文件的 Amazon S3 存储桶。然后,您可以为您的 CloudTrail 资源使用资源组。有关更多信息,请参阅Amazon Resource Groups和为什么要对跟踪使用标签?

  6. Management events(管理事件)中,选择 Edit(编辑)以更改管理事件日志记录设置。

    1. 对于 API activity(API 活动),选择您希望跟踪记录 Read(读取)事件、Write(写入)事件,还是记录两者。有关更多信息,请参阅 管理事件

    2. 选择 Exclude Amazon KMS events(排除 Amazon KMS 事件)以从跟踪中筛选出 Amazon Key Management Service (Amazon KMS) 事件。默认设置是包含所有 Amazon KMS 事件。

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

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

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

  7. 重要

    步骤 7-9 用于配置当您使用的是基本事件选择器时跟踪上的数据事件。如果您使用的是高级事件选择器,请参阅 使用高级事件选择器更新数据事件设置,然后返回步骤 10 并继续。

    Data events(数据事件)中,选择 Edit(编辑)以更改数据事件日志记录设置。使用基本的事件选择器,您可以指定为 Amazon S3 存储桶、Amazon Lambda 函数、DynamoDBtable 或这些资源的组合记录数据事件。其他数据事件类型可通过高级事件选择器获得支持。默认情况下,跟踪不记录数据事件。记录数据事件将收取额外费用。有关更多信息,请参阅 数据事件。有关 CloudTrail 定价的信息,请参阅 Amazon CloudTrail 定价

    对于 Amazon S3 存储桶:

    1. 对于 Data event source(数据事件源),选择 S3

    2. 您可以选择记录 All current and future S3 buckets(所有当前和未来 S3 存储桶),也可以指定单个存储桶或函数。默认情况下,记录所有当前和未来 S3 存储桶的数据事件。

      注意

      保留默认 All current and future S3 buckets(所有当前和未来 S3 存储桶)选项会为您的 Amazon 账户中现有的所有存储桶和您完成跟踪创建后创建的任何存储桶启用数据事件日志记录。它也将为由 Amazon 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 Amazon 账户的存储桶执行的。

      如果跟踪仅应用于一个区域,则选择 All current and future S3 buckets(所有当前和未来 S3 存储桶)可为跟踪所在的区域中的所有存储桶和您后来在该区域中创建的任何存储桶启用数据事件日志记录。不会为您的 Amazon 账户的其他区域中的 Amazon S3 存储桶记录数据事件。

    3. 如果保留默认值 All current and future S3 buckets(所有当前和未来 S3 存储桶),则选择记录 Read(读取)事件、Write(写入)事件,还是记录两者。

    4. 要选择单个存储桶,请清空 All current and future S3 buckets(所有当前和未来 S3 存储桶)的 Read(读取)和Write(写入)复选框。在 Individual bucket selection(单个存储桶选择)中,浏览要在其上记录数据事件的存储桶。要查找特定存储桶,键入所需存储桶的存储桶前缀。您可以在此窗口中选择多个存储桶。选择 Add bucket(添加存储桶)以记录更多存储桶的数据事件。选择记录 Read(读取)事件(如 GetObject)、Write(写入)事件(如 PutObject)或同时记录两种事件。

      此设置优先于为各个存储桶配置的个别设置。例如,如果指定记录所有 S3 存储桶的 Read 事件,然后选择为数据事件日志记录添加一个特定存储桶,则所添加存储桶的 Read 已经是选中状态。您无法清除此选择。只能配置 Write 选项。

      要从日志记录中删除存储桶,请选择 X

  8. 要添加需要记录数据事件的其他数据类型,请选择 Add data event type(添加数据事件类型)。

  9. 对于 Lambda 函数:

    1. 对于 Data event source(数据事件源),选择 Lambda

    2. Lambda function(Lambda 函数)中,选择 All regions(所有区域)记录所有 Lambda 函数,或选择 Input function as ARN(输入函数作为 ARN)以记录特定函数上的数据事件。

      要记录 Amazon 账户中的所有 Lambda 函数的数据事件,请选择 Log all current and future functions(记录所有当前和未来函数)。此设置优先于为各个函数配置的个别设置。将记录所有函数,即便这些函数未显示。

      注意

      如果为所有区域创建了一个跟踪,则此选择将为您的 Amazon 账户中当前包含的所有函数以及您在创建跟踪后可能在任何区域中创建的任何 Lambda 函数启用数据事件日志记录。如果您正在为单个区域创建跟踪(通过使用 Amazon CLI 完成),则此选择将为您的 Amazon 账户中的该区域中当前包含的所有函数以及您在创建跟踪后可能在该区域中创建的任何 Lambda 函数启用数据事件日志记录。它不会为在其他区域中创建的 Lambda 函数启用数据事件日志记录。

      所有函数的日志记录数据事件也将为由 Amazon 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 Amazon 账户的函数执行的。

    3. 如果选择 Input function as ARN(输入函数作为 ARN),则输入 Lambda 函数的 ARN。

      注意

      如果您的账户中有 15000 个以上的 Lambda 函数,则在创建跟踪时,您无法在 CloudTrail 控制台中查看或选择所有函数。您仍可以选择该选项来记录所有函数,即使未显示这些函数也是如此。如果您要记录特定函数的数据事件,则可手动添加一个函数 (如果您知道其 ARN)。您也可以在控制台中完成跟踪的创建操作,然后使用 Amazon CLI 和 put-event-selectors 命令为特定 Lambda 函数配置数据事件日志记录。有关更多信息,请参阅 使用 Amazon CLI 管理跟踪

  10. 要添加需要记录数据事件的其他数据类型,请选择 Add data event type(添加数据事件类型)。

  11. 对于 DynamoDB 表:

    1. 对于 Data event source(数据事件源),选择 DynamoDB

    2. DynamoDB table selection(DynamoDB 表选择)中,选择 Browse(浏览)以选择一个表,或粘贴到您有权访问的 DynamoDB 表的 ARN 中。DynamoDB 表 ARN 采用以下格式:

      arn:partition:dynamodb:region:account_ID:table/table_name

      要添加另一个表,请选择 Add row(添加行),然后浏览到某个表或粘贴到您有权访问的表的 ARN 中。

  12. 如果您希望跟踪记录 CloudTrail 见解事件,则在 Insights events(见解事件)中选择 Edit(编辑)。

    Event type(事件类型)中,选择 Insights events(见解事件)。您必须记录 Write(写入)管理事件以记录见解事件。在 Insights events(Insights 事件)中,选择 API call rate(API 调用率)和/或 API error rate(API 错误率)。您必须记录 Write(写入)管理事件以记录见解事件。

    CloudTrail Insights 分析管理事件中的异常活动,并在检测到异常时记录事件。默认情况下,跟踪不记录见解事件。有关见解事件的更多信息,请参阅记录跟踪的见解事件。记录见解事件将收取额外费用。有关 CloudTrail 定价的信息,请参阅 Amazon CloudTrail 定价

    见解事件将传递到跟踪记录详细信息页面的 Storage location(存储位置)区域中指定的同一 S3 存储桶中名为 /CloudTrail-Insight 的不同文件夹。CloudTrail 会为您创建新前缀。例如,如果当前目标 S3 存储桶命名为 S3bucketName/AWSLogs/CloudTrail/,则带有新前缀的 S3 存储桶名称会命名为 S3bucketName/AWSLogs/CloudTrail-Insight/

  13. 当您更改完跟踪上的设置后,选择 Update trail(更新跟踪)。

使用高级事件选择器更新数据事件设置

  1. 在跟踪的详细信息页面上的 Data events(数据事件)中,选择 Edit(编辑)。

  2. 如果您尚未记录数据事件,请选择 Data events(数据事件)。

  3. 对于 Data event type(数据事件类型),选择要在其上记录数据事件的资源类型。

  4. 选择日志选择器模板。CloudTrail 包括用于记录资源类型的所有数据事件的预定义模板。要构建自定义日志选择器模板,请选择 Custom(自定义)。

    注意

    选择 S3 存储桶的预定义模板可为您的 Amazon 账户中现有的所有存储桶和您完成跟踪创建后创建的任何存储桶启用数据事件日志记录。它也将为由 Amazon 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 Amazon 账户的存储桶执行的。

    如果跟踪仅应用于一个区域,则选择记录所有 S3 存储桶的预定义模板可为跟踪所在的区域中的所有存储桶和您后来在该区域中创建的任何存储桶启用数据事件日志记录。不会为您的 Amazon 账户的其他区域中的 Amazon S3 存储桶记录数据事件。

    如果您正在为所有区域创建跟踪,则选择 Lambda 函数的预定义模板将为您的 Amazon 账户中当前包含的所有函数以及您在创建跟踪后可能在任何区域中创建的任何 Lambda 函数启用数据事件日志记录。如果您正在为单个区域创建跟踪(通过使用 Amazon CLI 完成),则此选择将为您的 Amazon 账户中的该区域中当前包含的所有函数以及您在创建跟踪后可能在该区域中创建的任何 Lambda 函数启用数据事件日志记录。它不会为在其他区域中创建的 Lambda 函数启用数据事件日志记录。

    所有函数的日志记录数据事件也将为由 Amazon 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 Amazon 账户的函数执行的。

  5. 如果您要应用预定义的日志选择器模板,并且不想添加其他数据事件资源类型,请选择 Save changes(保存更改),然后跳过此程序的最后一步。要应用自定义日志选择器模板,请继续执行下一步。

  6. 要创建自定义日志选择器模板,请在 Log selector template(日志选择器模板)下拉列表中,选择Custom(自定义)。

  7. 或者,为自定义日志选择器模板输入名称。

  8. Advanced event selectors(高级事件选择器)中,为您要收集其数据事件的特定资源构建表达式。

    1. 从下面的字段中选择。对于接受数组(多个值)的字段,CloudTrail 会在值之间添加 OR。

      • readOnly - readOnly 可以设置为 Equals(等于)值 truefalse。要记录 readwrite 两种事件,请不要添加 readOnly 选择器。

      • eventName - eventName 可以使用任何运算符。您可以使用它来包含或排除记录到 CloudTrail 的任何数据事件,例如 PutBucketGetSnapshotBlock。您可以为此字段指定多个值,以逗号分隔。

      • resources.type - 在Amazon Web Services Management Console中,不会出现此字段,因为它已由您从 Data event type(数据事件类型)下拉列表中选择的数据事件类型填充。在 Amazon CLI 和开发工具包中,resources.type 只能使用 Equals(等于)运算符,其值可以是以下值之一:

        • AWS::S3::Object

        • AWS::Lambda::Function

        • AWS::DynamoDB::Table

        • AWS::S3Outposts::Object

        • AWS::ManagedBlockchain::Node

        • AWS::S3ObjectLambda::AccessPoint

        • AWS::EC2::Snapshot

        • AWS::S3::AccessPoint

        • AWS::DynamoDB::Stream

        • AWS::Glue::Table

      • resources.ARN - 您可以将任意运算符与 resources.ARN 共用,但是如果您使用 Equals(等于)或 NotEquals(不等于),则该值必须与您在模板中指定为 resources.type 值的类型的有效资源的 ARN 完全匹配。

        例如,当 resources.type 等于 AWS::S3::Object 时,ARN 必须采用以下格式之一。要记录特定 S3 存储桶中所有对象的所有数据事件,请使用 StartsWith 运算符,并且仅包含存储桶 ARN 作为匹配值。刻意使用尾部斜杠;切勿排除它。

        arn:partition:s3:::bucket_name/ arn:partition:s3:::bucket_name/object_or_file_name/

        resources.type 等于 AWS::Lambda::Function,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:lambda:region:account_ID:function:function_name

        resources.type 等于 AWS::DynamoDB::Table,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:dynamodb:region:account_ID:table/table_name

        resources.type 等于 AWS::S3Outposts::Object,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:s3-outposts:region:account_ID:object_path

        resources.type 等于 AWS::ManagedBlockchain::Node,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:managedblockchain:region:account_ID:nodes/node_ID

        resources.type 等于 AWS::S3ObjectLambda::AccessPoint,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name

        resources.type 等于 AWS::EC2::Snapshot,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:ec2:region::snapshot/snapshot_ID

        resources.type 等于 AWS::S3::AccessPoint,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式之一。要记录 S3 接入点中的所有对象的事件,建议您仅使用接入点 ARN,而不要包含对象路径,并且使用 StartsWithNotStartsWith 运算符。

        arn:partition:s3:region:account_ID:accesspoint/access_point_name arn:partition:s3:region:account_ID:accesspoint/access_point_name/object/object_path

        resources.type 等于 AWS::DynamoDB::Stream,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:dynamodb:region:account_ID:table/table_name/stream/date_time

        resources.type 等于 AWS::Glue::Table,并且运算符设置为 Equals(等于)或 NotEquals(不等于)时,ARN 必须采用以下格式:

        arn:partition:glue:region:account_ID:table/database_name/table_name

      有关数据事件资源的 ARN 格式的更多信息,请参阅 Amazon Identity and Access Management用户指南中的操作、资源和条件键

    2. 对于每个字段,请选择 + Conditions(+ 条件)以根据需要添加任意数量的条件,所有条件总共可有最多 500 个指定值。例如,要从记录到跟踪的数据事件中排除两个 S3 存储桶的数据事件,可以将字段设置为 resources.ARN,设置 NotEquals 运算符,然后粘贴在 S3 存储桶 ARN 中,或浏览到不想为其记录事件的 S3 存储桶。

      要添加第二个 S3 存储桶,请选择 + Conditions(+ 条件),然后重复上述说明,在 ARN 中粘贴或浏览到不同的存储桶。

      注意

      对于跟踪上的所有选择器,最多可以有 500 个值。这包括选择器的多个值的数组,例如 eventName。如果所有选择器均为单个值,则最多可以向选择器添加 500 个条件。

      如果您的账户中有 15000 个以上的 Lambda 函数,则在创建跟踪时,您无法在 CloudTrail 控制台中查看或选择所有函数。您仍可使用预定义选择器模板记录所有函数,即使这些函数未显示出来也是如此。如果您要记录特定函数的数据事件,则可手动添加一个函数 (如果您知道其 ARN)。您也可以在控制台中完成跟踪的创建操作,然后使用 Amazon CLI 和 put-event-selectors 命令为特定 Lambda 函数配置数据事件日志记录。有关更多信息,请参阅 使用 Amazon CLI 管理跟踪

    3. 根据需要,选择 + Field(+ 字段)以添加其他字段。为了避免错误,请不要为字段设置冲突或重复的值。例如,不要在一个选择器中将 ARN 指定为等于某个值,然后在另一个选择器中指定 ARN 不等于相同的值。

    4. 选择 Next(下一步)以保存对自定义选择器模板的更改。不要选择其他日志选择器模板,或离开此页面,否则您的自定义选择器将会丢失。

  9. 要添加需要记录数据事件的其他数据类型,请选择 Add data event type(添加数据事件类型)。重复步骤 3 至此步骤,为数据事件类型配置高级事件选择器。

  10. 在您选择 Next(下一步)后,在 Step 2: Choose log events(步骤 2:选择日志事件)中,审核您选择的日志选择器模板选项。选择 Edit(编辑)返回并进行更改。

  11. 要为跟踪配置见解事件和其他设置,请返回本主题中前面的程序 更新跟踪