作者:Shiva Vaidyanathan 和 Huzaifa Zainuddin发布日期:2024年8月27日分类: Amazon Bedrock AWS Security Hub AWS Systems Manager
在当前的云环境中,修复安全发现的挑战显而易见。首先,发现的数量和复杂性可能会使安全团队无所适从,从而延迟处理关键问题。修复工作需要对AWS服务和配置有深入的理解,并经历多个验证周期,这使得经验较少的团队在解决问题时更加困难。某些发现可能还需要跨多个团队或部门进行协调,导致沟通障碍和实施修复的延迟。此外,云环境的动态特性意味着新的安全发现可能快速频繁地出现,因此要求寻找更有效且可扩展的修复解决方案。
本文将利用生成式人工智能 (AI) 和 Amazon Bedrock 的能力,帮助组织简化和有效管理 AWS Security Hub 的控制发现修复。通过使用 Agents for Amazon Bedrock 和 Knowledge Bases for Amazon Bedrock,您可以创建与 AWS Systems Manager Automations 配合的自动化流程,并将其部署到 AWS 账户中。这使得您能够按程序化的持续集成和开发 (CI/CD) 方法,提升规模并及时修复安全发现。
本解决方案遵循 建议性指导,进行 AWS Security Hub 标准发现的自动修复。在深入部署之前,让我们回顾一下解决方案架构的关键步骤,见下图。
一名 SecOps 用户使用 Amazon Bedrock 的代理聊天控制台输入响应。例如,他们可能指定“生成修复发现的自动化,数据库迁移服务复制实例不应公开。”如果您已经在 Security Hub 中聚合发现结果,您仍然可以将其导出到 Amazon 简单存储服务 (Amazon S3) 桶并使用我们的解决方案进行修复。
风驰vnp接到请求后,代理使用来自知识库的上下文调用大型语言模型 (LLM)。知识库包含带有 AWS 文档的 Amazon S3 数据源。数据使用 Amazon Titan Embeddings G1 模型 转换为嵌入,并存储在 Amazon OpenSearch 向量数据库 中。
接下来,代理将信息传递给一个调用 AWS Lambda 函数 的操作组。该 Lambda 函数用于生成 Systems Manager 自动化文档。
Lambda 函数的输出结果会发布到 AWS CodeCommit 存储库中。
然后,用户验证生成的特定服务自动化模板文件。在这种情况下,用户将导航至文档管理系统 (DMS) 文件夹并验证模板文件。一旦文件验证通过,用户会将模板文件置于存储库的一个新部署文件夹中。

这将启动 AWS CodePipeline,并调用 AWS CodeBuild 执行构建任务。对模板进行验证处理。
亚马逊简单通知服务 (Amazon SNS) 会向 SecOps 用户发送通知,以批准变更以便于部署。
一旦更改被批准,将生成 CloudFormation 模板用于创建 SSM 自动化文档。
如果提供了执行角色,通过 AWS CloudFormation 堆栈集,SSM 自动化文档将在指定的工作负载账户中执行。如果未提供执行角色,则 SSM 自动化文档仅部署到当前账户。
执行 SSM 自动化文档以修复发现。
用户通过 AWS 管理控制台导航到 AWS Security Hub 服务,并验证控制的合规状态例如,DMS1。
本文将重点讨论两种示例安全发现的修复:
亚马逊 S3 通用桶应要求请求使用 SSLAWS 数据库迁移服务复制实例不应公开这些例子展示了操作组进行修复的两种潜在路径。它也展示了操作组与增强检索生成 (RAG) 的能力,以及如何利用 Amazon Bedrock 的知识库来自动化安全修复。
在您部署解决方案之前,需要满足以下前提条件:
一个具有必要权限的 AWS 账户,以访问和配置特定 AWS 区域所需的服务 AWS Security Hub Amazon S3 AWS CodeCommit AWS CodePipeline AWS CodeBuild AWS Systems Manager AWS Lambda 和 Amazon OpenSearch 服务。授予您账户对 Anthropic Claude 3 Sonnet LLM 模型的访问权限。在账户中启用 AWS Config,确保配置记录器已配置为记录 AWS 账户中的所有资源。在账户中启用 Security Hub。将 AWS Config 等其他 AWS 安全服务集成到 Security Hub 中,以收集发现内容。理解一般关键术语:Amazon Bedrock 代理提示知识库部署解决方案需要以下五个主要步骤。
配置知识库使您的 Amazon Bedrock 代理能够访问 AWS 账户配置的信息库。按照以下步骤设置您的知识库。
准备数据源:
创建一个用于存储知识库数据源的 S3 桶,如 KnowledgeBaseDataSourceltAccountIdgt。定义数据源。对于本解决方案,我们使用涵盖所有 AWS 提供的自动化的三个 PDF 格式的 AWS 文档指南。将 Git 存储库中数据源文件夹中的文件上传到刚刚创建的 S3 桶。创建知识库:
访问 Amazon Bedrock 控制台,登录并直接转到 知识库 部分。给您的知识库命名。选择一个清晰且描述性的名字,反映出知识库的目的,例如 AWSAutomationRunbooksPlaybooks。选择 AWS 身份与访问管理 (IAM) 角色。分配一个预配置的 IAM 角色,确保具备必要的权限。通常最好让 Amazon Bedrock 为您创建该角色,以确保其拥有正确的权限。选择默认嵌入模型。Amazon Titan Embeddings G1 是一个文本模型,已预配置并准备好使用。选择 快速创建新向量存储。允许 Amazon Bedrock 在 OpenSearch 服务中为您创建和管理向量存储。审查并确认。仔细检查所有输入的信息是否准确,特别注意 S3 桶 URI 和 IAM 角色详细信息。注意: 成功创建后,复制知识库 ID,因为您将在下一步中引用它。
同步数据源:
选择新创建的知识库。在 数据源 部分,选择 同步 开始数据摄取。当数据摄取完成时,如果成功,则会出现绿色成功横幅。留言框-