能力 2. 为生成式 AI RAG 技术提供安全的访问、使用和实现 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

能力 2. 为生成式 AI RAG 技术提供安全的访问、使用和实现

下图说明了为生成式 AI 账户推荐的用于检索增强生成 (RAG) 功能的AWS服务。此场景的范围是保护RAG功能。

AWS为生成式 AI 账户推荐的服务以RAG实现功能

Generative AI 账户包括将嵌入内容存储在矢量数据库中、为用户存储对话和维护即时存储所需的服务,以及一套实现安全护栏和集中式安全治理所需的安全服务。您应该为VPC环境配置为访问的 Amazon S3 中的模型调用日志、提示存储和知识库数据源存储桶创建 Amazon S3 网关终端节点。 您还应该为VPC环境配置为访问的 CloudWatch 日志创建 CloudWatch 日志网关终端节点。

理由

Retrie@@ ve Augented Generation (RAG) 是一种生成式人工智能技术,用于系统通过在生成答案之前从外部权威知识库中检索信息来增强其响应。此过程FMs通过允许他们访问特定于上下文的数据来 up-to-date帮助克服局限性,从而提高所生成响应的准确性和相关性。此用例指的是生成式 AI 安全范围矩阵的范围 3。 在 Scope 3 中,您的组织使用预先训练的 FM(例如 Amazon Bedrock 中提供的那些 FM)来构建生成式 AI 应用程序。在此范围内,您可以控制您的应用程序和应用程序使用的任何客户数据,而FM提供商则控制预先训练的模型及其训练数据。 

在向用户提供访问 Amazon Bedrock 知识库的权限时,您应考虑以下关键安全注意事项: 

  • 安全访问模型调用、知识库、对话历史记录和提示存储库 

  • 对对话、提示存储和知识库进行加密

  • 针对潜在安全风险(例如及时注入或敏感信息泄露)发出警报

下一节将讨论这些安全注意事项和生成式 AI 功能。 

设计注意事项

我们建议您避免使用敏感数据自定义 FM(请参阅本指南后面的生成式 AI 模型自定义部分)。相反,使用该RAG技术与敏感信息进行交互。这种方法有几个优点: 

  • 更严格的控制和可见性。通过将敏感数据与模型分开,您可以对敏感信息进行更好的控制和可见性。可以根据需要轻松编辑、更新或删除数据,这有助于确保更好的数据治理。 

  • 缓解敏感信息泄露。RAG允许在模型调用期间与敏感数据进行更可控的交互。这有助于降低敏感信息意外泄露的风险,如果将数据直接整合到模型的参数中,可能会发生这种情况。 

  • 灵活性和适应性。将敏感数据与模型分开可以提高灵活性和适应性。随着数据要求或法规的变化,可以更新或修改敏感信息,而无需重新训练或重建整个语言模型。

Amazon Bedrock 知识库

您可以使用 Amazon Bedrock 知识库通过安全高效FMs地连接自己的数据源来构建RAG应用程序。此功能使用 Amazon OpenSearch Serverless 作为矢量存储,可以高效地从您的数据中检索相关信息。然后,FM使用这些数据来生成响应。您的数据将从 Amazon S3 同步到知识库,并生成嵌入内容以实现高效检索。

安全性注意事项

生成式 AI RAG 工作负载面临着独特的风险,包括数据源RAG的数据泄露以及威胁行为者的即时注入或恶意软件导致RAG数据源中毒。Amazon Bedrock 知识库为数据保护、访问控制、网络安全、日志和监控以及输入/输出验证提供了强大的安全控制,有助于降低这些风险。 

补救措施

数据保护

使用您创建、拥有和管理的AWS密钥管理服务 (AWSKMS) 客户托管密钥对知识库数据进行静态加密。 在为知识库配置数据摄取任务时,请使用客户管理的密钥对作业进行加密。如果您选择让 Amazon Bedrock 在亚马逊 OpenSearch 服务中为您的知识库创建矢量存储,Amazon Bedrock 可以将您选择的AWSKMS密钥传递给亚马逊 OpenSearch 服务进行加密。

您可以对通过使用密AWSKMS钥查询知识库生成响应的会话进行加密。 您将知识库的数据源存储在 S3 存储桶中。 如果您使用客户托管密钥对 Amazon S3 中的数据源进行加密,请将策略附加到您的知识库服务角色。 如果包含您的知识库的矢量存储配置了 Secr AWS ets Manager 密钥,请使用客户管理的密钥对密钥进行加密。

有关更多信息和要使用的策略,请参阅 Amazon Bedrock 文档中的知识库资源加密

身份和访问管理

遵循最低权限原则,为 Amazon Bedrock 的知识库创建自定义服务角色。创建允许 Amazon Bedrock 担任此角色的信任关系,并创建和管理知识库。将以下身份策略附加到自定义知识库服务角色: 

知识库支持安全配置,用于为您的知识库设置数据访问策略,为您的私有 Amazon OpenSearch Serverless 知识库设置网络访问策略。 有关更多信息,请参阅 Amazon Bedrock 文档中的创建知识库服务角色

输入和输出验证

输入验证对于 Amazon Bedrock 知识库至关重要。在将文件上传到数据源之前,使用 Amazon S3 中的恶意软件防护来扫描文件中是否存在恶意内容。有关更多信息,请参阅AWS博客文章《使用适用于 Amazon S3 的防病毒软件将恶意软件扫描集成到您的数据摄取管道中》。

识别并筛选出用户上传到知识库数据源时可能出现的提示注入。 此外,检测和编辑个人身份信息 (PII),将其作为数据摄取管道中的另一个输入验证控件。Amazon Comprehend 可以帮助检测PII和编辑用户上传到知识库数据源中的数据。有关更多信息,请参阅 Amazon Comprehend 文档中的检测PII实体

