在 Amazon EventBridge 中推出对只读管理事件的支持 计算博客

AWS EventBridge 支持只读管理事件

by Eric Johnson 于 2023年11月17日 发表于 Amazon EventBridge 和 Serverless永久连结 分享

在 Amazon EventBridge 中推出对只读管理事件的支持 计算博客

本文由 Pawan Puthran首席专家TAM,Serverless和 Heeki Park首席解决方案架构师,Serverless撰写。

主要重点

AWS 现在支援在 Amazon EventBridge 中的只读管理事件,帮助用户实时识别 AWS 基础设施上的安全漏洞和可疑活动。使用 CloudTrail 的读取/写入类型为所有或只读的事件选择器,您可以开始接收这些只读管理事件。此功能使得用户可以更迅速地回应安全事件并提高安全性。

今天,AWS 宣布在 Amazon EventBridge 中支持只读管理事件。这一新功能使用户能够从任何在 AWS 基础设施上的操作生成丰富的事件驱动响应,实时检测安全漏洞或识别可疑活动。现在,您可以对所有 AWS 帐户中的各种活动进行洞察,并根据需要响应这些事件。

概述

EventBridge 是一个无伺服器事件总线,用于解耦事件生产者和消费者。事件生产者将事件发布到事件总线,然后根据规则决定将这些事件发送到何处。这些规则决定接收和处理事件的下游目标,EventBridge 按照这些规则路由事件。

EventBridge 使客户能够通过 AWS CloudTrail 生成的事件来近乎实时地监控、审计和响应 AWS 环境中的变化。CloudTrail 记录用户、角色或 AWS 服务采取的行动作为事件。事件包括在 AWS 管理控制台、AWS 命令行界面 CLI和 AWS SDK及API中执行的操作。

之前,只有变更 API 调用会从 CloudTrail 发布到 EventBridge,用于控制平面变更。这些变更事件包括创建、更新或删除资源的操作。控制平面变更也称为管理事件。现在,EventBridge 还支持对管理事件的非变更或只读 API 调用,而不需额外收费。这些包括列举、获取或描述资源的操作。

CloudTrail 事件在 EventBridge 中使您能够从 AWS 基础设施上的任何操作生成丰富的事件驱动响应。以前,客户和合作伙伴通常使用轮询模型从 Amazon S3 存储桶中迭代一批 CloudTrail 日志以检测问题,这使得响应变得较慢。只读管理事件的推出使您能够近乎实时地检测和修复问题,从而提升整体安全性。

启用只读管理事件

要开始接收只读管理事件,必须确保 CloudTrail 被配置 于您的帐户中,且该 CloudTrail 的 事件选择器 设定为 ReadWriteType 为所有或只读。这样才能确保只读管理事件被记录在 CloudTrail 中,然后将其传递给 EventBridge。

例如,您可以收到警报,假如一个生产帐户从您 VPC 外的 IP 地址列出资源。另一个例子是如果一个实体如主体 AWS 帐户根用户 或 IAM 使用者调用 ListInstanceProfilesForRole 或 DescribeInstances API,却没有之前的记录。恶意行为者可能利用被盗的凭证进行此类侦查,以寻找更有价值的凭证或确定他们拥有的凭证能力。

要通过 EventBridge 规则启用只读管理事件,除了现有的变动事件外,创建规则时需要使用新增的 ENABLEDWITHALLCLOUDTRAILMANAGEMENTEVENTS 状态。

yamlResources SampleMgmtRule Type AWSEventsRule Properties Description 启用只读管理事件的范例 State ENABLEDWITHALLCLOUDTRAILMANAGEMENTEVENTS EventPattern source awss3 detail AWS API Call via CloudTrail Targets Arn arnawssnsuseast1123456789012notificationTopic Id NotificationTarget

您还可以在事件总线上创建规则,以使用 detail 键下的 eventName 属性指定特定的 API 操作:

bashaws events putrule name SampleTestRule eventpattern {detail {eventName [ListBuckets]}} state ENABLEDWITHALLCLOUDTRAILMANAGEMENTEVENTS region useast1

常见场景与用例

检测异常的 Secrets Manager GetSecretValue API 调用

考虑您的组织的安全团队,他们希望在通过 CLI 进行 GetSecretValue API 调用时收到通知。他们可以调查这些调用是否由组织外的实体或未经授权的用户发出,并采取纠正措施以拒绝此类请求。

当应用程序通过 CLI 调用 GetSecretValue API 以检索秘密时,将生成如下事件:

