公司新闻

通过使用 AWS Service Catalog 来分散安全通知,提高安全事件响应时间 安全博客

2026-01-27 14:57:54



通过利用 AWS Service Catalog 分散安全通知来提高安全事件响应时间

关键要点

利用 AWS Service Catalog 提供自助服务机制,使工作负载所有者迅速获取安全通知。通过电邮接收近乎实时的 AWS Security Hub 通知,能够快速响应潜在安全事件。该解决方案强调涉及应用程序和资源的所有者,减少安全事件的响应时间和潜在风险。

许多组织持续接收与安全相关的发现,这些发现强调了未按照组织安全政策配置的资源。这些发现可能来自于威胁检测服务,如 Amazon GuardDuty,或来自云安全态势管理 (CSPM) 服务,如 AWS Security Hub,或其他来源。一个重要的问题是:您的团队如何以及何时被通知这些发现?

通常,与安全相关的发现会被汇聚到一个集中式的安全团队或安全运营中心 (SOC)。尽管在标准位置记录日志、发现和指标是一种最佳实践,但集中团队可能并不是应对此类事件中进行配置更改的最佳人选。将受影响的应用程序和资源的所有者或开发人员纳入其中非常关键,因为他们具备做出适当响应所需的背景知识。安全团队通常会采取手动流程来定位和联系工作负载所有者,但他们可能未能及时更新当前工作负载的所有者信息。通知工作负载所有者的延迟会延长安全事件或资源配置错误的解决时间。

本文概述了一种使用 AWS Service Catalog 提供自助服务机制的去中心化安全通知方法,以提高响应时间。通过该机制,工作负载所有者可以通过电邮订阅接收他们的 AWS 账户或工作负载的近实时 Security Hub 通知。通知内容包括来自 Security Hub 产品集成 的信息,如 GuardDuty、AWS Health、Amazon Inspector 以及 第三方产品,还包括与安全标准不合规的通知。这些通知能更好地帮助您的团队适当配置 AWS 资源,从而减少未保护资源的暴露时间。

最终用户体验

在您按本文所述方式部署解决方案后,指定组中的用户可以访问称为 SubscribeToSecurityNotifications 的低权限 AWS IAM Identity Center 权限集,适用于他们的 AWS 账户如图 1 所示。

用户选择 SubscribeToSecurityNotifications 后,会被重定向到订阅安全通知的 AWS Service Catalog 产品页面,并看到后续操作的说明如图 2 所示。

用户随后可以点击 Launch product 按钮,输入一个或多个电子邮箱地址,并选择通知的最低严重性级别Critical、High、Medium 或 Low。如果 AWS 账户有多个工作负载,用户可以通过指定资源标签选择仅接收与他们拥有的应用程序相关的通知。他们还可以选择限制安全通知只包含或排除特定的安全产品如图 3 所示。

用户确认订阅后,将开始接收有关新的 Security Hub 发现的电子邮件通知,几乎实时发送。每封邮件包含发现在主题行中的摘要、账户信息、发现细节、建议如有、受影响资源及其标签列表,以及到 Security Hub 发现的 IAM Identity Center 快捷链接如图 4 所示。邮件最后附有发现的原始 JSON。

点击电子邮件中的链接,用户即可直接访问 AWS 账户及 Security Hub 中的发现,查看更多详情并搜索相关发现如图 5 所示。

解决方案概述

我们提供了两种部署选项:一种是简单的选项,另一种是更先进的选项。

小黄鸭加速器免费3小时入口

图 6 显示了利用请求用户的 IAM 权限创建通知所需资源的简单部署选项。

解决方案涉及以下步骤:

在 AWS 账户中创建一个中央的 Subscribe to AWS Security Hub notifications Service Catalog 产品,该账户可以与整个组织的 AWS Organizations 共享,或与特定的 组织单位 (OUs) 共享。根据可以启动该产品的 IAM 角色或 IAM Identity Center 权限集配置产品。通过指定的 IAM 角色或权限集登录的用户可以从 AWS 管理控制台访问共享的 Service Catalog 产品,并输入所需的参数,例如他们的电子邮件地址及通知的最低严重性级别。该 Service Catalog 产品创建一个 AWS CloudFormation 堆栈,创建一个 Amazon Simple Notification Service (Amazon SNS) 主题和一个 Amazon EventBridge 规则,该规则根据用户的参数如最低严重性级别过滤新的 Security Hub 发现事件。该规则会使用本机 EventBridge 的 输入转换器 格式化 Security Hub JSON 事件消息,使其更易于阅读。格式化后的消息通过 SNS 发送到用户邮箱。

