通过 Amazon SageMaker Studio 和 Amazon Bedrock,为 Amaz

利用 Amazon SageMaker Studio 和 Amazon Bedrock 生成 Amazon Security Lake 的 AI 驱动见解

撰写者:Jonathan Nguyen Harsh Asnani Kartik Kannapur 和 Madhunika Reddy Mikkili发布日期:2024年1月16日 来源:Amazon Bedrock 和 Amazon SageMaker Studio

关键要点

在如何利用 Amazon SageMaker Studio 分析 Amazon Security Lake 的时间序列数据方面进行深入讨论,帮助识别关键信息领域并优化安全作业。结合使用 Amazon Bedrock,可加快安全调查,例如,通过自然语言生成 SQL 查询,集中关注 Security Lake 内的相关数据源。本文展示了实际的威胁分析练习,帮助安全分析师回答关键问题,从而识别潜在安全漏洞或配置错误,降低安全事件的检测时间。

在 第一部分 中,我们讨论了如何使用 Amazon SageMaker Studio 分析 Amazon Security Lake 中的时间序列数据,以识别关键的安全领域并优化工作流程。Security Lake 通过从 AWS 和非 AWS 资源集中和规范化安全数据,提供了额外的环境可见性。安全团队可以使用 Amazon Athena 查询 Security Lake 中的数据,以帮助进行安全事件调查或主动威胁分析。减少安全团队的 平均响应时间 或 检测时间 可以降低组织的安全脆弱性与风险,尽量减少数据泄露并减少运营中断。尽管您的安全团队可能已经熟悉 AWS 安全日志并正在使用 SQL 查询来筛选数据,但确定适当的日志源进行审查和撰写自定义 SQL 查询可能会使调查耗时更久。此外,当安全分析师使用 SQL 查询进行分析时,结果是某一个时间点的数据,并不会自动考虑之前查询的结果。

在本文中,我们展示了如何通过使用 Amazon Bedrock,一种完全管理的生成式人工智能AI服务,扩展 SageMaker Studio 的能力,该服务原生提供来自领先 AI 公司的高效基础模型FMs,并且具有单一 API 接口。通过 Amazon Bedrock,安全分析师能够利用自然语言助手自动生成 SQL 查询,专注于 Security Lake 中的相关数据源,并使用以前 SQL 查询的结果来增强未来查询的结果。我们通过威胁分析练习展示安全分析师如何利用自然语言处理技术来回答诸如哪个 AWS 账户有最多的 AWS Security Hub 发现、AWS 资源中的异常网络活动,或哪些 AWS 身份与访问管理 (IAM) 实体引发高度可疑活动等问题。通过识别潜在的安全漏洞或错误配置,您可以减少 检测时间,并指明特定资源以评估整体影响。我们还讨论了自定义 Amazon Bedrock 与 Security Lake 数据集成的方法。尽管 大型语言模型 (LLMs) 是很有用的对话伙伴,但需要注意的是,LLM 的响应可能会包含幻觉,可能不反映真实情况。我们讨论了一些验证 LLM 响应和减轻幻觉的机制。本文最适合对生成式人工智能概念和示例解决方案中使用的 AWS 服务有深入了解的技术人员。

解决方案概述

下面的图1描绘了示例解决方案的架构。

在部署示例解决方案之前,请完成以下先决条件:

在您的组织中启用 Security Lake,并指定一个 代理管理员 帐户来管理所有成员账户的 Security Lake 配置。根据需要配置 Security Lake,添加合适的日志源,如 Amazon Virtual Private Cloud (VPC) 流量日志、AWS Security Hub、AWS CloudTrail 和 Amazon Route53。从源 Security Lake AWS 账户创建 订阅查询访问权限 到订阅者 AWS 账户。在 AWS 资源访问管理器 (AWS RAM) 中接受订阅者 AWS 账户的 资源共享请求。在订阅者 AWS 账户中在 AWS Lake Formation 中创建数据库链接,并授予对 Security Lake AWS 账户中 Athena 表的访问权限。在将要部署解决方案的 AWS 订阅者帐户中授予 Claude v2 模型访问权限 的权限。如果您未在 AWS 账户中启用模型,则会收到错误信息。

