Ensure that your Amazon Bedrock AgentCore memory stores are configured to use AWS Key Management Service (KMS) Customer-Managed Keys (CMKs) for encryption at rest. Amazon Bedrock AgentCore Memory provides persistent storage for AI agent conversation history, extracted facts, user preferences, and session context — data that frequently contains sensitive and personally identifiable information (PII). By default, AgentCore Memory encrypts stored data using AWS owned or AWS managed encryption keys, which are controlled and rotated by AWS on your behalf. While this provides a baseline level of protection, it does not give your organization direct control over the key lifecycle, access policies, or audit trails for encryption operations.
When you configure a CMK for your AgentCore memory store, you retain full control over the encryption key. You can define granular key policies that specify exactly which AWS principals and services can use the key, enable automatic key rotation on a schedule you define, monitor all cryptographic operations performed with the key through AWS CloudTrail logs, and immediately revoke access to encrypted data by disabling or deleting the key. The CMK ARN is specified at memory creation time using the encryptionKeyArn parameter in the CreateMemory API call, or can be configured through the console under Additional configurations → Customize encryption settings (advanced).
excellence
Amazon Bedrock AgentCore memory stores accumulate conversation history, user preferences, session summaries, and extracted long-term facts over time. This data can contain sensitive personal information, confidential business context, or compliance-regulated content that requires strong data governance controls. Using Customer-Managed Keys ensures that your organization — not AWS — retains ultimate authority over access to this encrypted data. If the CMK is disabled or deleted, the encrypted memory data becomes inaccessible, providing a powerful mechanism to meet data residency and right-to-erasure requirements under regulations such as GDPR and CCPA. CMK usage also generates detailed audit logs in AWS CloudTrail for every cryptographic operation, enabling security teams to detect unauthorized access attempts, demonstrate compliance during audits, and investigate potential data breaches with full visibility into who accessed the key and when.
Audit
To determine if your Amazon Bedrock AgentCore memory stores are encrypted with Customer-Managed Keys (CMKs), perform the following operations:
Remediation / Resolution
To encrypt your Amazon Bedrock AgentCore memory stores with Customer-Managed Keys (CMKs), perform the following operations:
Important considerations before configuring CMK encryption:Encryption at rest using a CMK must be configured at memory creation time. Existing memory stores cannot be updated in-place to change the encryption key. To encrypt an existing unencrypted memory store with a CMK, you must create a new memory store with the CMK specified and migrate your data. Ensure that the KMS key policy grants the
bedrock-agentcore.amazonaws.com service the required permissions (kms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:GenerateDataKey, kms:GenerateDataKeyWithoutPlaintext, kms:ReEncrypt*) before creating the memory store. References
- AWS Documentation
- Data encryption
- Encrypt your Amazon Bedrock AgentCore Memory
- Create an AgentCore Memory
- CreateMemory
- GetMemory
- AWS KMS keys
- AWS Command Line Interface (CLI) Documentation
- list-memories
- get-memory
- create-memory
- CloudFormation Documentation
- AWS::KMS::Key
- AWS::KMS::Alias
- Terraform Documentation
- Resource: aws_kms_key
- Resource: aws_kms_alias