本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
记录跟踪记录的见解事件
Amazon CloudTrail 见解通过持续分析 CloudTrail 管理事件,帮助Amazon用户识别和应对与 API 调用和 API 错误率关联的异常活动。 CloudTrail 见解分析您的 API 调用量和 API 错误率的正常模式,又称为基准,当调用量或错误率超出正常模式范围时生成 Insights 事件。针对 write
管理 API 生成的 API 调用量的 Insights 事件,以及针对 read
和 write
管理 API 生成的 API 错误率的 Insights 事件。
注意
要记录 API 调用量上的 Insights 事件,跟踪必须记录write
管理事件。要按照 API 错误率记录 Insights 事件,跟踪必须记录read
或write
管理事件。
如果已启用 CloudTrail Insights 并 CloudTrail 检测到异常活动,见解事件将被传递到跟踪的目标 S3 存储桶。在 CloudTrail 控制台上查看见解事件时,您还可以查看见解的类型和事件时间段。与 CloudTrail 跟踪中捕获的其它类型的事件不同,仅在 CloudTrail 检测到账户的 API 使用情况的变化与账户的典型使用模式有显著差异时,才会记录 Insights 事件。
CloudTrail 见解持续地监控 CloudTrail 管理事件,并使用数学模型来确定账户的 API 事件和错误率活动的正常级别。 CloudTrail 见解可识别正常模式之外的行为,生成见解事件,并将这些事件传送到为跟踪记录选择的 S3 存储桶中的/CloudTrail-Insight
文件夹。您还可以访问和查看表中的见解事件 CloudTrail。Amazon Web Services Management Console有关如何在控制台中以及使用 Amazon CLI 访问和查看见解事件的信息,请参阅本指南中的 查看 CloudTrail 见解事件。
默认情况下,跟踪记录将记录管理事件,但不包含数据事件或见解事件。数据事件和见解事件需额外支付费用。有关更多信息,请参阅 Amazon CloudTrail 定价
当事件发生在您的账户中时, CloudTrail 评估该事件是否与您的跟踪记录设置匹配。只有与您的跟踪设置匹配的事件才会传送到 Simple Storage(Amazon S3)存储桶和 A CloudWatch mazon Logs
目录
了解 CloudTrail 见解
CloudTrail 见解可以通过发出 Insights 事件,帮助您检测Amazon账户中的异常 API 量或错误率活动。 CloudTrail 见解分析您的 API 调用量和 API 错误率的正常模式,又称为基准,当调用量或错误率超出正常模式范围时生成 Insights 事件。针对 write
管理 API 生成的 API 调用量的 Insights 事件,以及针对 read
和 write
管理 API 生成的 API 错误率的 Insights 事件。
首次对跟踪启用 CloudTrail Insights(见解)后,如果检测到异常活动,则可能需要 36 小时才能传递第一个见解事件。 CloudTrail CloudTrail 见解分析在单个区域(而非全局)发生的管理事件。在其支持性管理事件的相同区域中生成 CloudTrail Insights 事件。
下图显示了一个见解事件的示例。通过从 Dashboard (控制面板) 或 Insights (见解) 页面中选择见解事件名称,可以打开见解事件的详细信息页面。
如果对跟踪禁用 CloudTrail Insights 或对跟踪停止日志记录(禁用 CloudTrail 见解),则可能已将见解事件存储在目标 S3 存储桶中或显示在控制台的 Insights(见解)页面上,该日期来自您启用见解的较早时间。
筛选条件列
左列列出了与主题 API 相关的见解事件,并且具有相同的见解事件类型。通过该列,您可以选择希望了解其详细信息的见解事件。在此列中选择事件时,该事件将在 Insights graph(见解图表)选项卡上的图形中突出显示。默认情况下, CloudTrail 应用一个筛选条件将 events(CloudTrail事件)选项卡限制为关于在触发见解事件的异常活动期间调用的特定 API 的事件。要显示在异常活动期间调用的所有 CloudTrail事件,包括与见解事件无关的事件,请关闭筛选条件。
Insights graph(见解图表)选项卡
在 Insights graph(Insights 图)选项卡上,Insights 事件的详细信息页面显示在记录一个或多个 Insights 事件之前和之后的一段时间内发生的 API 调用量或错误率的图表。在图表中,见解事件以垂直条突出显示,条的宽度显示见解事件的开始和结束时间。
在此示例中,突出显示的垂直带显示了账户中异常数量的 Amazon Systems Manager SendCommand
API 调用。在突出显示的区域中,由于SendCommand
调用数量上升到该账户每分钟 0.0442 次调用的基准平均值之上,因此在检测到异常活动时 CloudTrail 记录了一个见解事件。已记录在上午 5:50 至 5:55 之间的 5 分钟内多达 15 次 SendCommand
调用的 Insights 事件。每分钟对该 API 的调用大约比该账户预期的次数多两次。在此示例中,图表的时间跨度为三小时:上午 4:30。太平洋时间 2021 年 7 月 15 日 上午 4:30 至上午 7:30。此事件的开始时间为 2021 年 7 月 15 日 上午 6:00,结束时间为两分钟后。未突出显示的结束 Insights 事件显示,该异常活动在上午 6:16 左右结束。
按照见解事件开始前七天的时间计算基准。虽然基准持续时间的值( CloudTrail 分析 API 上的正常活动的时间段)大约为七天,但会将基准持续时间 CloudTrail 舍入为整数天,因此确切的基准持续时间可能会有所不同。

