宣布推出 AWS CloudTrail 数据事件聚合与洞察功能 | AWS 云运维博客
AWS CloudTrail 记录您 AWS 账户的 API 调用和事件,为治理、合规和运营故障排除提供审计追踪。客户还可以在 CloudTrail 中启用数据事件,以更深入地了解资源级操作。这些操作包括 Amazon S3 对象级操作(例如 GetObject/PutObject)或 AWS Lambda 函数调用。数据事件有助于检测未经授权的访问、调查安全事件,并满足要求超出控制平面操作的详细活动日志的合规性要求。
数据事件代表着您 AWS 基础设施中的关键接触点。无论是 Amazon S3 对象访问、Amazon DynamoDB 操作还是 AWS Lambda 调用,理解这些事件对于安全、合规和卓越运营都至关重要。然而,这些事件可能产生海量数据,显著增加下游工作流的成本和存储需求。组织在这一领域常常面临重大挑战:许多组织发现难以减少发送到下游系统的数据量,或者难以识别数据事件中的异常情况并在异常发生时快速响应。这些挑战可能带来不必要的成本负担,拖慢故障排除工作,并使潜在的安全风险得不到解决。
今天,我们很高兴地宣布为 AWS CloudTrail 引入两项强大的新增功能,它们将改变您监控数据事件并采取行动的方式:CloudTrail 事件聚合和数据事件洞察。每项功能都针对不同的客户需求。事件聚合有助于优化下游工作流的数据量,并使识别 API 活动中的变化模式变得更加容易;而 CloudTrail Insights 则帮助您识别数据事件中的异常情况,以增强安全监控。无论您是在优化基础设施成本、满足合规性要求,还是在调查安全事件,这些独立的功能都能提供有针对性的解决方案,而不会用原始日志数据淹没您的团队。
在本文中,我们将探讨这些新功能的工作原理,并逐步介绍如何分析这些类型的事件并创建可操作的洞察。
前提条件
本演练需要一个已启用数据事件的现有 CloudTrail 追踪。您也可以在创建新追踪时直接启用聚合事件和洞察事件。此外,这两项新功能确实会产生额外的 CloudTrail 费用。有关定价的更多信息,请访问 AWS CloudTrail 定价。
注意:必须先在您的追踪中启用数据事件,才能使用数据事件的事件聚合和洞察功能。
事件聚合
为数据事件设置 CloudTrail 事件聚合
CloudTrail 事件聚合将数据事件整合为 5 分钟摘要,提供对关键趋势(如访问频率、错误率和最常用的 API 操作)的可见性。这种汇总方法显著减少了传输到下游分析系统的数据量,同时保留了安全监控和运营监督所需的基本洞察。
在此示例场景中,我们将演示如何通过现有追踪在捕获数据事件的追踪中启用聚合。
-
导航到 CloudTrail 控制台。
-
在左侧导航菜单中,选择 追踪。
-
选择您的 CloudTrail 事件追踪。
-
在 聚合事件 下,选择 编辑。
-
在 聚合模板 下,您可以选择以下任何开箱即用的模板来聚合您的数据事件。
- API 活动:根据发出的 API 调用获取 5 分钟的数据事件摘要。用于了解您的 API 使用模式,包括频率、调用者和来源。
- 资源访问:获取您 AWS 资源上的活动模式。用于了解 AWS 资源的访问方式、在 5 分钟窗口内被访问的次数、谁在访问资源以及正在执行哪些操作。
- 用户操作:根据在您账户中发出 API 调用的 IAM 主体获取活动模式。
图 1:AWS CloudTrail 聚合事件
-
选择 保存更改。
CloudTrail 将开始聚合追踪下定义的所有资源的数据事件。(注意:此功能也可以在创建新追踪时设置)。
分析 CloudTrail 聚合事件
聚合事件将传送到您为追踪配置的 S3 存储桶内的 CloudTrail-Aggregated 文件夹中。然后,您可以使用 Amazon Athena 或 CloudWatch Log Insights(如果您已将 CloudTrail 事件传送到 CloudWatch Logs)从 S3 存储桶查询这些事件。
让我们看看如何使用 CloudWatch Log Insights 查询聚合事件,并使用 API 活动聚合模板显示 5 分钟内 API 活动的聚合计数。然后它将显示哪些用户身份和资源促成了整体活动。
-
导航到 CloudWatch 控制台。
-
在左侧导航菜单中,选择 Logs Insights。
-
在 查询定义 部分,选择 SQL。
-
复制下面的查询并粘贴到编辑器窗口中。(注意:您必须将
[Log Group]替换为您的 CloudTrail 日志组名称)。SQL 查询:
1 2 3 4 5 6 7 8 9SELECT accountId, awsRegion, `summary.primaryDimension.dimension` as Dimension, `timeWindow.windowStart` as `Start Time`, `timeWindow.windowEnd` as `End Time`,`summary.details.3.statistics.0.name` as sourceIpAddress, `summary.primaryDimension.statistics.0.name` as eventName, `summary.primaryDimension.statistics.0.value` as Count, `summary.details.1.statistics.0.name` as userIdentity, `summary.details.0.statistics.0.name` as resource, `summary.details.0.statistics.0.value` as `Resource Count` FROM `[Log Group]` Where `eventCategory` = 'Aggregated' and `summary.primaryDimension.dimension` = 'eventName' ORDER BY `timeWindow.windowStart`, `timeWindow.windowEnd` DESC; -
点击 运行查询,然后您将看到结果。
图 2:CloudWatch Logs Insights 查询结果
查询结果显示每个聚合事件周期内执行的 API 操作及总计数。它还将显示其他统计信息,例如促成 API 活动总计数的用户和资源。此外,您可以运行类似的查询,显示与 资源访问 和 用户访问 聚合模板关联的事件,以进行更多分析。
使用订阅过滤器向下游发送聚合事件
事件聚合将数据事件整合为 5 分钟摘要,提供总体计数,并显示在事件聚合期间捕获的促成总体计数的关键统计信息,例如用户身份、API 活动或资源。有关事件聚合记录中字段的更多详细信息,请参阅 CloudTrail 聚合事件记录内容 文档。下图是事件聚合提供的与数据事件相比事件量减少的示例。
图 3:CloudTrail 中总数据事件与总聚合事件的对比
对于 CloudTrail 日志,我们可以创建订阅过滤器,将聚合事件(而非数据事件)从 CloudWatch Logs 发送到下游系统,例如 Kinesis Data Streams、Kinesis Data Firehose、Lambda 函数或 Amazon OpenSearch Service,从而减少发送到下游系统的总体数据量。
让我们看看如何设置订阅过滤器,仅发送 CloudTrail 的管理事件和聚合事件。
-
导航到 CloudWatch 控制台。
-
在左侧导航菜单中,选择 日志组。
-
选择用于 CloudTrail 的日志组。
-
选择 订阅过滤器 选项卡。
-
选择 创建,然后为您的订阅过滤器选择 Amazon Kinesis Data Streams、AWS Lambda、Amazon Data Firehose 或 Amazon OpenSearch Service。
-
然后为您的订阅过滤器使用以下日志格式和筛选器模式。
- 日志格式: JSON
- 订阅筛选器模式:
{ ($.eventCategory = "Management") || ($.eventCategory = "Aggregated") }
图 4:CloudWatch 订阅过滤器
数据事件洞察
为数据事件设置 CloudTrail 洞察
AWS CloudTrail 洞察是一项高级功能,通过分析 CloudTrail 事件,自动检测您 AWS 账户中异常的 API 活动模式。以前,这仅适用于管理事件,但现在也可支持数据事件,用于识别与您账户典型使用模式存在显著差异的变更。启用后,CloudTrail 洞察会监控 API 调用率和错误率,在检测到统计上显著的偏差时(例如资源配置突然激增、异常访问模式或异常错误率)生成洞察事件。
在此示例场景中,我们将演示如何在现有 CloudTrail 追踪中设置数据事件的洞察事件。
-
导航到 CloudTrail 控制台。
-
在左侧导航菜单中,选择 追踪。
-
选择您的 CloudTrail 事件追踪。
-
在 洞察事件 下,选择 编辑。
-
在 数据事件洞察类型 下,您可以选择以下任意选项。
- API 调用率洞察 – 当每分钟发生的数据 API 调用数量偏离基准 API 调用率时,会生成此类洞察。仅测量属于写入操作的数据 API 调用。
- API 错误率洞察 – 当失败并返回错误的数据 API 调用数量偏离基准错误率时,会生成此类洞察。同时测量读取和写入操作的数据 API 调用。
图 5:为数据事件设置洞察事件
一旦启用,CloudTrail 必须首先建立您正常活动模式的基线,这可能需要长达 36 小时才能开始交付第一个洞察事件(前提是在此期间检测到异常活动)。另外,需要注意的是,如果您禁用并随后重新启用洞察事件,或者如果您停止并重新启动追踪上的日志记录,CloudTrail 可能需要长达 36 小时来创建新的基线模式,然后才能恢复交付洞察事件。
分析数据事件的 CloudTrail 洞察
CloudTrail 洞察事件与标准 CloudTrail 事件不同,因为它们仅在 CloudTrail 识别到您的账户 API 活动模式出现显著偏差时生成。让我们看看如何通过控制台查看洞察事件:
-
导航到 CloudTrail 控制台。
-
在左侧导航菜单中,选择 洞察。
-
选择 数据事件洞察 选项卡以查看洞察事件列表。
-
在结果列表中选择一个洞察事件以显示其详细信息。
图 6:CloudTrail 洞察的洞察事件列表
洞察事件的详细信息页面显示异常活动时间线的图表。
图 7:洞察事件详情
此外,您可以使用 CloudWatch 指标过滤器或 EventBridge 规则,基于特定的洞察模式设置警报和通知。有关如何设置的更多信息,请参阅博客文章 利用 AWS CloudTrail Insights 进行主动 API 监控和成本优化 和 在 Amazon CloudWatch 中分析 AWS CloudTrail。
清理
为避免产生额外费用,请删除在本演练过程中创建的 CloudTrail 洞察和聚合事件配置。
结论
CloudTrail 数据事件的事件聚合和洞察功能为 CloudTrail 引入了强大的新功能,满足了不同的客户需求。CloudTrail 聚合事件为将 CloudTrail 数据发送到下游工作流的客户提供了一个解决方案,有助于在保持基本可见性的同时减少数据量和相关成本。而 CloudTrail 洞察则提供了识别异常情况和模式所需的清晰度和上下文,帮助安全和运营团队无需手动分析即可检测异常活动。在本文中,我们演示了如何设置 CloudTrail 事件聚合以优化您的数据处理管道,以及如何设置 CloudTrail 数据事件洞察来自动检测异常活动模式,并使用 CloudWatch 指标过滤器创建可操作的警报。要了解有关这些新的 CloudTrail 功能以及它们如何增强您的安全态势或优化成本的更多信息,请参阅 AWS CloudTrail 文档。