将事件发送到 CloudWatch Logs
在配置您的跟踪以将事件发送到 CloudWatch Logs 时,CloudTrail 只发送符合您跟踪记录设置的事件。例如,如果您将跟踪配置为仅记录数据事件,则您的跟踪仅将数据事件发送到您的 CloudWatch Logs 日志组。CloudTrail 支持将数据、Insights 和管理事件发送到 CloudWatch Logs。有关更多信息,请参阅 使用 CloudTrail 日志文件。
注意
只有管理账户才能使用控制台为组织跟踪配置 CloudWatch Logs 日志组。委托管理员可以使用 Amazon CLI 或 CloudTrail CreateTrail 或者 UpdateTrail API 操作配置 CloudWatch Logs 日志组。
将事件发送到 CloudWatch Logs 日志组:
-
请确保您有足够的权限来创建或指定 IAM 角色。有关更多信息,请参阅 授予在 CloudTrail 控制台上查看和配置 Amazon CloudWatch Logs 信息的权限。
-
如果您使用 Amazon CLI 来配置 CloudWatch Logs 日志组,请确保您有足够的权限在指定的日志组中创建 CloudWatch Logs 日志流并将 CloudTrail 事件传输到该日志流。有关更多信息,请参阅 创建策略文档。
-
创建新的跟踪或指定现有的跟踪。有关更多信息,请参阅 使用控制台创建和更新跟踪。
-
创建一个日志组或指定一个现有日志组。
-
指定 IAM 角色。如果您要修改用于组织跟踪的现有 IAM 角色,则必须手动更新策略,以允许组织跟踪的日志记录。有关更多信息,请参阅此策略示例和为组织创建跟踪。
-
附加一个角色策略或者使用默认角色策略。
目录
通过控制台配置 CloudWatch Logs 监控
您可以使用 Amazon Web Services 管理控制台 配置跟踪以将事件发送到 CloudWatch Logs 进行监控。
创建一个日志组或指定一个现有日志组
CloudTrail 使用 CloudWatch Logs 日志组作为日志事件的传输终端节点。可创建一个日志组或者指定一个现有日志组。
为现有跟踪创建或指定日志组
-
确保您以具有足够权限的管理用户或角色登录以配置 CloudWatch Logs 集成。有关更多信息,请参阅 授予在 CloudTrail 控制台上查看和配置 Amazon CloudWatch Logs 信息的权限。
注意
只有管理账户才能使用控制台为组织跟踪配置 CloudWatch Logs 日志组。委托管理员可以使用 Amazon CLI 或 CloudTrail
CreateTrail或者UpdateTrailAPI 操作配置 CloudWatch Logs 日志组。 访问 https://console.aws.amazon.com/cloudtrail/
,打开 CloudTrail 控制台。 -
选择跟踪名称。如果您选择多区域跟踪,则将重定向到创建该跟踪的区域。可以在跟踪所在的区域创建一个日志组或者选择一个现有日志组。
注意
多区域跟踪会将您的 Amazon Web Services 账户中所有已启用区域中的日志文件发送到您指定的 CloudWatch Logs 日志组。
-
在 CloudWatch Logs 中,选择Edit(编辑)。
-
在 CloudWatch Logs 下选择启用。
-
在日志组名称下,选择新建创建新的日志组,或选择现有使用现有的日志组。如果选择 New(新建),CloudTrail 会为您指定新日志组的名称,您也可以键入名称。有关命名的更多信息,请参阅 CloudTrail 的 CloudWatch 日志组和日志流命名。
-
如果选择 Existing(现有),则从下拉列表中选择一个日志组。
-
在角色名称下,选择新建创建新的 IAM 角色,以获得将日志发送到 CloudWatch Logs 的权限。选择 Existing(现有)以从下拉列表中选择一个现有 IAM 角色。展开 Policy document(策略文档)时,将显示新角色或现有角色的策略语句。有关该角色的更多信息,请参阅与 CloudTrail 使用 CloudWatch Logs 进行监控对应的角色策略文档。
注意
在您配置跟踪时,可以选择属于另一个账户的 S3 存储桶和 SNS 主题。但是,如果您希望 CloudTrail 将事件传送至 CloudWatch Logs 日志组,则必须选择当前账户中的日志组。
-
选择保存更改。
指定 IAM 角色
您可以为 CloudTrail 指定要代入的角色以将事件传输到日志流。
指定角色
-
默认情况下,系统将为您指定
CloudTrail_CloudWatchLogs_Role。默认角色策略包含在指定的日志组中创建 CloudWatch Logs 日志流以及将 CloudTrail 事件传送到该日志流所需的权限。-
要验证角色,请通过以下网址转到 Amazon Identity and Access Management 控制台:https://console.aws.amazon.com/iam
。 -
选择 Roles,然后选择 CloudTrail_CloudWatchLogs_Role。
-
在权限选项卡中,展开策略查看其内容。
-
-
您可指定另一个角色,但如果需要使用现有角色将事件发送到 CloudWatch Logs,则必须将所需的角色策略附加到现有角色。有关更多信息,请参阅 与 CloudTrail 使用 CloudWatch Logs 进行监控对应的角色策略文档。
在 CloudWatch 控制台中查看事件
在配置您的跟踪以将事件发送到您的 CloudWatch Logs 日志组后,您可以在 CloudWatch 控制台中查看事件。CloudTrail 通常会在 API 调用后平均大约 5 分钟内将事件传输到日志组。此时间并不能得到保证。有关更多信息,请参阅 Amazon CloudTrail 服务等级协议
在 CloudWatch 控制台中查看事件
通过 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在左侧导航窗格中,从日志下选择日志组。
-
选择为您的跟踪指定的日志组。
-
选择要查看的日志流。
-
要查看您的跟踪记录的事件的详细信息,请选择一个事件。
注意
CloudWatch 控制台中的 Time (UTC)(时间 (UTC))列会显示将事件传送到您的日志组的时间。要查看 CloudTrail 记录的事件的实际时间,请查看 eventTime 字段。
通过 Amazon CLI 配置 CloudWatch Logs 监控
您可以使用 Amazon CLI 配置 CloudTrail 以将事件发送到 CloudWatch Logs 进行监控。
创建日志组
-
如果您没有日志组,请使用 CloudWatch Logs
create-log-group命令创建一个 CloudWatch Logs 日志组作为日志事件的传输终端节点。aws logs create-log-group --log-group-namename下面的示例创建一个名为
CloudTrail/logs的日志组:aws logs create-log-group --log-group-name CloudTrail/logs -
检索日志组 Amazon Resource Name(ARN)。
aws logs describe-log-groups
创建角色
为 CloudTrail 创建一个角色,以使其能够将事件发送到 CloudWatch Logs 日志组。IAM create-role 命令接受两个参数:角色名称和代入角色策略文档 (JSON 格式) 的文件路径。您使用的策略文档可向 CloudTrail 提供 AssumeRole 权限。create-role 命令可创建具有所需权限的角色。
要创建包含此策略文档的 JSON 文件,请打开文本编辑器并将以下策略内容保存到名为 assume_role_policy_document.json 的文件中。
运行下面的命令以便为 CloudTrail 创建带 AssumeRole 权限的角色。
aws iam create-role --role-namerole_name--assume-role-policy-document file://<path to assume_role_policy_document>.json
待命令完成后,记下输出中的角色 ARN。
创建策略文档
为 CloudTrail 创建下面的角色策略文档。此文档将向 CloudTrail 授予必要的权限,以在指定的日志组中创建 CloudWatch Logs 日志流并将 CloudTrail 事件传输到该日志流。
将此策略文档保存到名为 role-policy-document.json 的文件中。
如果您要创建可能用于组织跟踪记录的策略,则需要对其进行稍微不同的配置。例如,以下策略授予 CloudTrail 必需的权限,以在您指定的日志组中创建 CloudWatch Logs 日志流,并将 CloudTrail 事件传输到 Amazon 账户 111111111111 的跟踪记录的以及在 111111111111 账户中创建且应用于 ID 为 o-exampleorgid 的 Amazon Organizations 组织的组织跟踪记录的该日志流:
有关组织跟踪记录的更多信息,请参阅为组织创建跟踪。
运行以下命令以将策略应用于角色。
aws iam put-role-policy --role-namerole_name--policy-name cloudtrail-policy --policy-document file://<path to role-policy-document>.json
更新跟踪
通过使用 CloudTrail update-trail 命令,用日志组和角色信息更新跟踪。
aws cloudtrail update-trail --nametrail_name--cloud-watch-logs-log-group-arnlog_group_arn--cloud-watch-logs-role-arnrole_arn
有关 Amazon CLI 命令的更多信息,请参阅 Amazon CloudTrail 命令行参考。
限制
CloudWatch Logs 和 EventBridge 各允许最大 256KB 的事件大小。尽管大多数服务事件的大小不超过 256 KB,但某些服务仍会有较大的事件。CloudTrail 不会将这些事件发送到 CloudWatch Logs 或 EventBridge。
从 CloudTrail 事件版本 1.05 开始,事件的大小最大值为 256 KB。这既有助于防范恶意行为者的利用,又能允许其他 Amazon 服务使用事件,例如 CloudWatch Logs 和 EventBridge。