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

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

记录 Insights 事件

Amazon CloudTrail Insights 通过持续分析 CloudTrail 管理事件,帮助 Amazon 用户识别和响应与 API 调用和 API 错误率相关的异常活动。 CloudTrail Insights 会分析您的 API 调用量和 API 错误率的正常模式(也称为基线),并在呼叫量或错误率超出正常模式时生成 Insights 事件。针对 write 管理 API 生成的 API 调用量的 Insights 事件,以及针对 readwrite 管理 API 生成的 API 错误率的 Insights 事件。

注意

要针对 API 调用量记录 Insights 事件,跟踪或事件数据存储必须记录 write 管理事件。要针对 API 错误率记录 Insights 事件,跟踪或事件数据存储必须记录 readwrite 管理事件。

CloudTrail Insights 分析发生在单个区域(而不是全球区域)的管理事件。 CloudTrail Insights 事件是在生成其支持管理事件的同一区域生成的。

将对 Insights 事件收取额外费用。如果您同时为跟踪和事件数据存储启用 Insights,则需要单独付费。有关更多信息,请参阅Amazon CloudTrail 定价

了解 Insights 事件传输情况

与其他 CloudTrail 捕获类型的事件不同,Insights 事件仅在 CloudTrail 检测到您的账户 API 使用量发生变化且与账户的典型使用模式明显不同时才会被记录。

在何处 CloudTrail 交付事件以及接收 Insights 事件所需的时间因跟踪和事件数据存储而异。

跟踪的 Insights 事件传输

如果您已在跟踪上启用 Insights 事件并 CloudTrail 检测到异常活动,则会将 Insigh CloudTrail ts 事件传送到您的跟踪所选目标 S3 存储桶中的/CloudTrail-Insight文件夹。首次在跟踪中启用 CloudTrail Insights 后,如果检测到异常活动,则最长可能需要 36 小时 CloudTrail 才能交付第一个 Insights 事件。

如果您关闭 Insights 事件记录跟踪然后重新启用 Insights 事件,或者停止并重新启动跟踪的日志记录,则如果检测到异常活动,则可能需要长达 36 小时 CloudTrail 才能重新启动 Insights 事件的交付。

事件数据存储的 Insights 事件传输

如果您已在源事件数据存储上启用 Insights 事件,则会将 Insigh CloudTrail ts 事件传送到目标事件数据存储。首次在源事件数据存储上启用 CloudTrail Insights 后,如果检测到异常活动,则最多可能需要 7 天才能 CloudTrail 将第一个 Insights 事件传送到目标事件数据存储。

如果您关闭源事件数据存储上的 Insights 事件记录,然后重新启用 Insights 事件,或者在源事件数据存储上停止并重新启动事件摄取,则如果检测到异常活动,则最多可能需要 7 天 CloudTrail 才能重新启动 Insights 事件的交付。在 Lake 中 CloudTrail 收取 Insights 事件需要支付额外费用。如果您同时为跟踪和事件数据存储启用 Insights,则需要单独付费。有关 CloudTrail 定价的信息,请参阅Amazon CloudTrail 定价

使用记录见解事件 Amazon Web Services Management Console

您可以使用控制台在跟踪上启用 Insights 事件。

在现有跟踪上启用 CloudTrail Insights 事件

使用以下步骤在现有跟踪上启用 CloudTrail Insights 事件。默认情况下,不启用 Insights 事件。

  1. 在 CloudTrail 控制台的左侧导航窗格中,打开 T rail s 页面,然后选择一个跟踪名称。

  2. Insights events(Insights 事件)中,选择 Edit(编辑)。

    注意

    记录 Insights 事件将收取额外费用。有关 CloudTrail 定价,请参阅Amazon CloudTrail 定价

  3. Event type(事件类型)中,选择 Insights events(Insights 事件)。

  4. Insights events(Insights 事件)中的 Choose Insights types(选择 Insights 类型)下,选择 API call rate(API 调用率)和/或 API error rate(API 错误率)。跟踪必须记录写入管理事件才能针对 API 调用率记录 Insights 事件。跟踪必须记录读取写入管理事件才能针对 API 错误率记录 Insights 事件。

  5. 选择保存更改以保存您的更改。

