Check ID: bedrock_vpc_endpoints_configured
Provider: AWS
Service: bedrock
Severity: MEDIUM
Categories: internet-exposed, trust-boundaries, gen-ai
Resource type: AwsEc2VpcEndpointService
What this check verifies
Amazon VPCs are evaluated for interface VPC endpoints to all Bedrock services: bedrock, bedrock-runtime, bedrock-agent, bedrock-agent-runtime, and bedrock-mantle (OpenAI-compatible API). Only endpoints in available state are considered. Their presence indicates private Bedrock API connectivity over AWS PrivateLink within the VPC.
Risk
Without private Bedrock endpoints, control plane and runtime API traffic exits the VPC via IGW or NAT Gateway. This expands exposure to network path threats (e.g., DNS hijack, MITM), weakens egress isolation, and adds an internet dependency for Bedrock API access, reducing availability if NAT or edge paths fail.
Recommendation
Use interface VPC endpoints for all Bedrock services (bedrock, bedrock-runtime, bedrock-agent, bedrock-agent-runtime, bedrock-mantle) in each VPC that requires Bedrock API access.
- Enable private DNS to keep calls on the AWS network
- Apply restrictive endpoint policies (least privilege)
- Reduce reliance on public egress and layer controls for defense in depth
CLI
Terraform
Native IaC
Dashboard steps
aws ec2 create-vpc-endpoint —vpc-id <VPC_ID> —service-name com.amazonaws.<REGION>.bedrock-runtime —vpc-endpoint-type Interface —subnet-ids <SUBNET_ID> && aws ec2 create-vpc-endpoint —vpc-id <VPC_ID> —service-name com.amazonaws.<REGION>.bedrock —vpc-endpoint-type Interface —subnet-ids <SUBNET_ID> && aws ec2 create-vpc-endpoint —vpc-id <VPC_ID> —service-name com.amazonaws.<REGION>.bedrock-agent —vpc-endpoint-type Interface —subnet-ids <SUBNET_ID> && aws ec2 create-vpc-endpoint —vpc-id <VPC_ID> —service-name com.amazonaws.<REGION>.bedrock-agent-runtime —vpc-endpoint-type Interface —subnet-ids <SUBNET_ID> && aws ec2 create-vpc-endpoint —vpc-id <VPC_ID> —service-name com.amazonaws.<REGION>.bedrock-mantle —vpc-endpoint-type Interface —subnet-ids <SUBNET_ID>
# Create Bedrock control plane interface VPC endpoint
resource "aws_vpc_endpoint" "bedrock" {
vpc_id = "<example_resource_id>" # CRITICAL: target VPC
service_name = "com.amazonaws.<region>.bedrock" # CRITICAL: Bedrock control plane endpoint
vpc_endpoint_type = "Interface" # CRITICAL: interface endpoint
subnet_ids = ["<example_resource_id>"] # CRITICAL: subnet(s) for endpoint ENIs
}
# Create Bedrock runtime interface VPC endpoint
resource "aws_vpc_endpoint" "bedrock_runtime" {
vpc_id = "<example_resource_id>" # CRITICAL: target VPC
service_name = "com.amazonaws.<region>.bedrock-runtime" # CRITICAL: Bedrock runtime endpoint
vpc_endpoint_type = "Interface" # CRITICAL: interface endpoint
subnet_ids = ["<example_resource_id>"] # CRITICAL: subnet(s) for endpoint ENIs
}
# Create Bedrock agent control plane interface VPC endpoint
resource "aws_vpc_endpoint" "bedrock_agent" {
vpc_id = "<example_resource_id>" # CRITICAL: target VPC
service_name = "com.amazonaws.<region>.bedrock-agent" # CRITICAL: Bedrock agent control plane endpoint
vpc_endpoint_type = "Interface" # CRITICAL: interface endpoint
subnet_ids = ["<example_resource_id>"] # CRITICAL: subnet(s) for endpoint ENIs
}
# Create Bedrock agent runtime interface VPC endpoint
resource "aws_vpc_endpoint" "bedrock_agent_runtime" {
vpc_id = "<example_resource_id>" # CRITICAL: target VPC
service_name = "com.amazonaws.<region>.bedrock-agent-runtime" # CRITICAL: Bedrock agent runtime endpoint
vpc_endpoint_type = "Interface" # CRITICAL: interface endpoint
subnet_ids = ["<example_resource_id>"] # CRITICAL: subnet(s) for endpoint ENIs
}
# Create Bedrock Mantle (OpenAI-compatible) interface VPC endpoint
resource "aws_vpc_endpoint" "bedrock_mantle" {
vpc_id = "<example_resource_id>" # CRITICAL: target VPC
service_name = "com.amazonaws.<region>.bedrock-mantle" # CRITICAL: Bedrock Mantle OpenAI-compatible endpoint
vpc_endpoint_type = "Interface" # CRITICAL: interface endpoint
subnet_ids = ["<example_resource_id>"] # CRITICAL: subnet(s) for endpoint ENIs
}
# CloudFormation: create Bedrock interface VPC endpoints in the VPC
Resources:
BedrockEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
VpcId: "<example_resource_id>" # CRITICAL: target VPC
ServiceName: !Sub "com.amazonaws.${AWS::Region}.bedrock" # CRITICAL: Bedrock control plane endpoint
VpcEndpointType: Interface # CRITICAL: interface endpoint
SubnetIds:
- "<example_resource_id>"
BedrockRuntimeEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
VpcId: "<example_resource_id>" # CRITICAL: target VPC
ServiceName: !Sub "com.amazonaws.${AWS::Region}.bedrock-runtime" # CRITICAL: Bedrock runtime endpoint
VpcEndpointType: Interface # CRITICAL: interface endpoint
SubnetIds:
- "<example_resource_id>"
BedrockAgentEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
VpcId: "<example_resource_id>" # CRITICAL: target VPC
ServiceName: !Sub "com.amazonaws.${AWS::Region}.bedrock-agent" # CRITICAL: Bedrock agent control plane endpoint
VpcEndpointType: Interface # CRITICAL: interface endpoint
SubnetIds:
- "<example_resource_id>"
BedrockAgentRuntimeEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
VpcId: "<example_resource_id>" # CRITICAL: target VPC
ServiceName: !Sub "com.amazonaws.${AWS::Region}.bedrock-agent-runtime" # CRITICAL: Bedrock agent runtime endpoint
VpcEndpointType: Interface # CRITICAL: interface endpoint
SubnetIds:
- "<example_resource_id>"
BedrockMantleEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
VpcId: "<example_resource_id>" # CRITICAL: target VPC
ServiceName: !Sub "com.amazonaws.${AWS::Region}.bedrock-mantle" # CRITICAL: Bedrock Mantle OpenAI-compatible endpoint
VpcEndpointType: Interface # CRITICAL: interface endpoint
SubnetIds:
- "<example_resource_id>"
- In the AWS console, go to VPC > Endpoints
- Click Create endpoint
- For Service category, choose AWS services and select com.amazonaws.<region>.bedrock
- Select your VPC and at least one subnet
- Click Create endpoint
- Repeat steps 2-5 for com.amazonaws.<region>.bedrock-runtime, com.amazonaws.<region>.bedrock-agent, com.amazonaws.<region>.bedrock-agent-runtime, and com.amazonaws.<region>.bedrock-mantle
References
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = bedrock_vpc_endpoints_configured. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks