AWS CloudTrail 数据事件聚合与洞察功能发布:优化监控与安全

AWS宣布为CloudTrail数据事件新增聚合与洞察功能。事件聚合将数据事件汇总为5分钟摘要,显著减少下游系统数据量;洞察功能则可自动检测API活动异常模式,提升安全监控效率,帮助客户优化成本并满足合规要求。

宣布推出 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 操作)的可见性。这种汇总方法显著减少了传输到下游分析系统的数据量,同时保留了安全监控和运营监督所需的基本洞察。

在此示例场景中,我们将演示如何通过现有追踪在捕获数据事件的追踪中启用聚合。

  1. 导航到 CloudTrail 控制台。

  2. 在左侧导航菜单中,选择 追踪

  3. 选择您的 CloudTrail 事件追踪。

  4. 聚合事件 下,选择 编辑

  5. 聚合模板 下,您可以选择以下任何开箱即用的模板来聚合您的数据事件。

    • API 活动:根据发出的 API 调用获取 5 分钟的数据事件摘要。用于了解您的 API 使用模式,包括频率、调用者和来源。
    • 资源访问:获取您 AWS 资源上的活动模式。用于了解 AWS 资源的访问方式、在 5 分钟窗口内被访问的次数、谁在访问资源以及正在执行哪些操作。
    • 用户操作:根据在您账户中发出 API 调用的 IAM 主体获取活动模式。

    图 1:AWS CloudTrail 聚合事件

  6. 选择 保存更改

CloudTrail 将开始聚合追踪下定义的所有资源的数据事件。(注意:此功能也可以在创建新追踪时设置)。

分析 CloudTrail 聚合事件

聚合事件将传送到您为追踪配置的 S3 存储桶内的 CloudTrail-Aggregated 文件夹中。然后,您可以使用 Amazon Athena 或 CloudWatch Log Insights(如果您已将 CloudTrail 事件传送到 CloudWatch Logs)从 S3 存储桶查询这些事件。

让我们看看如何使用 CloudWatch Log Insights 查询聚合事件,并使用 API 活动聚合模板显示 5 分钟内 API 活动的聚合计数。然后它将显示哪些用户身份和资源促成了整体活动。

  1. 导航到 CloudWatch 控制台。

  2. 在左侧导航菜单中,选择 Logs Insights

  3. 查询定义 部分,选择 SQL

  4. 复制下面的查询并粘贴到编辑器窗口中。(注意:您必须将 [Log Group] 替换为您的 CloudTrail 日志组名称)。

    SQL 查询

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    SELECT 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;
    
  5. 点击 运行查询,然后您将看到结果。

    图 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 的管理事件和聚合事件。

  1. 导航到 CloudWatch 控制台。

  2. 在左侧导航菜单中,选择 日志组

  3. 选择用于 CloudTrail 的日志组。

  4. 选择 订阅过滤器 选项卡。

  5. 选择 创建,然后为您的订阅过滤器选择 Amazon Kinesis Data StreamsAWS LambdaAmazon Data FirehoseAmazon OpenSearch Service

  6. 然后为您的订阅过滤器使用以下日志格式和筛选器模式。

    • 日志格式: JSON
    • 订阅筛选器模式: { ($.eventCategory = "Management") || ($.eventCategory = "Aggregated") }

    图 4:CloudWatch 订阅过滤器

数据事件洞察

为数据事件设置 CloudTrail 洞察

AWS CloudTrail 洞察是一项高级功能,通过分析 CloudTrail 事件,自动检测您 AWS 账户中异常的 API 活动模式。以前,这仅适用于管理事件,但现在也可支持数据事件,用于识别与您账户典型使用模式存在显著差异的变更。启用后,CloudTrail 洞察会监控 API 调用率和错误率,在检测到统计上显著的偏差时(例如资源配置突然激增、异常访问模式或异常错误率)生成洞察事件。

在此示例场景中,我们将演示如何在现有 CloudTrail 追踪中设置数据事件的洞察事件。

  1. 导航到 CloudTrail 控制台。

  2. 在左侧导航菜单中,选择 追踪

  3. 选择您的 CloudTrail 事件追踪。

  4. 洞察事件 下,选择 编辑

  5. 数据事件洞察类型 下,您可以选择以下任意选项。

    • API 调用率洞察 – 当每分钟发生的数据 API 调用数量偏离基准 API 调用率时,会生成此类洞察。仅测量属于写入操作的数据 API 调用。
    • API 错误率洞察 – 当失败并返回错误的数据 API 调用数量偏离基准错误率时,会生成此类洞察。同时测量读取和写入操作的数据 API 调用。

    图 5:为数据事件设置洞察事件

一旦启用,CloudTrail 必须首先建立您正常活动模式的基线,这可能需要长达 36 小时才能开始交付第一个洞察事件(前提是在此期间检测到异常活动)。另外,需要注意的是,如果您禁用并随后重新启用洞察事件,或者如果您停止并重新启动追踪上的日志记录,CloudTrail 可能需要长达 36 小时来创建新的基线模式,然后才能恢复交付洞察事件。

分析数据事件的 CloudTrail 洞察

CloudTrail 洞察事件与标准 CloudTrail 事件不同,因为它们仅在 CloudTrail 识别到您的账户 API 活动模式出现显著偏差时生成。让我们看看如何通过控制台查看洞察事件:

  1. 导航到 CloudTrail 控制台。

  2. 在左侧导航菜单中,选择 洞察

  3. 选择 数据事件洞察 选项卡以查看洞察事件列表。

  4. 在结果列表中选择一个洞察事件以显示其详细信息。

    图 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 文档

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计