如果检测到异常活动,则最长可能需要 36 小时 CloudTrail 才能交付第一个 Insights 事件。

使用记录见解事件 Amazon Command Line Interface

您可以使用 Amazon CLI配置跟踪和事件数据存储以记录 Insights 事件。

注意

要针对 API 调用量记录 Insights 事件,跟踪必须记录 write 管理事件。要针对 API 错误率记录 Insights 事件,跟踪必须记录 readwrite 管理事件。

使用记录跟踪的见解事件 Amazon CLI

要查看您的跟踪是否正在记录 Insights 事件,请运行 get-insight-selectors 命令。

aws cloudtrail get-insight-selectors --trail-name TrailName

以下结果显示跟踪的默认设置。默认情况下,跟踪记录不记录 Insights 事件。InsightType 属性值为空,并且未指定 Insights 事件选择器,因为未启用见解事件收集。

如果您不添加 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" }

要将跟踪配置为记录 Insights 事件,请运行 put-insight-selectors 命令。以下示例说明如何配置跟踪以包含 Insights 事件。Insights 选择器值可以是 ApiCallRateInsight 和/或 ApiErrorRateInsight

aws cloudtrail put-insight-selectors --trail-name TrailName --insight-selectors '[{"InsightType": "ApiCallRateInsight"},{"InsightType": "ApiErrorRateInsight"}]'

以下结果显示为跟踪配置的 Insights 事件选择器。

