Ensure that your Amazon Bedrock flows — end-to-end generative AI workflows that link foundation models, prompts, knowledge bases, and other AWS services such as AWS Lambda — are encrypted with an Amazon KMS Customer-Managed Key (CMK) instead of the default AWS-managed key. Flow definitions, including node configurations and the associations between nodes, contain the logic of your generative AI application and, in many cases, sensitive business context.
An attacker with bedrock:UpdateFlow permissions can swap the Customer-Managed Key associated with a flow for one they control, ensuring all future flow states are encrypted with their key. Encrypting flows with a CMK you own prevents this kind of key hijacking. CMK encryption also provides key rotation control and CloudTrail audit trails for all key usage, giving you visibility into every access to the key protecting your flow. The default AWS-managed key offers no such visibility.
Audit
To obtain the encryption configuration available for your Amazon Bedrock flows, perform the following operations:
Remediation / Resolution
To encrypt your Bedrock flows using your own Customer-Managed KMS Key (CMK), perform the following operations:
The update-flow API and CLI command requires you to re-supply the name and execution-role-arn parameters, since these are mandatory fields for the request (they are not preserved automatically if omitted). The definition parameter is optional on update-flow — you only need to include it if you also want to change the flow's node configuration; omitting it leaves the current flow definition unchanged. Before running the update-flow command, use the get-flow command to retrieve the current name and executionRoleArn values, so that you can re-supply them alongside the new customerEncryptionKeyArn parameter.References
- AWS Documentation
- Build an end-to-end generative AI workflow with Amazon Bedrock Flows - Amazon Bedrock
- Data encryption - Amazon Bedrock
- AWS KMS keys - AWS Key Management Service
- AWS Command Line Interface (CLI) Documentation
- list-flows
- get-flow
- update-flow
- create-key
- create-alias