AWS CloudTrail
用户指南 (Version 1.0)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

将事件发送到 CloudWatch Logs

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

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

  • 创建新的跟踪或指定现有的跟踪。有关更多信息,请参阅 使用控制台创建跟踪

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

  • 指定 IAM 角色。

  • 附加一个角色策略或者使用默认角色策略。

使用控制台配置 CloudWatch Logs 监控

您可以使用 AWS 管理控制台 配置您的跟踪,以将事件发送到 CloudWatch Logs 进行监控。

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

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

创建或指定日志组

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

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

    注意

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

  3. 对于 CloudWatch Logs,选择 Configure

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

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

  6. 选择 Allow 以授权 CloudTrail 创建 CloudWatch Logs 日志流并传送事件。

指定 IAM 角色

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

指定角色

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

    1. 要验证角色,请转到 https://console.amazonaws.cn/iam/ 上的 AWS Identity and Access Management 控制台。

    2. 选择 Roles,然后选择 CloudTrail_CloudWatchLogs_Role

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

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

在 CloudWatch 控制台中查看事件

在配置您的跟踪以将事件发送到您的 CloudWatch Logs 日志组后,您可以在 CloudWatch 控制台中查看事件。CloudTrail 通常会在 API 调用后的几分钟内将事件传送到您的日志组。

在 CloudWatch 控制台中查看事件

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs

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

  4. 选择日志流名称。

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

注意

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

使用 AWS CLI 配置 CloudWatch Logs 监控

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

创建日志组

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

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

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

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

    Copy
    aws logs describe-log-groups

创建角色

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

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

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

运行下面的命令以便为 CloudTrail 创建带 AssumeRole 权限的角色。

Copy
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 事件传送到该日志流。

Copy
{ "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 的文件中。

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

Copy
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 命令,用日志组和角色信息更新跟踪。

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

有关 AWS CLI 命令的更多信息,请参阅 AWS CloudTrail 命令行参考

限制

由于 CloudWatch Logs 具有 256KB 的事件大小限制,CloudTrail 不会将大于 256KB 的事件发送到 CloudWatch Logs。例如,能够启动 500 个实例的 EC2 RunInstances API 的调用将会超过 256KB 的大小限制。CloudTrail 不会将此事件发送到 CloudWatch Logs。为确保 CloudTrail 将事件发送到 CloudWatch Logs,请将较大的请求拆分为较小的批次。