{ "InsightSelectors": [ { "InsightType": "ApiErrorRateInsight" }, { "InsightType": "ApiCallRateInsight" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/TrailName" }

使用 Amazon SDK 记录事件

运行该GetInsightSelectors操作以查看您的跟踪是否启用了 Insights 事件。您可以将跟踪配置为通过PutInsightSelectors操作启用 Insights 事件。有关更多信息,请参阅 Amazon CloudTrail API 参考

跟踪的其他信息

本部分提供特定于跟踪的其他信息。本节介绍如何从 CloudTrail 控制台的 Insights 页面查看已订阅跟踪的事件,以及如何选择将这些事件发送到 CloudWatch 日志进行监控。

在控制台中查看跟踪的 Insights 事件

对于跟踪,您还可以在 CloudTrail 控制台的 Insights 页面上访问和查看 Insights 事件。有关如何在控制台中以及如何使用访问和查看 Insights 事件的更多信息 Amazon CLI,请参阅本指南查看路径的 CloudTrail Insights 事件中的。

下图显示了一个跟踪 Insights 事件的示例。通过从 Dashboard (控制面板)Insights (见解) 页面中选择 Insights 事件名称,可以打开 Insights 事件的详细信息页面。

如果您在跟踪上禁用 CloudTrail Insights,或者停止记录跟踪(这会禁用 CloudTrail Insights),则可能会将 Insights 事件存储在目标 S3 存储桶中,或者显示在控制台的 Insight s 页面上,该日期是您启用 Insights 的较早时间。

筛选条件列

左列列出了与主题 API 相关的 Insights 事件,并且具有相同的 Insights 事件类型。通过该列,您可以选择希望了解其详细信息的 Insights 事件。在此列中选择事件时,该事件将在 Insights graph(Insights 图表)选项卡上的图形中突出显示。默认情况下, CloudTrail 应用筛选条件,将 “CloudTrail事件” 选项卡上显示的事件限制为与触发 Insights 事件的异常活动期间调用的特定 API 有关的事件。要显示在异常活动期间调用的所有 CloudTrail事件,包括与 Insights 事件无关的事件,请关闭过滤器。

Insights graph(Insights 图表)选项卡

Insights graph(Insights 图)选项卡上,Insights 事件的详细信息页面显示在记录一个或多个 Insights 事件之前和之后的一段时间内发生的 API 调用量或错误率的图表。在图表中,Insights 事件以垂直条突出显示,条的宽度显示 Insights 事件的开始和结束时间。

在此示例中,垂直突出显示带显示账户中异常数量 Amazon Systems Manager SendCommand的 API 调用。在突出显示的区域中,由于SendCommand呼叫数量超过了该账户每分钟 0.0442 次呼叫的基线平均值,因此在检测到异常活动时 CloudTrail 记录了 Insights 事件。已记录在上午 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 左右结束。

按照 Insights 事件开始前七天的时间计算基准。尽管基线持续时间( CloudTrail 分析 API 正常活动的时间段)的值约为七天,但将基线持续时间 CloudTrail 四舍五入为整数天,因此确切的基准持续时间可能会有所不同。

显示异常 API 活动的 CloudTrail 见解详情页面。

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

CloudTrail Insights 活动,放大显示时间轴的详细信息。

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

CloudTrail Insights 活动,放大显示时间轴的详细信息。

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

显示异常错误率活动的 CloudTrail Insights 详情页面。

Attributions(属性)选项卡

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

显示归因的 CloudTrail Insights 事件详情页面。

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

CloudTrail Insights 事件详情页面,显示错误率 Insights 事件的归因。
  • 排名靠前的用户身份 ARN-此表按贡献的 API 调用的平均次数降序显示了在异常活动和基准期内为 API 调用做出贡献的前五 Amazon 名用户或 IAM 角色(用户身份)。引起异常活动的活动总数的平均数百分比显示在括号中。如果超过五个用户身份 ARN 涉及了异常活动,则其活动将汇总在 Other(其他)行中。

  • 顶级用户代理-此表按贡献的 API 调用平均次数降序显示了用户身份在异常活动和基准期内为 API 调用做出贡献的前五个 Amazon 工具。这些工具包括 Amazon Web Services Management Console Amazon CLI、或 Amazon SDK。例如,名为 ec2.amazonaws.com 的用户代理表示 Amazon EC2 控制台是用于调用 API 的工具之一。引起异常活动的活动总数的平均数百分比显示在括号中。如果超过五个用户代理涉及了异常活动,则其活动将汇总在 Other(其他)行中。

  • 排名靠前的错误代码 – 仅针对 API call rate(API 调用率)Insights 事件显示。此表最多显示在异常活动期间和基准期的 API 调用中发生的前五个的错误代码,按 API 调用数量从最大到最小降序排列。引起异常活动的活动总数的平均数百分比显示在括号中。如果在异常活动或基准活动期间发生了超过五个错误代码,那么它们的活动将汇总在 Other(其他)行中。

    None 作为排名前五的错误代码值之一,意味着很大一部分对 Insights 事件有贡献的调用不会导致错误。如果错误代码值为 None,并且表中没有其他错误代码,则 Insight average(Insights 平均值)和 Baseline average(基准平均值)列中的值与表示 Insights 事件总体的值相同。您还可以查看显示在 Insights graph(Insights 图表)选项卡的 API calls per minute(每分钟 API 调用数)下的 Insight average(Insights 平均值)和 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 “事件” 选项卡

CloudTrail 事件选项卡上,查看相关事件,这些事件 CloudTrail经过分析以确定发生了异常活动。默认情况下,已对 Insights 事件名称应用了筛选条件,该名称也是相关 API 的名称。要显示在异常活动期间记录的所有 CloudTrail 事件,请关闭仅显示所选 Insights 事件的事件。CloudTrail 事件选项卡显示在 Insights 事件的开始和结束时间之间发生的与主题 API 相关的 CloudTrail 管理事件。这些事件可帮助您执行更深入的分析,以确定 Insights 事件的可能原因以及异常 API 活动和错误率的原因。

Insights event record(Insights 事件记录)选项卡

与任何 CloudTrail 事件一样, CloudTrail Insights 事件是 JSON 格式的记录。Insights event record(Insights 事件记录)选项卡显示 Insights 开始和结束事件的 JSON 结构和内容,有时称为事件负载。有关 Insights 事件记录的字段和内容的更多信息,请参阅本指南中的 Insights 事件的记录字段CloudTrail 见解insightDetails元素

向 Amazon CloudWatch 日志发送跟踪事件

CloudTrail 支持将跟踪的 Insights 事件发送到 CloudWatch 日志。当您将跟踪配置为将 Insights 事件发送到 CloudWatch 日志日志组时, CloudTrail Insights 仅发送您在跟踪中指定的事件。例如,如果您将跟踪配置为记录管理和Insights事件,则您的跟踪会将管理事件和Insights事件传送到您的 CloudWatch 日志日志组。有关更多信息,请参阅 使用 Amazon CloudTrail 日志监控 CloudWatch 日志文件