我们还建议您使用 Amazon Macie 来检测知识库数据源中的潜在敏感数据并生成警报,以增强整体安全性和合规性。实施适用于 Amazon Bedrock 的 Guardrails,以帮助强制执行内容政策,阻止不安全的输入/输出,并根据您的要求帮助控制模型行为。

推荐的AWS服务

Amazon OpenSearch 无服务器

Amazon OpenSearch Serverles s 是一种针对亚马逊 OpenSearch服务的按需自动缩放配置。S OpenSearch erverless OpenSearch 集合是根据应用程序需求扩展计算容量的集群。Amazon Bedrock 知识库使用 Amazon S OpenSearch erverless 作为嵌入内容,使用 Amazon S3 作为与 OpenSearch 无服务器矢量索引同步的数据源。 

为您的 OpenSearch 无服务器矢量存储实施强身份验证和授权。 实施最小权限原则,即仅向用户和角色授予必要的权限。 

助 OpenSearch Serverless 中的数据访问控制,您可以允许用户访问集合和索引,无论其访问机制或网络来源如何。您可以通过适用于集合和索引资源的数据访问策略来管理访问权限。 使用此模式时,请验证应用程序是否将用户的身份传播到知识库,并且知识库强制执行基于角色或属性的访问控制。这是通过使用最小权限原则配置知识库服务角色并严格控制对该角色的访问来实现的。 

OpenSearch Serverless 支持服务器端加密 AWSKMS,以保护静态数据。使用客户管理的密钥对这些数据进行加密。 要允许在摄取数据源的过程中为临时数据存储创建AWSKMS密钥,请在知识库中附加针对 Amazon Bedrock 服务角色的策略。 

私有访问权限可以应用于以下一项或两项: OpenSearch无服务器管理的VPC终端节点和支持的AWS服务,例如 Amazon Bedrock。AWS PrivateLink用于在您的VPC和 OpenSearch无服务器端点服务之间创建私有连接。使用网络策略规则指定 Amazon Bedrock 访问权限。

使用 Amazon 监控 OpenSearch 无服务器 CloudWatch,Amazon 会收集原始数据并将其处理为可读的近乎实时的指标。 OpenSearch Serverless 与集成 AWS CloudTrail,它会将 OpenSearch 无服务器的API呼叫捕获为事件。 OpenSearch 该服务与 Amazon EventBridge 集成,可通知您某些影响您域名的事件。 作为多个合规计划的一部分,第三方审计师可以评估 OpenSearch Serverless的安全性和AWS合规性。

Amazon S3

将知识库的数据源存储在 S3 存储桶中。 如果您使用自定义密AWSKMS钥(推荐)对 Amazon S3 中的数据源进行了加密,请将策略附加到您的知识库服务角色。  在将文件上传到数据源之前,使用 Amazon S3 中的恶意软件防护来扫描文件中是否存在恶意内容。我们还建议您将模型调用日志和常用提示作为提示存储在 Amazon S3 中托管。所有存储桶都应使用客户管理的密钥进行加密。为了进一步加强网络安全,您可以为VPC环境配置为访问的 S3 存储桶创建网关终端节点。 应记录和监控@@ 访问权限。如果您有业务需要保留 Amazon S3 对象的历史记录,请启用版本控制。使用 A ma zon S3 对象锁定应用对象级不可变性。您可以使用基于资源的策略来更严格地控制对 Amazon S3 文件的访问权限。 

Amazon Comprehend

Amazon C omprehend 使用自然语言NLP处理 () 从文档内容中提取见解。 您可以使用 Amazon Comp rehend检测PII和编辑英语或西班牙语文本文档中的实体。 将 Amazon Comprehend 集成到您的数据摄取管道中,以便在将文档编入知识库中的索引之前自动检测PII和编辑文档RAG中的实体,从而帮助确保合规性并保护用户隐私。根据文档类型,您可以使用 Amazon Textr act 提取文本并将其发送到 Comprehend AWS 进行分析和编辑。

Amazon S3 允许您在创建文本分析、主题建模或自定义 Amazon Comprehend 任务时对输入文档进行加密。Amaz on Comprehend 与AWSKMS集成以加密存储卷中用于启动*和创建*任务的数据,并使用客户托管密钥对启动*任务的输出结果进行加密。 我们建议您在资源策略中使用 aws: SourceArn 和 aws: SourceAccount 全局条件上下文密钥来限制 Amazon Comprehend 向该资源提供的其他服务的权限。 用于AWS PrivateLink在您的VPC和 Amazon Comprehend 终端节点服务之间创建私有连接。按照最低权限原则为 Amazon Comprehend 实施基于身份的政策。 Amazon Comprehend 已与 Amazon Comprehend AWS CloudTrail集成,后者将对亚马逊 Comprehend 的API呼叫记录为事件。作为多个合规计划的一部分,第三方审计师可以评估 Amazon Comprehend 的安全与合规性。AWS

Amazon Macie

Macie 可以帮助识别知识库中的敏感数据,这些数据以数据源、模型调用日志和提示存储在 S3 存储桶中的形式存储。 有关 Macie 安全最佳实践,请参阅本指南前面的 Macie 部分。 

AWS KMS 

使用客户托管密钥加密以下内容:知识库的数据摄取任务、A mazon Serv OpenSearch ice 矢量数据库、通过查询知识库生成响应的会话Amazon S3 中的模型调用日志以及托管数据源的 S3 存储桶。 

按照前面的模型推理部分 CloudTrail 所述,使用亚马逊 CloudWatch 和亚马逊。