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

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

将事件发送到 CloudWatch Logs

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

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

使用控制台配置 CloudWatch Logs 监控

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

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

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

创建或指定日志组

  1. 确保您以具有足够权限的管理 IAM 用户或角色登录以配置 CloudWatch Logs 集成。有关更多信息,请参阅授予在 CloudTrail 控制台中查看和配置 Amazon CloudWatch 日志信息的权限

  2. 从打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/

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

    注意

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

  4. 适用于CloudWatch Logs (CloudWatch 日志)中,选择配置

  5. 对于 New or existing log group,键入日志组名称,然后选择 Continue。有关更多信息,请参阅CloudWatch Logs 日志组和日志流命名

  6. 对于 IAM 角色,请选择现有角色或创建一个角色。如果您要创建 IAM 角色,请键入角色名称。

  7. 选择Allow以授予 CloudTrail 创建 CloudWatch Logs 日志流和传输事件的权限。

指定 IAM 角色

您可以为 CloudTrail 指定要代入的角色以将事件传送到日志流。

指定角色

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

    注意

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

    1. 要验证角色,请转到Amazon Identity and Access Management控制台位于https://console.aws.amazon.com/iam/

    2. 选择 Roles,然后选择 CloudTrail_CloudWatchLogs_Role

    3. 要查看该角色策略的内容,请选择 View Policy Document

  2. 您可指定另一个角色,但如果需要使用现有角色将事件发送到 CloudWatch Logs,则必须将所需的角色策略附加到现有角色。有关更多信息,请参阅CloudTrail 用于使用 CloudWatch Logs 进行监控的角色策略文档

在 CloudWatch 控制台中查看事件

在配置您的跟踪以将事件发送到 CloudWatch Logs 日志组后,您可以在 CloudWatch 控制台中查看事件。CloudTrail 通常会在 API 调用后的 15 分钟内将事件传送到您的日志组。此时间并不能得到保证。查看Amazon CloudTrail服务等级协议了解更多信息。

在 CloudWatch 控制台中查看事件

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 选择 Logs (日志)

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

  4. 选择日志流名称。

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

注意

这些区域有:时间 (UTC)列会显示 CloudWatch 事件传送到您的日志组的时间。要查看 CloudTrail 记录事件的实际时间,请查看eventTime字段。

配置 CloudWatch Logs 监控Amazon CLI

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

创建日志组

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

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

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

    aws logs create-log-group --log-group-name CloudTrail/logs
  2. 检索日志组亚马逊资源名称 (ARN)。

    aws logs describe-log-groups

创建角色

为 CloudTrail 创建一个角色,以使其能够将事件发送到 CloudWatch Logs 日志组。IAMcreate-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 Logs 日志流并将 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 事件传输到该日志流所需的权限。Amazon帐户 11111111111111 以及在应用于Amazon Organizations组织 ID 为o 模式

{ "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

更新跟踪

通过使用 CloudTrail (日志组) 和角色信息更新跟踪update-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 命令行参考

Limitation

每个 CloudWatch Logs 和 CloudWatch Events允许最大事件大小为 256 KB。尽管大多数服务事件的最大大小为 256 KB,但某些服务仍有较大的事件。CloudTrail 不会将这些事件发送到 CloudWatch Logs 或云监视事件。

从 CloudTrail 事件版本 1.05 开始,事件的最大大小为 256 KB。这是为了帮助防止恶意行为者的利用,并允许其他Amazon服务,例如 CloudWatch Logs 和云观看事件。