您可以使用工具栏上的 Zoom(缩放)命令放大结束 Insights 事件,显示开始和结束时间。在此示例中,选择 Zoom(缩放),然后在突出显示的 Insights 事件的一边短距离拖动Zoom(缩放)光标,展开 Insights 事件并显示更多时间线详细信息。

要查看用来分析以确定发生异常活动 CloudTrail 的事件,请打开 events(CloudTrail 事件)选项卡。在此示例中, CloudTrail 分析了 12 个事件,其中四个事件触发了 Insights 事件。

以下屏幕截图显示 API 错误率 Insights 事件的 Insights graph(Insights 图)选项卡。突出显示的区域显示,由于 GetRolePolicy
IAM API 调用上发生的 NoSuchEntityException
错误数量超出此 API 调用每分钟 0.0017 次 NoSuchEntityException
错误的基线平均值,在洞察期间记录了一个平均每分钟出现 18 次错误的 Insights 事件。在此示例中,触发 Insights 事件 CloudTrail 的事件数量与一分钟内出现 18 个NoSuchEntityException
错误的 Insights 平均值相匹配。与 API 调用率图不同的是,API 错误率图显示为两条不同颜色的线:一条线衡量导致异常错误数量的 IAM API 调用(GetRolePolicy
),另一条线衡量记录异常活动的错误(NoSuchEntityException
)。

Attributions(属性)选项卡
Attributions(归因)选项卡显示有关见解事件的以下信息。Attributions(归因)选项卡上的信息可以帮助您识别 Insights 活动的原因和来源。展开排名较高的基准区域,将正常时段内的用户身份、用户代理和错误代码活动与 Insights 活动期间归因的活动进行比较。Top baseline user identity ARNs(排名靠前的基准用户身份 ARN)、Top baseline user agents(排名靠前的基准用户代理)和 Top baseline error codes(排名靠前的基准错误代码)中仅显示基线平均值 – 在 Insights 事件开始时间前大约七天内按用户身份、用户代理记录的或导致错误代码的 API 事件的历史平均值。

Attributions(归因)选项卡仅显示错误率 Insights 事件中排名靠前的用户身份 ARN 和用户代理,如下图所示。错误率 Insights 事件不需要顶级错误代码。