我们还提供了一个更先进且推荐的部署选项,如图 7 所示。该选项通过使用 AWS Lambda 函数来增强消息,例如将 UTC 转换为所选时区,为邮件主题设置为发现摘要,并包括到发现的 IAM Identity Center 快捷链接。为了不要求用户有权限创建 Lambda 函数和 IAM 角色,使用 Service Catalog 启动角色 代表用户创建资源,并使用 IAM 权限边界 限制该角色。

该架构与之前的选项相似,但有以下变化:

事先创建一个 CloudFormation StackSet,用于在每个 AWS 账户中预先创建一个 IAM 角色和一个 IAM 权限边界策略。IAM 角色被 Service Catalog 产品用作启动角色,具有创建 CloudFormation 资源如 SNS 主题和创建受到 IAM 权限边界策略限制的 IAM 角色的权限,允许其仅发布 SNS 消息和写入 Amazon CloudWatch 日志。想要订阅安全通知的用户只需拥有最小权限:足以访问 Service Catalog 并将前面步骤中创建的角色传递到 Service Catalog传递给 Service Catalog。该解决方案提供了一个样本 AWS Identity Center 权限集,具备这些最小权限。Service Catalog 产品使用 Lambda 函数格式化消息,使其更易于阅读。该堆栈创建了一个被权限边界限制的 IAM 角色,该角色由 Lambda 函数假定,以发布 SNS 消息。

前提条件

安装此解决方案需要以下内容:

对 AWS Organizations 具有管理员级别的访问权限。AWS Organizations 必须具备 全部功能。在您监视的账户中启用 Security Hub。用于托管此解决方案的 AWS 账户,例如 Security Hub 管理员账户或共享服务账户。此账户不能是管理账户。一个或多个 AWS 账户来消费 Service Catalog 产品。每个 AWS 账户中用于访问 Service Catalog 产品的 AWS IAM Identity Center 或联合 IAM 角色名称的身份验证。可选,仅当您选择使用 Service Catalog 启动角色时CloudFormation StackSet 创建访问权限,必须来自管理账户或 CloudFormation 委派管理员账户。该解决方案支持来自多个 AWS 区域的通知。如果您在多个区域中使用 Security Hub,请评估 Security Hub 跨区域聚合 功能,并为适用的区域 启用 它。

部署过程

部署此解决方案分为四个步骤:

配置 AWS Organizations 以允许 Service Catalog 产品共享。可选,推荐使用 CloudFormation StackSets 在各账户中部署 IAM 角色。创建 Service Catalog 产品,以允许用户订阅 Security Hub 通知。这需要在您想监控安全发现的特定区域中部署,或在您启用了 跨区域聚合 的区域中。可选,推荐提供最小权限的 IAM Identity Center 权限集。

第一步:配置 AWS Organizations

在 AWS Organizations 中必须启用 Service Catalog 组织共享,并且托管解决方案的账户必须是 Service Catalog 的委派管理员之一。这样可以让 Service Catalog 产品与组织中的其他 AWS 账户共享。

要启用此配置,请以管理 AWS 账户登录 AWS 管理控制台,启动 AWS CloudShell 服务,并输入以下命令。将 ltAccount IDgt 变量替换为将托管 Service Catalog 产品的账户的 ID。

bash

启用 AWS Organizations 在 Service Catalog 中的集成

aws servicecatalog enableawsorganizationsaccess

提名该账户成为 Service Catalog 的委派管理员

aws organizations registerdelegatedadministrator accountid serviceprincipal servicecatalogamazonawscom

第二步:可选,推荐使用 CloudFormation StackSets 在各账户中部署 IAM 角色

