- Newest
- Most votes
- Most comments
My understanding is, indeed the Bedrock AgentCore Control Plane requires a publicly reachable endpoint for the OIDC Discovery URL during the creation and validation phase, even if the Runtime itself is attached to your VPC. The issue stems from the distinction between the Control Plane (the AWS-managed service that validates your configuration) and the Data Plane/Runtime (the actual agent execution environment):
- Validation (Control Plane): When you submit the configuration, an AWS service (outside your VPC) attempts an HTTPS GET request to your Discovery URL to verify the OIDC metadata and fetch the JWKS. Since this service originates from the AWS management network, it cannot resolve private DNS names or route into your private VPC subnets.
- Execution (Runtime): While the AgentCore runtime is "VPC-aware," the validation of the Authorizer happens before the runtime environment is fully established or utilized for that specific check.
- VPC Endpoints (PrivateLink): I think it's a misconception is that an Interface VPC Endpoint for Bedrock would solve this. Because, PrivateLink only allows your VPC to talk to AWS services privately. It does not grant the AWS Control Plane a "backdoor" to reach private resources inside your VPC.
Why do I think it is like I stated: This behavior is consistent with other AWS managed services like API Gateway or App Runner. For instance, the API Gateway documentation explicitly states that the issuer URL must be publicly reachable for validation to succeed, as the control plane initiates the discovery request from outside your VPC network -> https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html
Relevant content
- asked 8 months ago
- asked 8 months ago
- asked 3 months ago
- AWS OFFICIALUpdated 10 months ago
