The regions: what "Claude in Frankfurt" really means
Bedrock knows three ways to process a request. In-Region stays in exactly one region. Geo routes within a geography such as EU or US. Global routes worldwide. For the Claude models in Europe it looks like this, as of the model cards on 30 October 2026:
The EU profile is called eu.anthropic.claude-opus-5-5, eu.anthropic.claude-sonnet-5-5 or eu.anthropic.claude-haiku-5-5, and eu.anthropic.claude-opus-5 and eu.anthropic.claude-sonnet-5 for the predecessors. AWS says requests to a geo profile such as EU stay within that geography. The sentence next to it matters more: inputs and outputs can leave the source region. If you call from Frankfurt, you get processing in one of the EU regions, not necessarily in Frankfurt.
Which regions those are is now listed on every model card. If you call from Frankfurt, the request lands in one of six regions: Frankfurt, Stockholm, Milan, Spain, Ireland or Paris, all in EU member states. The same six apply to calls from Stockholm, Milan, Spain, Ireland and Paris. Only if you call from Zurich or London is your own region added as a seventh, which means a location outside the EU. The eight eu regions AWS lists are therefore source regions, not the destinations of every request. The binding destination list for your source region comes from the API call GetInferenceProfile, and AWS states that this list never changes for a geo profile. Which region served an individual request is visible afterwards in the CloudTrail field inferenceRegion.
If you genuinely need a single region, Europe offers few addresses. Opus 5.5 runs as a single region only in London, through the standard endpoint with the model ID without a prefix; London is not in the EU. Sonnet 5.5 and Haiku 5.5 are only available in Europe through the EU profile or globally. For Opus 5 and Sonnet 5, Stockholm and Ireland remain via the Mantle endpoint. Frankfurt is not a single-region option for any of these models. And the Fable models drop out of any EU commitment entirely: in all eu regions only the global profile is available.
Region restrictions via SCP: two traps
Many companies block unused regions with service control policies (SCPs) in AWS Organizations. Two points from the AWS documentation then belong in your planning. First, a restriction to "eu-central-1 only" breaks the EU profile: for a geo profile you have to allow all destination regions of your source region or add an exception using the condition key bedrock:InferenceProfileArn, otherwise requests fail as soon as Bedrock wants to route to Stockholm, for example. Second, you can block the global profile on purpose. AWS provides this SCP:
{
"Effect": "Deny",
"Action": "bedrock:*",
"Resource": "*",
"Condition": {
"StringEquals": { "aws:RequestedRegion": "unspecified" },
"ArnLike": { "bedrock:InferenceProfileArn": "arn:aws:bedrock:*:*:inference-profile/global.*" }
}
}
That way nobody in the organisation can accidentally run inference through a global. profile. The Fable models then become unusable in Europe, because they only exist there as global.
The data path: what AWS guarantees and what is retained anyway
The AWS commitments are documented in the Bedrock FAQ and the abuse detection page. Neither AWS nor the model providers train on inputs or outputs. Your content is not shared with providers. Bedrock works with "zero operator access", no operator of the service can reach model inputs or outputs, and by default with "zero data retention", inputs and outputs are not stored. Whatever is processed and stored sits encrypted in the region where you use Bedrock, TLS 1.2 is required in transit, and your own keys and AWS PrivateLink without a path across the public internet are available.
The exception sits in the same documentation. For Claude Fable 5 and Fable 5.1, all traffic is retained for up to 30 days for automated abuse detection, and requests flagged by a classifier may be reviewed by humans at AWS. The only exemption the documentation names is for customers eligible for the "Enterprise Frontier Safeguards" programme, until 31 December 2026. The retained data stays with AWS, not with Anthropic, and with cross-region profiles it is stored in the destination region.
The retention mode: none locks out Fable automatically
Whether Bedrock retains anything is governed by a mode you set yourself: per region for the whole account, and on the Mantle endpoint additionally per project. From strict to permissive there is none (nothing is written to durable storage), default (the model's own rule applies), aws_review (AWS may retain and have humans review) and the legacy provider_data_share, which according to AWS shares nothing with providers today. On top of that there is inherit, the default for new accounts, which defers the decision to the next broader scope. There is no console UI for this; you set it through the API or SDK.
Each model declares which modes it accepts. The Fable models require at least aws_review: if your account is on none or default, they are unavailable, and a call through the standard endpoint ends with a ValidationException. Setting none therefore locks out Fable automatically. The documentation names Opus 4.8 as an example of a model that permits none; in that case nothing is retained regardless of the account setting. Unlike the Fable cards, the model cards for Opus 5.5, Sonnet 5.5 and Haiku 5.5 contain no retention requirement. Which modes a model accepts is shown in the allowed_modes field when you query the model through the Mantle endpoint. To stop anyone loosening the mode later, you can enforce none with an SCP: the documentation denies the action bedrock:PutAccountDataRetention for any value other than none, and on the Mantle endpoint also the creation and update of projects.
For yellow data that means: a model with an EU profile, so Opus 5.5, Sonnet 5.5, Haiku 5.5 or a predecessor, not Fable. That is not a statement about model quality, it is a statement about the data path.
DPA, standard contractual clauses and the US parent
Data processing at AWS is not an extra step. The AWS DPA is part of the Service Terms, and the European Commission's standard contractual clauses of June 2021 apply automatically according to AWS. AWS is also certified under the EU-US Data Privacy Framework, as part of the certification of Amazon.com, Inc. You determine the region in which your content is stored. So Bedrock covers the part you get no contract for on a single Pro account, without you signing anything; how that looks on Team is in Claude Team: pricing and when it pays off.
What stays with you is the same as with any tool. You need a legal basis for entering personal data regardless of where it is processed; the German data protection authorities say explicitly in their guidance on AI and data protection, margin number 48, that even entering data into an AI system requires a legal basis. The privacy policy, the record of processing activities and the decision about which data belongs in a prompt at all are not taken off your hands by any provider. How I draw that line is in AI and Privacy: What the AI Gets to See.
One point belongs here honestly: the commercial eu regions are operated by a US corporation. AWS's answer to that is the European Sovereign Cloud, live since 15 January 2026 with a first region in Brandenburg, operated exclusively by EU residents, under its own parent company with three German GmbHs. Except: Claude does not appear there. Bedrock in the Sovereign Cloud was extended on 17 September 2026 with Google's Gemma 4 models, Anthropic is not named in any AWS announcement about the Sovereign Cloud, and none of the Claude model cards lists a Sovereign Cloud region, as of 30 October 2026. If you want Claude, you take the commercial eu regions today, with DPA, standard contractual clauses and the Data Privacy Framework. If you want the Sovereign Cloud, you will find no Claude there today, going by everything AWS has published.
What Claude on Bedrock costs
Bedrock is usage billing, not a subscription; Claude is billed through AWS Marketplace and shows up on your AWS bill. The AWS pricing page lists two prices per model: global and "Geo and In-region". The EU profile and single regions cost 10 percent more than the global profile. Per million tokens, as of 30 October 2026:
According to Anthropic, Haiku 5.5 has a tiered list price: $0.10 / $0.50 for prompts up to 100,000 tokens, and $0.50 / $2.50 above that. On the AWS pricing page, Haiku 5.5 costs $0.10 / $0.50 globally and $0.11 / $0.55 through the EU profile; for long prompts AWS lists a separate row at $0.50 / $2.50 globally and $0.55 / $2.75 in the EU profile.
As an order of magnitude: one million input tokens and 200,000 output tokens on Sonnet 5.5 cost 4 dollars globally and 4.40 dollars through the EU profile. That is a different kind of cost from the 20 dollars for Pro or the 25 dollars per seat on Team that I compare in Claude Pricing and Plans Explained: it is not predictable, but you only pay for what runs, and the bill comes from AWS, not Anthropic. Prompt caching, batch, budget alerts and cost per department are covered in AWS Bedrock Pricing: Claude Costs and Budgets.
Claude Code on Bedrock in the EU
Claude Code can run directly against Bedrock instead of through the subscription. Access is a one-off per AWS account: pick an Anthropic model in the Bedrock model catalog and submit the use case form; according to the documentation access is granted immediately. With AWS Organizations, one call to PutUseCaseForModelAccess from the management account is enough, and the approval extends to the child accounts. According to Anthropic, Fable 5.1, Fable 5, Opus 4.8, Sonnet 5, Opus 4.7 and Haiku 4.5 are open to all Bedrock customers; the access criteria for Opus 5.5, Sonnet 5.5, Haiku 5.5 and Opus 5 are shown in the Bedrock console.
The quickest setup is the wizard: start claude, choose "3rd-party platform" and then "Amazon Bedrock" at the login prompt; if you are already signed in, run /setup-bedrock. The wizard asks for an AWS profile, a Bedrock API key or an access key, and for the region, checks which Claude models your account can invoke, and saves everything to your settings file. For scripts and rollouts, environment variables still work:
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=eu-central-1
export ANTHROPIC_BEDROCK_REGION_PREFIX=eu
Without further settings, Claude Code on Bedrock uses Opus 5.5 as its primary model, so with the prefix eu that is eu.anthropic.claude-opus-5-5. In an eu region eu is the default anyway; the variable exists from Claude Code 2.1.224 and, according to the documentation, is a preference, not a guarantee. The documentation warns explicitly: if you don't pin a primary model, you are billed at the Opus rate. For Sonnet 5.5, set ANTHROPIC_MODEL=eu.anthropic.claude-sonnet-5-5, and for multiple users the documentation recommends always pinning model versions. Sonnet 5 and later and Opus 4.7 and later run with a one million token context window by default on Bedrock.
Three limitations come with it: the web search tool is not available on Bedrock, there is no /logout because sign-in runs through AWS credentials, and Claude Code does not offer fast mode on Bedrock, see Claude Code Fast Mode: Cost and Switching. Everything else that makes Claude Code what it is, files, folders, skills, stays the same; the basics are in Claude Code: A Guide for Beginners.
Claude Desktop on Bedrock
The desktop app can be switched to Bedrock as well. Anthropic calls this Claude Desktop on third-party (3P): the app sends all requests to the provider you configure, and Chat, Cowork and Code remain available. With Bedrock, requests go directly from the machine to the regional endpoint, and conversations are stored locally on the device, not with Anthropic. Billing is per token through AWS, with no seat licences.
Setup is central. The app's configuration window (Developer → Configure Third-Party Inference…) builds the settings, and you distribute them through MDM such as Intune, Jamf or Group Policy. For sign-in the documentation describes several paths, from a shared Bedrock API key for a first test to in-app sign-in through IAM Identity Center, optionally backed by Entra ID or Okta, in which case each person appears individually in CloudTrail. Three points belong in your planning: the models must be enabled in exactly the region you enter in the app. Web search on Bedrock needs its own search provider. And by default the app sends crash reports and product analytics without conversation content to Anthropic; that can be switched off entirely through configuration. The step-by-step setup, including export for Intune and Jamf, is in Set Up Claude Desktop with Amazon Bedrock. What helps with quotas and a ThrottlingException is explained in Bedrock ThrottlingException and Quota Limits.
What is missing on Bedrock
The Bedrock integration for Opus 4.7 and later delivers the Messages API with prompt caching, thinking, tool use, citations and now also structured outputs. Not supported, according to Anthropic, are among others the Files API and URL sources for images and documents, the server-side tools code execution, web search, web fetch and advisor, Agent Skills, the MCP connector and programmatic tool calling, the endpoints for message batches and for usage and cost, Claude Managed Agents, and the new toolsets for computer and browser use. If you are building your own application, check this list before the decision, not after.
In practice: yellow via Bedrock, red locally
My traffic light for client data has three levels. Green goes in directly: blog posts, copy, anything without personal data. Yellow is personal data in a normal business context, which needs a DPA, anonymisation, or precisely Claude via Bedrock in the EU. Red is health data, third-party bank data and other special categories, which in my setup mostly run directly through local models, no cloud; what such a setup looks like is in Local AI and Privacy: Cloud or Server?.
I use Bedrock in production myself in some cases and have set it up for clients, wherever processing in the EU is required; my own workforce runs on Claude with a DPA day to day. The price is effort: an AWS account, IAM permissions, the question of single region versus EU profile, and a look at CloudTrail when somebody asks where a request was processed. For green data it is not worth it, for red data it is not enough for me. For the middle it is the option I use myself; Anthropic also names Google Vertex and Microsoft Foundry as EU paths, which I have not looked at. How Bedrock compares with a vendor's business plan and your own server when a company rolls out AI for everyone is covered in Private LLM: Vendor, EU Cloud or Own Server?.
Frequently asked questions
Is Claude on AWS Bedrock GDPR compliant?
No service is compliant on its own, only a setup is. What is documented is what Bedrock delivers: data processing under the AWS DPA with standard contractual clauses, processing in eu regions through the EU profile, no training, no sharing with Anthropic, no retention by default, encryption in transit and at rest. Legal basis, privacy policy and the selection of data remain with you. How to set up Bedrock in your business is something we'll look at together.
Does Claude run in Frankfurt on Bedrock?
From Frankfurt yes, in Frankfurt alone no. Opus 5.5, Sonnet 5.5, Haiku 5.5 and the predecessors Opus 5 and Sonnet 5 run in eu-central-1 only through the EU profile or globally. According to the model card, the EU profile routes from Frankfurt to six regions in EU member states: Frankfurt, Stockholm, Milan, Spain, Ireland and Paris; the binding list comes from GetInferenceProfile. In Europe, a single region exists for Opus 5.5 only in London, and for Opus 5 and Sonnet 5 in Stockholm and Ireland through the Mantle endpoint.
Does Anthropic see my data when I use Claude through Bedrock?
According to the AWS documentation, no. The models run in AWS accounts to which Anthropic has no access, and even the data retained for Fable 5 and 5.1 stays with AWS according to AWS and is not shared with model providers.
Do I need my own DPA with Anthropic?
For processing on Bedrock, AWS is your processor and the DPA is part of the AWS Service Terms. With Anthropic you accept the terms for Bedrock when enabling the model, in the EEA with Anthropic Ireland Limited.
Does the EU profile cost more than the global profile?
Yes, 10 percent, for example $2.20 instead of $2 per million input tokens on Sonnet 5.5; in return, requests stay in the EU regions. Billing runs through your AWS bill, and the AWS pricing page is authoritative.
Can I use Claude Code through Bedrock?
Yes, through the login wizard (/setup-bedrock) or with CLAUDE_CODE_USE_BEDROCK=1, an AWS region and the prefix eu for the EU profiles. The web search tool and fast mode are missing then, everything else stays.
How to make the call for yourself
Three questions and you know whether Bedrock is your path. Does a client or your data protection officer require processing in the EU? If not, a commercial Claude product with a DPA is enough, see Claude Privacy and GDPR: What Applies. If yes: is "somewhere in the EU regions" enough, or does it have to be a single region? That decides between the EU profile and a single region, which within the EU only exists for Opus 5 and Sonnet 5 in Stockholm or Ireland. And do you need Fable? Then the EU commitment is not available today, and the choice falls on Opus 5.5, Sonnet 5.5 or Haiku 5.5.
What no cloud path offers, special categories without any third-party server, remains the territory of local models. How my workforce of fifteen AI employees works within these limits and which rules sit in their personnel files, I show in my Community.