The Bedrock Builder CDK L3 construct is used to configure and deploy a secure Bedrock Builder and associated resources.

Bedrock Builder: Deploys Amazon Bedrock Components(s) to streamline workflows and/or automate repetitive tasks using Foundational Models
Bedrock Execution Policies: For Knowledge Bases, the construct creates consolidated IAM policies per execution role:
Policies are consolidated per role - multiple KBs sharing the same role share the same 3 policies to avoid hitting the AWS limit of 10 managed policies per role.
Bedrock Execution Role: Execution policies are attached to the KB execution role. This role should have Bedrock Service as a Trusted Principal.
Bedrock KMS Key: Encrypt Bedrock resources with the KMS Key. One will be generated if a KMS key is not provided as part of Configuration
Lambdas: (Optional) Allows you to generate Lambda Layer, Lambda Function or both, which can be associate with Agent Action Group. (Refer: MDAA DataOps-LambdaFunctions)
May be optionally VPC bound with configurable VPC, Subnet, and Security Group Paramters
Can use an existing security group (from Project, for instance), or create a new security group per function
If creating a per-function security group:
Action Group(s): Create Agent Action group for Bedrock Agent. It allows you to either use an existing Lambda function (by providing its ARN directly) or create a new one as part of the agent configuration. The generated-function: prefix tells the system to use the Lambda that was created from the configuration rather than looking for an existing function ARN
Bedrock Guardrail: (Optional) If Bedrock Guardrail is mentioned in the configuration, the Agent will be associate with Bedrock Guardrail.
Bedrock execution policy will also be updated to allow ApplyGuardrail permission on the provided GuardrailID
OpenSearch Serverless VPC Endpoints: For OpenSearch Serverless vector stores, the construct automatically creates VPC endpoints for secure connectivity. If you already have an existing VPC endpoint for OpenSearch Serverless in your VPC, you can provide the endpoint ID and security group ID in the vector store configuration to reuse it instead of creating a new one. This prevents deployment failures when a VPC endpoint already exists.
If you already have an OpenSearch Serverless VPC endpoint in your VPC, you can configure the vector store to use it instead of creating a new one. This is useful when:
To use an existing VPC endpoint, add the ossVpce property with vpceId and securityGroupId to your OpenSearch Serverless vector store configuration:
vectorStores:
my-vector-store:
vectorStoreType: OPENSEARCH_SERVERLESS
vpcId: "vpc-1234567890abcdef0"
subnetIds:
- "subnet-1234567890abcdef0"
- "subnet-0987654321fedcba0"
standbyReplicas: ENABLED
# Provide existing VPC endpoint details to reuse instead of creating new
ossVpce:
vpceId: "vpce-1234567890abcdef0"
securityGroupId: "sg-1234567890abcdef0"
Important Notes:
ossVpce configuration is only applicable to OpenSearch Serverless vector stores (not Aurora Serverless)vpceId and securityGroupId must be provided together within ossVpceTo get started, see starter_kits/genai_accelerator/ai/bedrock-builder.yaml.