亚马逊AWS官方博客

新增功能 – AWS CloudTrail Lake 支持从非 AWS 来源摄取活动事件

2013 年 11 月,我们宣布推出 AWS CloudTrail,用于跟踪用户活动和 API 使用情况。AWS CloudTrail 支持审计、安全监控和运营问题排查。CloudTrail 将 AWS 服务中的用户活动和 API 调用记录为事件。CloudTrail 事件可帮助您回答“谁、何时、在哪里做了什么?”的问题。

最近,我们提高了您使用 AWS CloudTrail Lake 简化审计和安全分析的能力。CloudTrail Lake 是一个托管数据湖,用于捕获、存储、访问和分析 AWS 上的用户和 API 活动,用于审计、安全和运营目的。您可以聚合并不可变地存储您的活动事件,并运行基于 SQL 的查询进行搜索和分析。

我们听取了您的反馈,即聚合来自混合环境中不同应用程序的活动信息非常复杂而且成本昂贵,但对于全面了解贵组织的安全与合规状况很重要。

今天,我们宣布支持使用 CloudTrail Lake 接收来自非 AWS 来源的活动事件,使其成为用于审计和安全调查的不可变用户和 API 活动事件的单一位置。现在,您可以在一个位置整合、不可变地存储、搜索和分析来自 AWS 和非 AWS 来源(例如内部或 SaaS 应用程序)的活动事件。

使用 CloudTrail Lake 中新的 PutAuditEvents API,您可以将来自不同来源的用户活动信息集中到 CloudTrail Lake 中,使您能够使用这些数据分析、排查和诊断问题。CloudTrail Lake 以标准化架构记录所有事件,使用户可以更轻松地使用这些信息来全面、快速地响应安全事件或审计请求。

CloudTrail Lake 还与选定的 AWS 合作伙伴集成,例如 Cloud Storage Security、Clumio、CrowdStrike、CyberArk、GitHub、Kong Inc、LaunchDarkly、MontyCloud、Netskope、Nordcloud、Okta、One Identity、Shoreline.io、Snyk 和 Wiz,使您可以轻松通过 CloudTrail 控制台启用审计日志记录。

集成外部来源入门
您可以在 AWS CloudTrail 控制台Lake 菜单下选择 Integrations(集成),开始从自己的数据来源或合作伙伴应用程序摄取活动事件。

要创建新集成,请选择 Add integration(添加集成)并输入您的频道名称。您可以选择要从中获取事件的合作伙伴应用程序来源。如果您要与自己在本地或云端托管的应用程序中的事件集成,请选择 My custom integration(我的自定义集成)。

对于 Event delivery location(事件交付地点),您可以从此集成中选择事件目的地。这允许您的应用程序或合作伙伴将事件交付到您的 CloudTrail Lake 事件数据存储。事件数据存储可以将您的活动事件保留一周至七年。然后,您可以在事件数据存储中运行查询。

选择 Use existing event data stores(使用现有事件数据存储)或 Create new event data store(创建新的事件数据存储),接收来自集成的事件。要了解有关事件数据存储的更多信息,请参阅 AWS 文档中的创建事件数据存储

您还可以为通过此集成创建的频道资源设置权限策略。该政策所需的信息取决于每个合作伙伴应用程序的集成类型。

有两种类型的集成:直接集成和解决方案集成。通过直接集成,合作伙伴调用 PutAuditEvents API 将事件交付到您的 AWS 账户的事件数据存储。在这种情况下,您需要提供 External ID(外部 ID),即合作伙伴提供的唯一账户标识符。您可以看到分步指南的合作伙伴网站链接。通过解决方案集成,应用程序在您的 AWS 账户中运行,应用程序调用 PutAuditEvents API 将事件交付到您的 AWS 账户的事件数据存储。

要查找合作伙伴的集成类型,请从集成页面选择 Available sources(可用来源)选项卡。

创建集成后,您需要向来源应用程序或合作伙伴应用程序提供此频道 ARN。在这些步骤完成之前,状态将保持 incomplete(未完成)。CloudTrail Lake 开始接收集成合作伙伴或应用程序的事件后,状态字段将更新以反映当前状态。

要将应用程序的活动事件摄取到集成中,请调用 PutAuditEvents API 来添加事件的负载。在将事件摄取到 CloudTrail Lake 之前,请确保事件负载中没有敏感信息或个人识别信息。

您可以创建事件对象的 JSON 数组,其中包括用户从事件中生成的所需 ID、作为 EventData 值的事件所需负载以及可选的校验和,以帮助在摄取到 CloudTrail Lake 后验证事件的完整性。

{
  "AuditEvents": [
     {
      "Id": "event_ID",
      "EventData": "{event_payload}", "EventDataChecksum": "optional_checksum",
     },
   ... ]
}

以下示例显示了如何使用 put-audit-events AWS CLI 命令。

$ aws cloudtrail-data put-audit-events \
--channel-arn $ChannelArn \
--external-id $UniqueExternalIDFromPartner \
--audit-events \
{
  "Id": "87f22433-0f1f-4a85-9664-d50a3545baef",
  "EventData":"{\"eventVersion\":\0.01\",\"eventSource\":\"MyCustomLog2\", ...\}",
},
{
  "Id": "7e5966e7-a999-486d-b241-b33a1671aa74",
  "EventData":"{\"eventVersion\":\0.02\",\"eventSource\":\"MyCustomLog1\", ...\}",
"EventDataChecksum":"848df986e7dd61f3eadb3ae278e61272xxxx",
}

在 CloudTrail Lake 的 Editor(编辑器)选项卡上,为新的集成事件数据存储编写自己的查询,以检查交付的事件。

您可以自己进行集成查询,例如获取在特定日期之后调用 API 的 AWS 和外部资源中的所有主体:

SELECT userIdentity.principalId FROM $AWS_EVENT_DATA_STORE_ID 
WHERE eventTime > '2022-09-24 00:00:00'
UNION ALL
SELECT eventData.userIdentity.principalId FROM $PARTNER_EVENT_DATA_STORE_ID
WHRERE eventData.eventTime > '2022-09-24 00:00:00'

要了解更多信息,请参阅 CloudTrail Lake 事件架构示例查询,以帮助您入门。

发布合作伙伴
您可以在 Available applications(可用应用程序)选项卡中查看支持 CloudTrail Lake 集成选项的发布合作伙伴列表。以下是参与本次发布的合作伙伴的博客文章和公告(一些将在未来几天内添加)。

  • Cloud Storage Security
  • Clumio
  • CrowdStrike
  • CyberArk
  • GitHub
  • Kong Inc
  • LaunchDarkly
  • MontyCloud
  • Netskope
  • Nordcloud
  • Okta
  • One Identity
  • Shoreline.io
  • Snyk
  • Wiz

现已推出
AWS CloudTrail Lake 现在支持从目前已推出 CloudTrail Lake 的所有 AWS 区域摄取外部来源的活动事件。要了解更多信息,请参阅 AWS 文档和每个合作伙伴的入门指南。

如果您有兴趣成为 AWS CloudTrail 合作伙伴,可以联系您的常用合作伙伴联系人。

Channy