json{ version 0 id d3368cc1e6d6e4bfe58e030f03b6eae3 detailtype AWS API Call via CloudTrail source awssecretsmanager account 111111111111 time 20231108T195838Z region useast1 resources [] detail { eventVersion 108 userIdentity { type IAMUser principalId AAAAAAAAAAAAA arn arnawsiam 111111111111user/USERNAME // 其他详细字段 } eventTime 20231108T195838Z eventSource secretsmanageramazonawscom eventName GetSecretValue awsRegion useast1 userAgent awscli/21315 Python/3114 Darwin/2260 exe/x8664 prompt/off command/secretsmanagergetsecretvalue // 其他详细字段 }}

您可以在规则上设置以下事件模式,以过滤传入事件到特定消费者。这个例子同时使用最近推出的 通配符过滤 进行事件匹配。

json{ source [ awssecretsmanager ] detailtype [ AWS API Call via CloudTrail ] detail { eventName [ GetSecretValue ] userAgent [ { wildcard awscli/ } ] }}

您可以基于这些事件属性创建规则进行匹配。在此情况下,您针对 awssecretsmanager 作为 source,AWS API Call via CloudTrail 作为 detailtype,以及 GetSecretValue 作为 detaileventName 和处理的 detailuserAgent 的通配符模式进行过滤。您可以将 detailuserAgent 过滤为通配符以捕获来自特定应用程序或用户的事件。

然后您可以将这些事件路由到目标,例如 Amazon CloudWatch Logs 以记录变化。您也可以将它们路由到 Amazon SNS 以通过电子邮件订阅获取通知。或者,您还可以将它们路由到 AWS Lambda 函数中以执行自定义业务逻辑。

创建 EventBridge 规则以处理只读管理事件

使用新的状态 ENABLEDWITHALLCLOUDTRAILMANAGEMENTEVENTS 创建一个针对默认事件总线的规则。

bash aws events putrule name monitorsecretsmanager eventpattern {source [awssecretsmanager] detailtype [AWS API Call via CloudTrail] detail {eventName [GetSecretValue] userAgent [{ wildcard awscli/} ]}} state ENABLEDWITHALLCLOUDTRAILMANAGEMENTEVENTS region useast1

魔方云加速器官网入口

规则详情

配置目标。在这里,目标服务为 CloudWatch Logs,但您可以配置任何受支持的目标。

bash aws events puttargets rule monitorsecretsmanager targets Id=1Arn=arnawslogsuseast1ACCOUNTIDloggroup/aws/events/getsecretvaluelogs region useast1

目标详情

接下来,您可以使用 CloudWatch Log Insights 使用 CloudWatch Log Insights 查询语法来搜索和分析日志数据,从而检索执行这些调用的用户。

识别可疑的数据外泄行为

考虑安全或数据边界团队希望保护存储在 Amazon S3 桶中的数据。该团队需要在调用 API 来列出 S3 桶或列出 S3 对象时收到通知。

当用户或应用程序调用 ListBuckets API 以发现可用桶时,将生成以下 CloudTrail 事件:

json{ version 0 id 345ca690651085b2ff02090493a33cf1 detailtype AWS API Call via CloudTrail source awss3 account 111111111111 time 20231114T172530Z region useast1 resources [] detail { eventVersion 109 userIdentity { type IAMUser principalId principalidentityuuid arn arnawsiam111111111111user/exploiteduser accountId 111111111111 accessKeyId AAAABBBBCCCCDDDDEEEE userName exploiteduser } eventTime 20231114T172530Z eventSource s3amazonawscom eventName ListBuckets awsRegion useast1 sourceIPAddress 11223344 userAgent [awscli/21329 Python/3116 Darwin/2260 exe/x8664 prompt/off command/s3apilistbuckets] requestParameters { Host s3useast1amazonawscom } readOnly true eventType AwsApiCall managementEvent true // 其他详细字段 }}

在这种情况下,您可以创建一个 EventBridge 规则以匹配 awss3 作为源字段,ListBuckets 作为 eventName。

json{ source [ awss3 ] detailtype [ AWS API Call via CloudTrail ] detail { eventName [ ListBuckets ] }}

不过,仅仅列出对象可能只是潜在数据外泄尝试的开始。您可能还想检查 ListObjects 或 ListObjectsV2 作为下一步操作,随后有大量 GetObject API 调用。您可以创建以下规则以匹配这些操作。

json{ source [ awss3 ] detailtype [ AWS API Call via CloudTrail ] detail { eventName [ ListObjects ListObjectsV2 GetObject ] }}

您可以将这些日志信息转发到您的中心安全日志解决方案,或使用异常检测机器学习模型评估这些事件,以确定对这些事件的适当响应。

配置跨帐户和跨区域事件路由

您还可以创建规则,以在多个帐户或区域中接收只读事件,以将您的 AWS 事件集中到一个区域或一个 AWS 帐户中进行审计和监控。举例来说,可以在多个区域中捕获所有工作负载事件,以进行合规报告。

为此,在源帐户或区域的默认总线上创建规则,使用 ENABLEDWITHALLCLOUDTRAILMANAGEMENTEVENTS 状态,并针对目标帐户或区域的默认事件总线或自定义事件总线。您还必须确保在目标帐户或区域中配置了一个规则以 ENABLEDWITHALLCLOUDTRAILMANAGEMENTEVENTS ,才能呼叫目标。

结论

这篇博客显示了客户如何利用新推出的只读事件支援创建丰富的事件驱动响应。现在,您可以观察事件作为潜在的侦查和数据外泄活动的信号,实时识别 AWS 基础设施上任何操作的影响。您还可以使用跨区域和跨帐户的功能,将这些只读事件输送到集中式的 AWS 帐户或区域,加强了在所有 AWS 环境中的审计和监控能力。

欲获得更多无伺服器学习资源,请访问 [Serverless Land](https//serverlesslandcom/

俄罗斯主要互联网故障归因于电信网络问题 媒体

俄罗斯主要互联网故障归因于电信网络问题 媒体

俄罗斯互联网故障原因揭晓关键要点俄罗斯互联网监管机构Roskomnadzor表示,最近在俄罗斯发生的大规模互联网中断是由于某家电信运营商主网络出现问题所致。事件已经解决,服务正在恢复中,受影响的主要是...

在多环境设置中使用 Amazon SageMaker 模型注册、HashiCorp Terrafor

在多环境设置中使用 Amazon SageMaker 模型注册、HashiCorp Terrafor

在多环境设置中推广管道的最佳实践主要要点构建机器学习运营 (MLOps) 平台以便实现数据科学与部署之间的无缝对接。设计 MLOps 框架需遵循监控模型性能、自动重训及数据漂移检测等关键要求。我们的解...

订阅