

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

# 加密您的亚马逊基岩 AgentCore 内存
<a name="storage-encryption"></a>

创建 AgentCore 内存时，重要的是要确保您的数据安全可靠。如果您的应用程序处理敏感信息（例如客户详细信息、付款数据或个人聊天），则必须使用加密来保护这些数据。考虑使用客户管理的 KMS 密钥 (CMK) 进行加密。即使您不提供 CMK，该服务仍使用服务管理密钥对数据进行加密。或者，您也可以使用 Amazon托管的 KMS 密钥。在这种情况下，您需要向用于设置内存的 IAM 用户或角色添加以下策略。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAgentCoreMemoryKMS",
      "Effect": "Allow",
      "Action": [
        "kms:CreateGrant",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "bedrock-agentcore.us-east-1.amazonaws.com"
        }
      }
    }
  ]
}
```

除了上面已经解释的安全设置外，您还应该意识到在使用长期内存时存在即时注入和内存中毒的风险。
+ 提示注入是一个应用程序级别的安全问题，类似于数据库应用程序中的 SQL 注入。就像亚马逊 RDS 和 Amazon Aurora 等 Amazon 服务提供安全的数据库引擎一样，客户有责任防止在其应用程序中注入 SQL。Amazon Bedrock 为自然语言处理提供了安全的基础，但客户必须采取措施防止其代码中出现提示注入漏洞。此外，还 Amazon 提供有关 Bedrock 和其他 Amazon 服务的安全编码实践的详细文档、最佳实践和指导。
+ 当错误或有害信息保存在内存中时，就会发生 AgentCore 内存中毒。之后，你的 AI 代理可能会在未来的对话中使用这些错误的信息，这可能会导致不正确或不安全的回应

根据责任[Amazon 共担模型](https://www.amazonaws.cn/compliance/shared-responsibility-model/)， Amazon 负责保护底层云基础架构，包括运行 Amazon 服务的硬件、软件、网络和设施。但是，安全应用程序开发和防止即时注入和内存中毒等漏洞的责任在于客户。

为了降低风险，您可以执行以下操作：
+  **亚马逊基岩护栏**：使用亚马逊基岩护栏检查发送到内存或从内存发送的提示。 AgentCore 这样可以确保您的代理只处理安全和允许的提示。
+  **对抗测试**：通过模拟攻击或即时注入，积极测试您的 AI 应用程序是否存在漏洞。这可以帮助你找到薄弱环节，并在真正的威胁发生之前修复它们。