最佳实践
我们推荐以下最佳实践,以便在 AI 代理应用程序中有效使用 AgentCore 内存。
加密你的内存
存储在 AgentCore 内存中的数据始终使用 AWS KMS 密钥进行静态加密。默认情况下,加密使用 AWS自有和托管的 KMS 密钥。您可以选择使用自己的 AWS 账户配置客户管理的 KMS 密钥,以便通过在创建内存encryptionKeyArn时指定来进一步控制加密。
记忆中毒或提示注入
在通过 CreateEvent API 处理对话数据并通过 LLM 提取长期内存时,重要的是要防范可能损害数据完整性或系统行为的内存中毒和提示注入攻击。这些安全问题至关重要,因为它们可能导致内存存储损坏和系统响应被操纵。
Fol AWS loring 的分担责任模式负责保护 Amazon AWS Bedrock Amazon Bedrock 基础设施 AgentCore 。但是,客户应对安全的应用程序开发、输入验证和防止内存提取服务中的提示注入漏洞负责。这与 AWS 提供 RDS 等安全数据库引擎的方式类似,但客户必须防止在其应用程序中注入 SQL。
威胁
-
内存中毒是一种威胁,即攻击者在对话中嵌入虚假信息以破坏长期内存存储。这可能表现为上下文污染,其中误导性上下文会影响未来的内存检索,也可以表现为故意的数据完整性攻击,旨在随着时间的推移降低服务质量。
-
当用户在内存提取期间尝试覆盖系统提示或对话数据中的恶意内容操纵 LLM 行为时,就会发生提示@@ 注入攻击。这些攻击还可能涉及权限升级,企图访问或修改超出用户权限的内存。
预防技巧
-
输入验证构成了
CreateEventAPI 级别的保护基础。在将用户输入数据保留到内存之前,请使用护栏对用户输入数据进行消毒 -
安全测试 — 使用渗透测试、静态代码分析和动态应用程序安全测试 (DAST) 等技术,定期测试应用程序是否存在及时注入和其他安全漏洞。
Least-privilege 原理
Identity-based 策略决定是否有人可以在您的账户中创建、访问或删除亚马逊 Bedrock Amazon Bedrock AgentCore 资源。这些操作可能会给您的 AWS 账户带来费用。创建或编辑基于身份的策略时,请遵循以下指南和建议:
-
开始使用 AWS 托管策略并转向最低权限权限 — 要开始向用户和工作负载授予权限,请使用为许多常见用例授予权限的 AWS 托管策略。它们可在您的 AWS 账户中使用。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。
-
应用最低权限:在使用 IAM 策略设置权限时,请仅授予执行任务所需的权限。为此,您可以定义在特定条件下可以对特定资源执行的操作,也称为最低权限许可。
-
使用 IAM 策略中的条件进一步限制访问权限:您可以向策略添加条件来限制对操作和资源的访问。例如,您可以编写策略条件来指定只能由特定的 AgentCore 内存资源担任的服务角色。
-
使用 IAM Access Analyzer 验证您的 IAM 策略以维护安全和功能权限 — IAM Access Analyzer 会验证新的和现有的策略,以便这些策略符合 IAM 策略语言 (JSON) 和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议,以帮助您制定安全且功能性强的策略。