本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
提示注入安全
根据 AWS 责任共担模式
在 Amazon Bedrock 的背景下,AWS 负责底层基础设施的安全,包括物理数据中心、网络和 Amazon Bedrock 服务本身。但是,客户应负责确保应用程序开发的安全并防止提示注入等漏洞。
提示注入是一个应用程序级别的安全问题,类似于数据库应用程序中的 SQL 注入。就像 Amazon RDS 和 Amazon Aurora 等 AWS 服务提供安全的数据库引擎一样,客户有责任防止其应用程序中出现 SQL 注入。Amazon Bedrock 为自然语言处理提供了安全的基础,但客户必须采取措施防止其代码中出现提示注入漏洞。此外,AWS 提供了有关 Bedrock 和其他 AWS 服务的详细文档、最佳实践和安全编码实践指南。
为了防止在使用 Amazon Bedrock 时出现提示注入和其他安全漏洞,客户应遵循以下最佳实践:
-
输入验证 – 在将所有用户输入传递给 Amazon Bedrock API 或分词器之前,请对其进行验证和清洗。这包括删除或转义特殊字符,并确保输入符合预期的格式。
-
安全编码实践 – 遵循安全编码实践,例如使用参数化查询、避免针对输入使用字符串连接,以及在授予资源访问权限时遵循最低权限原则。
-
安全测试 – 使用渗透测试、静态代码分析和动态应用程序安全测试(DAST)等技术,定期测试应用程序是否存在提示注入和其他安全漏洞。
-
保持最新状态 – 使用最新的安全补丁和更新来保持 Amazon Bedrock SDK、库和依赖项处于最新状态。密切关注 AWS 安全公告和通知,了解任何相关的更新或指南。AWS 提供了详细文档、博客文章和示例代码来帮助客户使用 Bedrock 和其他 AWS 服务构建安全的应用程序。客户应查看这些资源并遵循建议的安全最佳实践,以保护其应用程序免受提示注入和其他漏洞的影响。
您可以使用 Amazon Bedrock 护栏来帮助防范提示注入攻击。有关更多信息,请参阅 使用 Amazon Bedrock 护栏检测提示攻击。
创建 Amazon Bedrock 代理时,请使用以下技巧来帮助防范提示注入攻击。
-
将护栏与代理关联。有关更多信息,请参阅 通过将护栏与代理关联为应用程序实施保护措施。
-
使用高级提示启用默认预处理提示。每个代理都有可以启用的默认预处理提示。这是一个轻量级提示,它使用基础模型来确定是否可以安全处理用户输入。您可以使用其默认行为,或者完全自定义提示以添加任何其他分类类别。或者,您也可以在 AWS Lambda 函数中编写自己的基础模型响应解析器,来实施自己的自定义规则。
有关更多信息,请参阅 Amazon Bedrock 代理的工作原理。
-
使用高级提示功能更新系统提示。较新的模型会区分系统提示和用户提示。如果您在代理中使用了系统提示,建议您明确定义代理可以执行和不能执行的操作的范围。此外,请查看模型提供商自己的文档,以获取特定于模型的指导。要了解 Amazon Bedrock 中哪些无服务器模型支持系统提示,请参阅基础模型的推理请求参数和响应字段。