Claude Code works well on Amazon Bedrock in EU Regions, but its defaults
aren’t an EU guarantee. In an EU Region it prefers eu. inference
profiles. For a model that doesn’t have an EU profile, though, it falls
back to any matching profile it can find, which could be a US or Global
one (Claude Code
docs).
The fix is simple: pin every model to an EU profile, and back that up with IAM. Below are the settings I’d use, how to roll them out to a team, and a quick way to check they work.
The settings
Put this in ~/.claude/settings.json, or in the managed settings file
your admins deploy. Every model Claude Code might use is pinned to an
eu. profile, so nothing is left to the fallback.
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_REGION": "eu-central-1",
"ANTHROPIC_MODEL": "eu.anthropic.claude-sonnet-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "eu.anthropic.claude-sonnet-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "eu.anthropic.claude-opus-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "eu.anthropic.claude-haiku-4-5-20251001-v1:0"
}
}
Why each line is there:
AWS_REGIONhas to be an EU member-state Region. If you call the EU profile from Zurich or London, requests can be processed outside the EU.ANTHROPIC_MODELsets the main model. Without it, Claude Code’s current Bedrock default is Opus 5.5, which is billed at Opus prices (Claude Code docs).- The three
ANTHROPIC_DEFAULT_*_MODELlines control what thesonnet,opusandhaikuoptions in/modelpoint to. Without them, switching models mid-session can land on a profile you didn’t choose. - Background tasks, such as generating session titles, use your main
model when
ANTHROPIC_MODELis set, or Haiku if you pin it (Claude Code docs).
Before rolling out, check that each model ID exists as an EU profile in
your account by running
aws bedrock list-inference-profiles --region eu-central-1. The exact
IDs vary by model version, so copy them from that output. And don’t rely
on ANTHROPIC_BEDROCK_REGION_PREFIX=eu on its own: Claude Code treats
it as a preference, not a guarantee.
If you need single-Region processing, Claude Code also supports the
bedrock-mantle endpoint with CLAUDE_CODE_USE_MANTLE=1 and plain model
IDs such as anthropic.claude-sonnet-5 (Claude Code
docs). For Sonnet 5 in
the EU, that means Stockholm or Ireland (AWS: Claude Sonnet 5 model
card).
Rolling it out to a team
Settings on one laptop are a convention. For a team, you want the residency control to be a control.
- Use a dedicated AWS account. Anthropic recommends one for Claude Code because it makes cost tracking and access control simpler (Claude Code docs).
- Give developers a role that can only call EU profiles. The
example IAM policy in Claude Code’s docs allows every inference
profile, so replace its wildcards with your approved
eu.profile ARNs and the matching models, as described in How to Enforce EU-Only Claude Routing with IAM and SCPs. Keepbedrock:ListInferenceProfilesandbedrock:GetInferenceProfile, which Claude Code uses to work out which models it can call. - Deny Global routing with an SCP on the account, so a developer who overrides the settings still can’t leave the EU.
- Distribute the settings centrally through Claude Code’s managed settings, so every developer gets the same pinned models.
- Sign in through SSO rather than long-lived access keys. Claude Code supports AWS SSO profiles and refreshes credentials automatically (Claude Code docs).
Check it’s working
- Start Claude Code and run
/status. It shows the provider and the Region it resolved (Claude Code docs). - Run
/modeland switch between options. Each one should point to aneu.profile. - Send a prompt, then find the event in CloudTrail in your source
Region.
requestParameters.modelIdshould be aneu.profile, andinferenceRegion, if present, an EU Region. How to Verify Where Claude Processed Your Request with AWS CloudTrail walks through this. - Briefly set
ANTHROPIC_MODELto aglobal.profile and confirm the call is denied. If it goes through, your IAM or SCP layer isn’t doing its job.
Limits to know about
- No web search. The WebSearch tool isn’t available on Amazon Bedrock (Claude Code docs).
- The newest model may not support EU routing. For Claude Fable 5.1, Bedrock’s regional endpoints are currently only in us-east-1 (Anthropic: Claude in Amazon Bedrock). Developers will ask for the newest model, so check its AWS model card for an EU profile before approving it.
- Mantle has its own set of models. Inference profile IDs don’t work there, and access to some models is granted per account (Claude Code docs).
- Other Claude apps are configured separately. Claude Cowork and the Claude desktop apps have their own backend settings, so check their documentation rather than assuming they follow your Claude Code setup.
Want your developers on Claude Code without leaving the EU?
At Wolkn Minds, we set up the account, IAM, SCPs and managed settings, and check the result in CloudTrail. Book a consultation.