在设置完先决条件后,示例解决方案架构提供了以下资源:

为 SageMaker 配置一个带有互联网网关、NAT 网关和所有 AWS 服务的 VPC 端点。需要一个互联网网关或 NAT 网关来安装外部开源软件包。在 VPCOnly 模式下创建一个 SageMaker Studio 域,并关联一个与 IAM 角色绑定的单个 SageMaker 用户配置文件。在 SageMaker 部署中,还提供了一个用于 SageMaker 域的 Amazon 弹性文件系统 (Amazon EFS)。创建一个专用的 IAM 角色,以限制从特定的无类别域间路由 (CIDR) 访问 SageMaker 域的预签名 URL。一个包含 SageMaker 用户配置文件使用的人工智能和机器学习AI/ML工作流的 Python 笔记本的 AWS CodeCommit 存储库。创建一个运动组来处理 Security Lake 查询,并为输出位置配置一个 S3 存储桶适用于输出存储桶的访问日志配置。

成本

在部署示例解决方案之前,了解所用 AWS 服务的成本因素非常重要。成本将主要取决于您在 Security Lake 中交互的数据量和 SageMaker Studio 中运行资源的持续时间。

部署 SageMaker Studio 域并配置默认设置为 mlt3medium 实例类型。有关更详细的细分,请参见 SageMaker Studio 定价。重要的是在不使用应用程序时将其关闭,因为您将按照应用程序运行的小时数收费。请查看 AWS 样本存储库以获取自动关闭扩展。Amazon Bedrock 的按需定价基于所选的 LLM 和输入输出令牌的数量。令牌由几个字符组成,指模型学习理解用户输入和提示的基本文本单位。有关更详细的细分,请参见 Amazon Bedrock 定价。生成的 SQL 查询通过 Athena 被调用。Athena 的费用基于在 Security Lake 中为该查询扫描的数据量。有关更详细的细分,请参见 Athena 定价。

部署示例解决方案

您可以通过 AWS 管理控制台 或 AWS Cloud Development Kit (AWS CDK) 部署示例解决方案。有关使用 AWS CDK 的说明和更多信息,请参阅 AWS CDK 入门。

选项 1:使用控制台通过 AWS CloudFormation 部署

使用控制台登录到您的订阅者 AWS 账户,然后选择 Launch Stack 按钮,打开预加载有该解决方案模板的 AWS CloudFormation 控制台。CloudFormation 堆栈完成大约需要 10 分钟。

选项 2:使用 AWS CDK 部署

克隆 Security Lake 生成 AI 示例存储库。导航到项目的源文件夹 (/amazonsecuritylakegenerativeai/source)。

使用以下命令安装项目依赖。

bashnpm install g awscdklibnpm install

在部署时,您必须提供以下所需参数:

IAMroleassumptionforsagemakerpresignedurl 您希望用于访问 AWS 控制台以 创建预签名 URL 的 现有 IAM 角色。securitylakeawsaccount Security Lake 部署的 AWS 账户 ID。

在终端中运行以下命令,同时登录到您的订阅者 AWS 账户。将 lt INSERTAWSACCOUNTgt 替换为您的账户编号,将 lt INSERTREGIONgt 替换为您希望部署该解决方案的 AWS 区域。

bashcdk bootstrap aws//lt INSERTAWSACCOUNTgt/lt INSERTREGIONgtcdk deploy parameters IAMroleassumptionforsagemakerpresignedurl=arnawsiamlt INSERTAWSACCOUNTgtrole/lt INSERTIAMROLENAMEgt parameters securitylakeawsaccount=lt INSERTSECURITYLAKEAWSACCOUNTIDgt

通过 Amazon SageMaker Studio 和 Amazon Bedrock,为 Amaz

部署后配置步骤

