能力 1. 为开发人员和数据科学家提供对生成式 AI FM(模型推断)的安全访问权限 - AWS 规范性指导

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

能力 1. 为开发人员和数据科学家提供对生成式 AI FM(模型推断)的安全访问权限

以下架构图说明了为生成式 AI 账户推荐的 AWS 服务以实现此功能。此功能的范围是允许用户访问基础模型 (FM) 以进行聊天和图像生成。

推荐用于生成式 AI 账户的 AWS 服务进行模型推理

生成式人工智能账户致力于通过使用 Amazon Bedrock 来保护生成人工智能功能。我们将使用本指南中的功能构建此账户(和架构图)。该账户包括用于为用户存储对话和维护即时存储的服务。该账户还包括安全服务,用于实施安全防护和集中式安全治理。用户可以使用身份提供商 (IdP) 安全地访问生成式 AI 账户中的虚拟私有云 (VPC),从而获得联合访问权限。AWS PrivateLink 支持从您的 VPC 到 Amazon Bedrock 终端节点服务的私有连接。您应该为模型调用日志创建 Amazon S3 网关终端节点,并提示将 VPC 环境配置为可以访问的 Amazon S3 中存储存储桶。您还应该为配置为 VPC 环境访问的 CloudWatch 日志创建一个 Amazon CloudWatch Logs 网关终端节点。

理由

授予用户访问生成式 AI FM 的权限,使他们能够使用高级模型来完成自然语言处理、图像生成以及提高效率和决策等任务。这种访问权限可以促进组织内部的创新,因为员工可以尝试新的应用程序并开发尖端的解决方案,从而最终提高工作效率并提供竞争优势。此用例对应于生成式 AI 安全范围矩阵的范围 3。 在 Scope 3 中,您的组织使用预先训练的 FM(例如 Amazon Bedrock 中提供的那些 FM)来构建生成式 AI 应用程序。在此范围内,您可以控制您的应用程序和应用程序使用的任何客户数据,而FM提供商则控制预先训练的模型及其训练数据。有关各种应用范围的数据流以及有关您与物业管理提供商之间分担责任的信息,请参阅 AWS 博客文章《保护生成式 AI:应用相关的安全控制》。 

当你允许用户访问 Amazon Bedrock 中的生成式 AI FM 时,你应该考虑以下关键的安全注意事项: 

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

  • 对对话和提示存储进行加密

  • 监控潜在的安全风险,例如及时注入或敏感信息泄露    

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

安全性注意事项

生成式 AI 工作负载面临独特的风险,包括模型推理期间的即时注入攻击。威胁行为者可以制作恶意查询,强制持续输出,从而导致资源消耗过多,或者制作导致模型响应不当的提示。此外,最终用户可能会在提示中输入敏感信息,从而无意中滥用这些系统。Amazon Bedrock 为数据保护、访问控制、网络安全、日志和监控以及输入/输出验证提供了强大的安全控制,可以帮助降低这些风险。以下各节将讨论这些内容。有关生成式人工智能工作负载相关风险的更多信息,请参阅开放全球应用程序安全项目 (OWASP) 网站上的OWASP大型语言模型应用程序前十名MITRE网站上的MITRE ATLAS。 

补救措施

身份和访问管理

请勿使用 IAM 用户,因为他们拥有长期证书,例如用户名和密码。而是在访问 AWS 时使用临时证书。您可以为人类用户使用身份提供商 (IdP),通过担任 IAM 角色(提供临时证书)来提供对 AWS 账户的联合访问权限

要进行集中访问管理,请使用 AWS IAM 身份中心。要了解有关 IAM 身份中心和各种架构模式的更多信息,请参阅本指南的 IAM 深入探讨部分。 

要访问 Amazon Bedrock,您必须拥有最低限度的权限。 默认情况下,不授予访问 Amazon Bedrock FM 的权限。 要获得对 FM 的访问权限,具有足够权限的 IAM 身份必须通过 Amazon Bedrock 控制台请求访问权限。 有关如何添加、删除和控制模型访问权限的信息,请参阅 Amazon Bedrock 文档中的模型访问权限。 

为了安全地提供对 Amazon Bedrock 的访问权限,请根据您的要求自定义 Amazon Bedrock 策略示例,以确保只允许所需的权限。 

网络安全

AWS PrivateLink 允许您使用您的 VPC 中的私有 IP 地址连接到某些 AWS 服务、由其他 AWS 账户托管的服务(称为终端节点服务)以及支持的 AWS Marketplace 合作伙伴服务。接口终端节点是使用弹性网络接口和 VPC 子网中的 IP 地址直接在您的 VPC 内部创建的。这种方法使用 Amazon VPC 安全组来管理对终端节点的访问。 使用 AWS PrivateLink 建立从您的 VPC 到 Amazon Bedrock 终端节点服务的私有连接,而不会将您的流量暴露给互联网。 PrivateLink 为您提供与 Amazon Bedrock 服务账户中的 API 终端节点的私有连接,因此您的 VPC 中的实例不需要公有 IP 地址即可访问亚马逊 Bedrock。 

日志记录和监控

启用模型调用日志。使用模型调用日志来收集您的 AWS 账户中所有 Amazon Bedrock 模型调用的调用日志、模型输入数据和模型输出数据。 默认情况下,日志记录处于禁用状态。您可以启用调用日志记录来收集与您的账户中执行的所有调用相关的完整请求数据、响应数据、IAM 调用角色和元数据。

重要

您保留对调用日志数据的完全所有权和控制权,并且可以使用 IAM 策略和加密来确保只有经过授权的人员才能访问这些数据。AWS 和模型提供商都无法查看或访问您的数据。

