AI-Enabled Engineering | AI in the EU series

    Running Claude Code on Amazon Bedrock Inside the EU

    Configure Claude Code with pinned EU inference profiles, IAM controls and checks that keep model processing in EU Regions.

    Siva SadhuBy Siva SadhuFounder and Principal ConsultantLast checked 29 September 2026
    Claude Code connected to secure European cloud regions

    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_REGION has 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_MODEL sets 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_*_MODEL lines control what the sonnet, opus and haiku options in /model point 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_MODEL is 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.

    1. Use a dedicated AWS account. Anthropic recommends one for Claude Code because it makes cost tracking and access control simpler (Claude Code docs).
    2. 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. Keep bedrock:ListInferenceProfiles and bedrock:GetInferenceProfile, which Claude Code uses to work out which models it can call.
    3. Deny Global routing with an SCP on the account, so a developer who overrides the settings still can’t leave the EU.
    4. Distribute the settings centrally through Claude Code’s managed settings, so every developer gets the same pinned models.
    5. 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

    1. Start Claude Code and run /status. It shows the provider and the Region it resolved (Claude Code docs).
    2. Run /model and switch between options. Each one should point to an eu. profile.
    3. Send a prompt, then find the event in CloudTrail in your source Region. requestParameters.modelId should be an eu. profile, and inferenceRegion, if present, an EU Region. How to Verify Where Claude Processed Your Request with AWS CloudTrail walks through this.
    4. Briefly set ANTHROPIC_MODEL to a global. 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.

    Sources

    Developer coding through a controlled European Claude routeNext in the AI in the EU seriesUsing Cursor with Claude in the EUConnect Cursor to Claude on Amazon Bedrock in Europe while understanding where code and prompts travel along the full path.Read next

    Related reading

    Rolling out AI coding tools across your teams?

    An AI Development Readiness Review covers tool and model choice, controls, cost and how the tools fit your delivery process.