本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
根据责任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、库和依赖项 up-to-date。监控 AWS 安全公告和公告,了解任何相关的更新或指导。 AWS 提供了详细的文档、博客文章和示例代码,以帮助客户使用 Bedrock 和其他 AWS 服务构建安全的应用程序。客户应查看这些资源并遵循建议的安全最佳实践,以保护其应用程序免受提示注入和其他漏洞的影响。
您可以使用 Amazon Bedrock Guardrail 来帮助防范即时注入攻击。有关更多信息,请参阅 提示攻击。
创建 Amazon Bedrock 代理时,请使用以下技术来帮助防范即时注入攻击。
-
将护栏与代理关联。有关更多信息,请参阅 通过将护栏与代理关联起来,为您的应用程序实施保护措施。
-
使用高级提示启用默认的预处理提示。每个代理都有可以启用的默认预处理提示。这是一个轻量级的提示,它使用基础模型来确定是否可以安全处理用户输入。您可以使用其默认行为或完全自定义提示以包括任何其他分类类别。或者,您可以在AWS Lambda函数中编写自己的基础模型响应解析器来实现自己的自定义规则。
有关更多信息,请参阅 Amazon Bedrock 代理的工作原理。
-
使用高级提示功能更新系统提示符。较新的型号区分了系统提示和用户提示。如果您在代理中使用系统提示,我们建议您明确定义代理可以做什么和不能做什么的范围。另外,请查看模型提供商自己的文档,以获取模型特定的指导。要了解 Amazon Bedrock 中哪些无服务器机型支持系统提示,请参阅。基础模型的推理请求参数和响应字段