以下步骤创建一个 CloudFormation StackSet 来在您的账户中部署 Service Catalog 启动角色和权限边界。如果您计划启用 Lambda 格式化,这样做非常推荐,因为如果您跳过此步骤,只有具备创建 IAM 角色权限的用户才能订阅安全通知。

通过 StackSets 部署 IAM 角色

通过使用 AWS Service Catalog 来分散安全通知,提高安全事件响应时间 安全博客以管理 AWS 账户登录 AWS 管理控制台或作为 CloudFormation 委派管理员 登录。下载用于创建 StackSet 的 CloudFormation 模板。进入 AWS CloudFormation 页面。选择 Create stack,然后选择 With new resources (standard)。选择 Upload a template file,上传您之前下载的 CloudFormation 模板 SecurityHubnotificationsIAMrolestacksetyaml。然后选择 Next。输入堆栈名称 SecurityNotificationsIAMrolesStackSet。对参数输入以下值: AWS Organization ID:启动 AWS CloudShell 并输入参数描述中的命令以获取组织 ID。Organization root ID 或 OU ID(s):要将 IAM 角色和权限边界部署到每个账户,使用 CloudShell 输入参数描述中的命令获取组织根 ID。要部署到特定的 OU,请输入逗号分隔的 OU ID 列表。确保包含托管解决方案的账户的 OU。Current Account Type:根据需要选择 Management account 或 Delegated administrator account。Formatting method:表示您是否计划使用 Lambda 格式化 Security Hub 通知,或使用不带 Lambda 函数的原生 EventBridge 格式。如果不确定,选择 Lambda。选择 Next,然后可选性地输入标签并选择 Submit。等待堆栈创建完成。

第三步:创建 Service Catalog 产品

接下来,运行包含的安装脚本,以创建部署 Service Catalog 产品所需的 CloudFormation 模板和 组合。

运行安装脚本

登录到将托管解决方案的 AWS 账户和区域,并启动 AWS CloudShell 服务。在终端中输入以下命令:

bash git clone https//githubcom/awssamples/improvingsecurityincidentresponsetimesbydecentralizingnotificationsgit cd improvingsecurityincidentresponsetimesbydecentralizingnotifications /installsh

脚本会询问以下信息:

您是是否使用 Lambda Formatter与原生 EventBridge Formatter 相对。用于在电子邮件通知中显示日期和时间的 时区,例如 Australia/Melbourne。默认是 UTC。Service Catalog 提供者显示 名称,可以是您的公司、组织或团队名称。Service Catalog 产品版本,默认为 v1。若您对产品 CloudFormation 模板文件进行了更改,则递增此值。您是否在步骤 2 中部署了 IAM 角色 StackSet。将使用 Service Catalog 产品的角色类型。如果您使用 IAM Identity Center,请输入 IAMIdentityCenterPermissionSet。如果您配置了联合 IAM 角色,请输入 IAM role name。在您之前的步骤中如果输入的是 IAMIdentityCenterPermissionSet,则输入 IAM Identity Center URL 子域。这用于创建电子邮件中指向 Security Hub 的快捷 URL 链接。例如,如果您的 URL 为 https//dabcd1234awsappscom/start/#/,则输入 dabcd1234。在 AWS 账户中拥有访问 Service Catalog 产品的主体。如果您使用 IAM Identity Center,权限集名称将是该值。如果您计划在下一步步骤 4中部署提供的权限集,请按回车键接受默认值 SubscribeToSecurityNotifications。否则,输入适当的权限集名称例如 AWSPowerUserAccess或用户使用的 IAM 角色名称。

脚本会创建以下 CloudFormation 堆栈:

SecurityHubnotificationsSCBucketyaml:该堆栈创建一个 Amazon Simple Storage (Amazon S3) 桶,包含与 Service Catalog 产品对应的 CloudFormation 模板文件 SecurityHubNotificationsyaml,脚本根据安装脚本问题的答案修改模板文件的 Mappings 部分,然后上传文件到桶。SecurityHubnotificationsServiceCatalogPortfolioyaml:该堆栈使用上一步骤中的 Amazon S3 桶创建 Service Catalog 组合和产品,并授予所需主体