What
Claude Code includes a gateway that organisations can run to route requests to model providers. An upstream is one of the providers the gateway forwards to. The gateway config gained several options.
- Bedrock upstreams accept an optional
guardrailwithidandversion. When set, every request to that upstream carries theX-Amzn-Bedrock-GuardrailIdentifierandX-Amzn-Bedrock-GuardrailVersionheaders. - The guardrail must be set on all Bedrock upstreams or none. Config validation refuses a partial setup, because failover could otherwise send requests to a Bedrock upstream without the guardrail.
- On
/v1/messages, clients can no longer supply their ownamazon-bedrock-*fields; such requests are rejected with a 400 error. - Bedrock upstreams accept
assume_rolewithrole_arn,external_idandsession_name(email or sub). The gateway then callssts:AssumeRoleusing access keys or the ambient AWS credential chain, and the Bedrock client uses the resulting shared credentials. An STS temporary-credentials provider was added for this. assume_rolecannot be combined withaws_bearer_token: the error says it needs SigV4 source credentials, which a bearer token cannot provide.telemetrygainsresource_attributes.managed.policiesgainsserve_to_desktop. When a request's user-agent identifies Claude Desktop, a policy is withheld unless it setsserve_to_desktop.
Why
Admins who route Claude Code through the gateway can enforce Bedrock Guardrails centrally without clients being able to override or strip them, use cross-account AWS roles for Bedrock, and choose which policies reach Claude Desktop sessions.
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
The finding does not say what the `guardrail: true` flag does on its own in this client or how a user sets `assumeRole`.