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

将事件发送到 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 Logs 信息的权限

  2. 访问 https://console.aws.amazon.com/cloudtrail/,打开 CloudTrail 控制台。

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

    注意

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

  4. 对于 CloudWatch Logs,选择 Configure(配置)。

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

  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. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 选择 Logs (日志)

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

  4. 选择日志流名称。

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

注意

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

通过 Amazon CLI 配置 CloudWatch Logs 监控

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

创建日志组

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

    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 日志组。IAM create-role 命令接受两个参数:角色名称和代入角色策略文档 (JSON 格式) 的文件路径。您使用的策略文档可向 CloudTrail 提供 AssumeRole 权限。create-role 命令可创建具有所需权限的角色。

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

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

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

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 Logs 日志流,并将 CloudTrail 事件传输到 Amazon 账户 111111111111 的跟踪的以及在 111111111111 账户中创建且应用于 ID 为 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

更新跟踪

通过使用 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 命令行参考

限制

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

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