-
Top user identity ARNs(最高的用户身份 ARN)- 此表格显示了在异常活动期间和基准期对 API 调用作出贡献的最多前五名的 Amazon 用户或 IAM 角色(用户身份),按所贡献的 API 调用平均数量的降序排列。引起异常活动的活动总数的平均数百分比显示在括号中。如果超过五个用户身份 ARN 涉及了异常活动,则其活动将汇总在 Other(其他)行中。
-
Top user agents(最高的用户代理)- 此表格显示了用户身份在异常活动期间和基准期对 API 调用作出贡献的最多前五名的 Amazon 工具,按所贡献的 API 调用平均数量的降序排列。这些工具包括 Amazon Web Services Management Console、Amazon CLI 或 Amazon 软件开发工具包。例如,名为
ec2.amazonaws.com
的用户代理表示 Amazon EC2 控制台是用于调用 API 的工具之一。引起异常活动的活动总数的平均数百分比显示在括号中。如果超过五个用户代理涉及了异常活动,则其活动将汇总在 Other(其他)行中。 -
排名靠前的错误代码 – 仅针对 API call rate(API 调用率)Insights 事件显示。此表最多显示在异常活动期间和基准期的 API 调用中发生的前五个的错误代码,按 API 调用数量从最大到最小降序排列。引起异常活动的活动总数的平均数百分比显示在括号中。如果在异常活动或基准活动期间发生了超过五个错误代码,那么它们的活动将汇总在 Other(其他)行中。
值
None
作为排名前五的错误代码值之一,意味着很大一部分对见解事件有贡献的调用不会导致错误。如果错误代码值为None
,并且表中没有其他错误代码,则 Insight average(见解平均值)和 Baseline average(基准平均值)列中的值与表示见解事件总体的值相同。您还可以查看显示在 Insights graph(见解图表)选项卡的 API calls per minute(每分钟 API 调用数)下的 Insight average(见解平均值)和 Baseline average(基准平均值)图例中的那些值。
基线平均值和 Insights 平均值
Baseline average(基线平均值)和 Insights average(Insights 平均值)显示排名靠前的用户身份、排名靠前的用户代理和排名靠前的错误代码。
-
Baseline average(基线平均值)– 在您账户中特定区域内,大约前七天内测量的每分钟对记录 Insights 事件的 API 的典型调用速率。
-
Insights average(Insights 平均值)- 触发 Insights 事件的 API 的调用或错误率。开始事件的 CloudTrail Insights 平均值是触发 Insights 事件的 API 的每分钟调用或错误率。通常情况下,这是异常活动的第一分钟。结束事件的 Insights 平均值是在开始 Insights 事件和结束 Insights 事件之间异常活动持续时间内,每分钟 API 调用的速率。
CloudTrail “事件” 选项卡
在 events(CloudTrail 事件)选项卡上,查看 CloudTrail用来分析以确定发生异常活动的相关事件。默认情况下,已对见解事件名称应用了筛选条件,该名称也是相关 API 的名称。要显示在异常活动期间记录的所有 CloudTrail 事件,请关闭 Only sh ow events for selected Insights 事件的事件。CloudTrail 事件选项卡显示在 Insights 事件的开始和结束时间之间发生的主题 API 关联的 CloudTrail 管理事件。这些事件可帮助您执行更深入的分析,以确定 Insights 事件的可能原因以及异常 API 活动和错误率的原因。
Insights event record(见解事件记录)选项卡
与任何 CloudTrail 事件相似, CloudTrail 见解事件是 JSON 格式的记录。Insights event record(见解事件记录)选项卡显示见解开始和结束事件的 JSON 结构和内容,有时称为事件负载。有关见解事件记录的字段和内容的更多信息,请参阅本指南中的 见解事件的记录字段 和 CloudTrail 见解insightDetails元素。
使用 Amazon Web Services Management Console 记录见解事件
在现有跟踪记录上启用 CloudTrail Insights 事件。默认情况下,不启用见解事件。
-
在 CloudTrail 控制台的左侧导航窗格中,打开 Tra il s(跟踪)页面,然后选择跟踪名称。
-
在 Insights events(见解事件)中,选择 Edit(编辑)。
注意
记录见解事件将收取额外费用。有关 CloudTrail 定价,请参阅Amazon CloudTrail定价
。 -
在 Event type(事件类型)中,选择 Insights events(Insights 事件)。
-
在 Insights events(Insights 事件)中的 Choose Insights types(选择 Insights 类型)下,选择 API call rate(API 调用率)和/或 API error rate(API 错误率)。您的跟踪必须记录写入管理事件以记录 Insights 事件以获取 API 调用率。您的跟踪必须记录读取或写入管理事件才能记录 Insights 事件,以了解 API 错误率。
-
选择保存更改以保存您的更改。
如果检测到异常活动,传递第一个见解事件可能需要长达 36 个小时。 CloudTrail
使用 Amazon Command Line Interface 记录见解事件
您可以使用 Amazon CLI 配置您的跟踪记录以记录见解事件。
注意
要记录 API 调用量上的 Insights 事件,跟踪必须记录write
管理事件。要按照 API 错误率记录 Insights 事件,跟踪必须记录read
或write
管理事件。
要查看您的跟踪是否正在记录见解事件,请运行 get-insight-selectors
命令。
aws cloudtrail get-insight-selectors --trail-name
TrailName
以下结果显示跟踪的默认设置。默认情况下,跟踪记录不记录见解事件。InsightType
属性值为空,并且未指定见解事件选择器,因为未启用见解事件收集。
如果未添加 Insights 选择器,该get-insight-selectors命令会返回以下错误消息:“调用 GetInsightSelectors 操作时发生错误 (InsightNotEnabledException):跟踪名称
未启用 Insights 见解选择器。Edit the trail settings to enable Insights, and then try the operation again.”
{ "InsightSelectors": [ ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/
TrailName
" }
要将跟踪配置为记录见解事件,请运行 put-insight-selectors
命令。以下示例说明如何配置跟踪以包含见解事件。Insights 选择器值可以是 ApiCallRateInsight
和/或 ApiErrorRateInsight
。
aws cloudtrail put-insight-selectors --trail-name
TrailName
--insight-selectors '[{"InsightType": "ApiCallRateInsight"},{"InsightType": "ApiErrorRateInsight"}]'
以下结果显示为跟踪配置的见解事件选择器。
{ "InsightSelectors": [ { "InsightType": "ApiErrorRateInsight" }, { "InsightType": "ApiCallRateInsight" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/
TrailName
" }
使用 Amazon 开发工具包记录事件
运行GetInsightSelectors操作以查看您的跟踪是否正在记录跟踪的见解事件。您可以配置您的跟踪记录以记录见解PutInsightSelectors事件。有关详细信息,请参阅 Amazon CloudTrail API 参考。
将事件发送到亚马逊 CloudWatch Logs
CloudTrail 支持将见解事件发送到 CloudWatch Logs。在配置您的跟踪以将见解事件发送到 Logs CloudWatch 日志组时, CloudTrail 见解只发送您在跟踪中指定的事件。例如,如果您将跟踪配置为记录管理和见解事件,则您的跟踪会将管理事件和见解事件传递至您的Logs CloudWatch 日志组。有关更多信息,请参阅使用亚马逊CloudTrail日志监控CloudWatch日志文件:
您可以使用 Amazon EventBridge 控制台或 API 来创建用于传递见解事件的规则。使用 EventBridge 控制台创建规则时,选择AWS Insight via CloudTrail
事件类型。
下图显示了在中创建的示例规则 Insights-test-rule EventBridge。 CloudTrail 记录 Insights 事件时,该规则将针对 Amazon SNS 主题向 SNS 主题中指定的收件人发送通知。有关在中创建规则的更多信息 EventBridge,请参阅《亚马逊 EventBridge 用户指南》 EventBridge中的 “在亚马逊创建规则”。

CloudTrail 记录 Insights 事件时,SNS 主题的收件人应该会收到 SNS 通知。