将事件发送到 CloudWatch 日志 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将事件发送到 CloudWatch 日志

当您将跟踪配置为向 CloudWatch Logs 发送事件时,仅 CloudTrail 发送与您的跟踪设置相匹配的事件。例如,如果您将跟踪配置为仅记录数据事件,则您的跟踪仅将数据事件发送到您的 CloudWatch 日志日志组。 CloudTrail 支持向 CloudWatch 日志发送数据、见解和管理事件。有关更多信息,请参阅 处理 CloudTrail 日志文件

注意

只有管理账户才能使用控制台为组织跟踪配置 CloudWatch 日志组。授权的管理员可以使用 Amazon CLI 或 CloudTrail CreateTrailUpdateTrail API 操作配置 CloudWatch 日志组。

要将事件发送到 CloudWatch 日志日志组,请执行以下操作:

使用控制台配置 CloudWatch 日志监控

您可以使用来配置您的跟踪 Amazon Web Services Management Console ,以便将事件发送到 CloudWatch 日志进行监控。

创建一个日志组或指定一个现有日志组

CloudTrail 使用 CloudWatch 日志日志组作为日志事件的传输终端节点。可创建一个日志组或者指定一个现有日志组。

为现有跟踪创建或指定日志组
  1. 请务必使用具有足够权限的管理用户或角色登录,以配置 CloudWatch 日志集成。有关更多信息,请参阅 授予在 CloudTrail 控制台上查看和配置 Amazon CloudWatch 日志信息的权限

    注意

    只有管理账户才能使用控制台为组织跟踪配置 CloudWatch 日志组。授权的管理员可以使用 Amazon CLI 或 CloudTrail CreateTrailUpdateTrail API 操作配置 CloudWatch 日志组。

  2. 打开 CloudTrail 控制台,网址为 https://console.aws.amazon.com/cloudtrail/

  3. 选择跟踪名称。如果您选择一个应用于所有区域的跟踪,则您将重定向到创建此跟踪的区域。可以在跟踪所在的区域创建一个日志组或者选择一个现有日志组。

    注意

    适用于所有区域的跟踪会将所有区域的日志文件发送到您指定的 CloudWatch 日志日志组。

  4. CloudWatch 日志中,选择编辑

  5. 对于CloudWatch 日志,选择启用

  6. 日志组名称下,选择新建创建新的日志组,或选择现有使用现有的日志组。如果选择 “新建”,则会为您 CloudTrail 指定新日志组的名称,也可以键入名称。有关命名的更多信息,请参阅 CloudWatch 的日志组和日志流命名 CloudTrail

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

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

    注意

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

  9. 选择保存更改

指定 IAM 角色

您可以指定一个角色 CloudTrail 来代入将事件传送到日志流。

指定角色
  1. 默认情况下,系统将为您指定 CloudTrail_CloudWatchLogs_Role。默认角色策略具有在您指定的 CloudWatch 日志组中创建日志日志流并将 CloudTrail 事件传送到该日志流所需的权限。

    注意

    如果要将此角色用于组织跟踪的日志组,则必须在创建角色后手动修改策略。有关更多信息,请参阅此策略示例为组织创建跟踪

    1. 要验证角色,请访问 Amazon Identity and Access Management 控制台,网址为 https://console.aws.amazon.com/iam/

    2. 选择 “角色”,然后选择 CloudTrail_ CloudWatchLogs _Rol e。

    3. 权限选项卡中,展开策略查看其内容。

  2. 您可以指定其他角色,但是如果要使用该角色向 CloudWatch 日志发送事件,则必须将所需的角色策略附加到现有角色。有关更多信息,请参阅 使用 CloudWatch 日志 CloudTrail 进行监控的角色策略文档

在 CloudWatch 控制台中查看事件

将跟踪配置为将事件发送到 CloudWatch 日志日志组后,您可以在 CloudWatch 控制台中查看事件。 CloudTrail 通常在 API 调用后的平均大约 5 分钟内将事件传送到您的日志组。此时间并不能得到保证。有关更多信息,请参阅 Amazon CloudTrail 服务等级协议

在 CloudWatch 控制台中查看事件
  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 在左侧导航窗格中,从日志下选择日志组

  3. 选择为您的跟踪指定的日志组。

  4. 选择要查看的日志流。

  5. 要查看您的跟踪记录的事件的详细信息,请选择一个事件。