配置日志记录以提供发布日志数据的目标资源。Amazon Bedrock 为亚马逊 CloudWatch 日志和亚马逊简单存储服务 (Amazon S3) Service 等目的地提供原生支持。 我们建议您将两个源配置为存储模型调用日志。 

实施自动滥用检测机制,以帮助防止潜在的滥用行为,包括及时注入或敏感信息泄露。配置警报,以便在检测到潜在的滥用行为时通知管理员。这可以通过基于指标的自定义 CloudWatch指标和警报来实现。CloudWatch

使用 A WS CloudTrail 监控亚马逊 Bedrock API 活动。考虑在提示存储库中为最终用户保存和管理常用提示。我们建议您使用 Amazon S3 作为提示存储。 

设计注意事项

您必须根据自己的合规性和隐私要求来评估这种方法。模型调用日志可能会收集敏感数据作为模型输入和模型输出的一部分,这可能不适合您的用例,在某些情况下,可能无法实现您的风险合规目标。

输入和输出验证

如果您想为与 Amazon Bedrock 模型交互的用户实现适用于 Amazon Bedrock 的护栏,则需要将护栏部署到生产环境中,并在应用程序中调用护栏版本。这将需要创建和保护与 Amazon Bedrock API 接口的工作负载。 

推荐的 AWS 服务

注意

本节中讨论的 AWS 服务以及其他功能仅限于这些部分中讨论的用例。此外,您应该在所有 AWS 账户中设置一组常见的安全服务,例如 AWS Security Hub、Amazon GuardDuty、AWS Config、IAM Access Analyzer 和 AWS CloudTrail 组织跟踪,以便在整个组织中实现一致的防护并提供集中监控、管理和治理。 要了解这些服务的功能和架构最佳实践,请参阅本指南前面的 “在所有 AWS 账户中部署常用安全服务” 部分。

Amazon S3

Amazon S3 是一种对象存储服务,提供可扩展性、数据可用性、安全性和性能。有关推荐的安全最佳实践,请参阅 Amazon S3 文档、在线技术讲座和博客文章中的深入探讨。

将您的模型调用日志常用提示作为提示存储在 S3 存储桶中。存储桶应使用您创建、拥有和管理的客户托管密钥进行加密。为了进一步加强网络安全,您可以为 VPC 环境配置为访问的 S3 存储桶创建网关终端节点。 应记录和监控@@ 访问权限

使用版本控制进行备份,并通过 A mazon S3 对象锁定应用对象级不可变性。 如果启用了 Object Lock 的数据被视为个人身份信息 (PII),则您可能会面临隐私合规性问题。要降低这种风险并提供安全网,请对对象锁定使用治理模式而不是合规模式。您可以使用基于资源的策略来更严格地控制对 Amazon S3 文件的访问权限。 

亚马逊 CloudWatch

Amazon CloudWatch 监控应用程序,响应性能变化,优化资源使用,并提供对运行状况的见解。通过收集各个 AWS 资源的数据, CloudWatch您可以了解整个系统的性能,并允许您设置警报、自动对变化做出反应并获得统一的运营状况视图。 

用于 CloudWatch 监控系统事件并生成警报,这些事件描述了 Amazon B edrock 和 Amaz on S3 中的变化。 配置警报,以便在提示可能提示注入或敏感信息泄露时通知管理员。这可以通过基于日志模式的自定义 CloudWatch 指标和警报来实现。使用您创建、拥有和管理的客户托管密钥对@@ CloudWatch 日志中的日志数据进行加密。为了进一步加强网络安全,您可以为配置为 VPC 环境访问的 CloudWatch 日志创建网关终端节点。您可以使用安全 OU 安全工具账户中的 Amazon O CloudWatch bservability 访问管理器进行集中监控。使用最低权限原则管理 CloudWatch 对您的 Logs 资源的访问权限。 

AWS CloudTrail

AWS CloudTrail 支持对您的 AWS 账户中的活动进行监管、合规和审计。借助 CloudTrail,您可以记录、持续监控和保留与整个 AWS 基础设施中的操作相关的账户活动。 

用于 CloudTrail 记录和监控 Amazon Bedrock 和 Amazon S3 的所有创建、读取、更新和删除 (CRUD) 操作。 有关更多信息,请参阅亚马逊 Bedrock 文档中的使用 AWS CloudTrai l 记录亚马逊 Bedrock API 调用亚马逊 S3 文档 CloudTrail中的使用 AWS 记录亚马逊 S3 API 调用

CloudTrail 来自 Amazon Bedrock 的日志不包含提示和完成信息。我们建议您使用组织跟踪来记录组织中所有账户的所有事件。 将生成式 AI 账户中的所有 CloudTrail 日志转发到 Security OU 日志存档账户。有了集中式日志,您可以监控、审计 Amazon S3 对象访问、身份未经授权的活动、IAM 策略更改以及对敏感资源执行的其他关键活动,并生成警报。有关更多信息,请参阅 AWS 中的安全最佳实践 CloudTrail。

Amazon Macie

Amazon Macie 是一项完全托管的数据安全和数据隐私服务,它使用机器学习和模式匹配来发现和帮助保护您在 AWS 中的敏感数据。您需要确定您的工作负载正在处理的数据的类型和分类,以确保实施适当的控制。Macie 可以帮助识别提示存储中的敏感数据,并对存储在 S3 存储桶中的调用日志进行建模。 您可以使用 Macie 自动发现、记录和报告 Amazon S3 中的敏感数据。您可以通过两种方式执行此操作:将 Macie 配置为执行自动敏感数据发现,以及创建和运行敏感数据发现作业。 有关更多信息,请参阅 Macie 文档中的使用 Amazon Macie 发现敏感数据