现在您已经部署了解决方案,必须添加权限以允许 SageMaker 和 Amazon Bedrock 与您的 Security Lake 数据进行交互。

授予 Security Lake 数据库权限

复制 SageMaker 用户配置文件的 Amazon 资源名称 (ARN)

basharnawsiamlt accountidgtrole/sagemakeruserprofileforsecuritylake

转到 Lake Formation 控制台。

选择 amazonsecuritylakegluedblt YOURREGIONgt 数据库。例如,如果您的 Security Lake 位于 useast1,值将为 amazonsecuritylakegluedbuseast1。在 操作 中,选择 授予。在 授予数据权限 中,选择 SAML 用户和组。粘贴步骤 1 中的 SageMaker 用户配置文件 ARN。在 数据库权限 中,选择 描述,然后选择 授予。

授予 Security Lake 表的权限

您必须对 Security Lake 中配置的每个源重复这些步骤。例如,如果您在 Security Lake 中配置了四个源,则必须为 SageMaker 用户配置文件授予四个表的权限。如果您有多个源分布在不同的区域,并且未在 Security Lake 中配置汇总区域,则必须针对每个区域中的每个源重复这些步骤。

以下示例为 Security Lake 中的 Security Hub 表授予权限。有关授予表权限的更多信息,请参见 AWS LakeFormation 用户指南。

复制 SageMaker 用户配置文件 ARN

basharnawsiamlt accountidgtrole/sagemakeruserprofileforsecuritylake

转到 Lake Formation 控制台。

选择 amazonsecuritylakegluedblt YOURREGIONgt 数据库。例如,如果您的 Security Lake 数据库位于 useast1,则该值为 amazonsecuritylakegluedbuseast1。

选择 查看表。

选择 amazonsecuritylaketablelt YOURREGIONgtshfindings10 表。例如,如果您的 Security Lake 表在 useast1,则该值为 amazonsecuritylaketableuseast1shfindings10。

注意 每个表必须单独授予访问权限。在选择 所有表 时,并不会授予查询 Security Lake 所需的访问权限。

在 操作 中,选择 授予。在 授予数据权限 中,选择 SAML 用户和组。粘贴步骤 1 中的 SageMaker 用户配置文件 ARN。在 表权限 中,选择 描述,然后选择 授予。

启动您的 SageMaker Studio 应用

现在您已经为 SageMaker 用户配置文件授予了权限,可以继续启动与该用户配置文件相关联的 SageMaker 应用。

导航到控制台中的 SageMaker Studio 域。选择 SageMaker 域 securitylakegenailt subscriberaccountidgt。选择 SageMaker 用户配置文件 sagemakeruserprofileforsecuritylake。在 启动 中,选择 Studio。

克隆 Python 笔记本

作为解决方案部署的一部分,我们在 CodeCommit 中创建了一个基础的 Python 笔记本,以便在您的 SageMaker 应用中使用。

导航到控制台中的 CloudFormation。在 堆栈 部分,选择 SageMakerDomainStack。选择 输出 选项卡。复制 SageMaker 笔记本生成的 AI 存储库 URL 的值。例如: https//gitcodecommituseast1amazonawscom/v1/repos/sagemakergenairepo返回到您的 SageMaker 应用中。在 SageMaker Studio 的左侧边栏中,选择 Git 图标一个带有两个分支的菱形,然后选择 克隆存储库。

在 Git 存储库 URLgit下粘贴步骤 4 的 CodeCommit 存储库链接。在粘贴 URL 之后,选择 克隆 https//gitcodecommituseast1amazonawscom/v1/repos/sagemakergenairepo,然后选择 克隆。

注意 如果您没有从自动填充列表中选择,SageMaker 将无法克隆存储库并返回无效 URL 的消息。

配置您的笔记本以使用生成 AI

在下一部分,我们将介绍我们如何配置该笔记本,以及我们为何使用特定的 LLM、代理、工具以及附加配置,以便

小熊加速器ios
  • 2026-01-27 14:51:49
  • 21