注意

CloudWatch 控制台中的时间 (UTC) 列显示事件何时传送到您的日志组。要查看记录事件的实际时间 CloudTrail,请参阅字eventTime段。

使用配置 CloudWatch 日志监控 Amazon CLI

您可以使用配置 Amazon CLI 将事件发送 CloudTrail 到 CloudWatch 日志进行监控。

创建日志组

  1. 如果您没有现有的日志组,请使用 Logs create-log-group 命令创建一个 CloudWatch 日志日志组作为日志事件的传输终端节点。 CloudWatch

    aws logs create-log-group --log-group-name name

    下面的示例创建一个名为 CloudTrail/logs 的日志组:

    aws logs create-log-group --log-group-name CloudTrail/logs
  2. 检索日志组 Amazon Resource Name(ARN)。

    aws logs describe-log-groups

创建角色

为其创建一个角色 CloudTrail ,使其能够将事件发送到 CloudWatch 日志日志组。IAM create-role 命令接受两个参数:角色名称和代入角色策略文档 (JSON 格式) 的文件路径。您使用的策略文档AssumeRole授予权限 CloudTrail。create-role 命令可创建具有所需权限的角色。

要创建包含此策略文档的 JSON 文件,请打开文本编辑器并将以下策略内容保存到名为 assume_role_policy_document.json 的文件中。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

运行以下命令来创建具有AssumeRole权限的角色 CloudTrail。

aws iam create-role --role-name role_name --assume-role-policy-document file://<path to assume_role_policy_document>.json

待命令完成后,记下输出中的角色 ARN。

创建策略文档

为创建以下角色策略文档 CloudTrail。本文档授予 CloudTrail 在您指定的 CloudWatch 日志组中创建日志日志流以及向该日志流传送 CloudTrail 事件所需的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailCreateLogStream2014110", "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:region:accountID:log-group:log_group_name:log-stream:accountID_CloudTrail_region*" ] }, { "Sid": "AWSCloudTrailPutLogEvents20141101", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:accountID:log-group:log_group_name:log-stream:accountID_CloudTrail_region*" ] } ] }

将此策略文档保存到名为 role-policy-document.json 的文件中。

如果您要创建可能用于组织跟踪记录的策略,则需要对其进行稍微不同的配置。例如,以下策略授予 CloudTrail 在您指定的日志组中创建 CloudWatch 日志日志流以及向该日志流传送 CloudTrail 事件所需的权限,这些跟踪包括账户 111111111111 中的两个跟踪和在 111111111111 Amazon 账户中创建的应用于 o-exampleorgid 的组织的组织跟踪: Amazon Organizations

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailCreateLogStream20141101", "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*", "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:o-exampleorgid_*" ] }, { "Sid": "AWSCloudTrailPutLogEvents20141101", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:111111111111_CloudTrail_us-east-2*", "arn:aws:logs:us-east-2:111111111111:log-group:CloudTrail/DefaultLogGroupTest:log-stream:o-exampleorgid_*" ] } ] }

有关组织跟踪记录的更多信息,请参阅为组织创建跟踪

运行以下命令以将策略应用于角色。

aws iam put-role-policy --role-name role_name --policy-name cloudtrail-policy --policy-document file://<path to role-policy-document>.json

更新跟踪

使用 CloudTrailupdate-trail命令使用日志组和角色信息更新跟踪。

aws cloudtrail update-trail --name trail_name --cloud-watch-logs-log-group-arn log_group_arn --cloud-watch-logs-role-arn role_arn

有关 Amazon CLI 命令的更多信息,请参阅《Amazon CloudTrail 命令行参考》。

限制

CloudWatch 日志和 EventBridge 每个日志允许的最大事件大小为 256 KB。尽管大多数服务事件的最大大小为 256 KB,但有些服务的事件仍然更大。 CloudTrail 不会将这些事件发送到 CloudWatch 日志或 EventBridge。

从 CloudTrail 事件版本 1.05 开始,事件的最大大小为 256 KB。这是为了帮助防止恶意行为者利用这些漏洞,并允许其他 Amazon 服务(例如 L CloudWatch ogs 和)使用事件 EventBridge。