Robin, Consultant für GenAI bei Pexon Consulting | 8 Min. Lesezeit | 28.09.2026
TL;DR: Claude Opus Bedrock in Frankfurt
Claude Opus Bedrock in Frankfurt startet über das EU-Inferenzprofil in eu-central-1, nicht über eine Einzelregion nur in Frankfurt. Seit dem 22. September 2026 nutzen Sie Opus 5.5 mit eu.anthropic.claude-opus-5-5. Model Access, IAM mit eu-*-Wildcards, boto3 converse, CloudTrail Data Events, KMS und Guardrails bilden den Kern. Pexon Consulting (ISO 27001) liefert bei Bedarf Architektur und Abnahme auf der Bedrock-Money-Page.
| Aspekt | Anthropic API direkt | Bedrock EU-Profil aus Frankfurt |
|---|---|---|
| Datenstandort | USA (Anthropic-Hosting) | EU (Frankfurt, Paris, Stockholm, Irland u. a.) |
| Vertragspartner | Anthropic PBC, USA | AWS EMEA SARL, Luxemburg |
| Logging | Anthropic-Pipeline | CloudTrail + CloudWatch im eigenen AWS-Konto |
| Verschlüsselung | TLS in Transit | TLS + AWS KMS Customer Managed Keys at Rest |
| DPA / AVV | Standardvertrag englisch | AWS AVV auf Deutsch, DSGVO Art. 28 |
Was Sie in 30 Minuten hinbekommen
- Model Access für Claude Opus 5.5 in
eu-central-1freischalten - IAM-Policy mit Foundation-Model- und Inference-Profile-ARNs (inkl.
eu-*) - boto3-Client mit Converse und EU-Profil-ID
- CloudTrail Data Events + optional KMS-CMK für Invocation Logs
- Bedrock Guardrails als PII- und Policy-Filter
1. Model Access in Frankfurt freischalten
In der Bedrock-Konsole (eu-central-1) unter Model access den Zugriff auf Claude Opus 5.5 anfragen. Ohne diesen Schritt scheitern Aufrufe mit AccessDeniedException. Opus 5.5 ist laut AWS-Modellkarte seit 22.09.2026 aktiv; EOL nicht vor 22.09.2027.
Frankfurt ist Quellregion des EU-Profils, nicht die einzige Verarbeitungsregion. Eine Einzelregion-Verarbeitung nur in Frankfurt bietet AWS für aktuelle Opus-Modelle nicht. Wer genau eine Region braucht, plant Stockholm oder Irland über bedrock-mantle. Details und Abnahmeumfang stehen auf der Bedrock-Money-Page (Link im Kasten oben).
Praktisch: Wählen Sie in der Konsole immer die Region eu-central-1, bevor Sie Model access öffnen. Anfragen für Opus 5.5 laufen danach über das Profil eu.anthropic.claude-opus-5-5. Wenn der Status „Access granted“ fehlt, erscheint später ValidationException oder AccessDeniedException, obwohl IAM korrekt wirkt.
| Prüfschritt | Erwartung | Typischer Fehler |
|---|---|---|
| Model access Opus 5.5 | Status granted in eu-central-1 | Modell nie beantragt |
| Service Quota | Converse erlaubt | Account-Limit 0 TPM |
| SCP / Permission Boundary | eu-* erlaubt | Nur eu-central-1 frei |
2. IAM-Policy: Modell und EU-Profil
Die App-IAM-Rolle braucht Invoke-Rechte auf das Foundation Model und auf das Inference Profile. Ohne eu-*-Wildcard auf den Foundation-Model-ARNs blockiert IAM, sobald das EU-Profil in eine Nachbarregion routet.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ClaudeOpus55Invoke",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream",
"bedrock:Converse",
"bedrock:ConverseStream"
],
"Resource": [
"arn:aws:bedrock:eu-central-1::foundation-model/anthropic.claude-opus-5-5",
"arn:aws:bedrock:eu-*::foundation-model/anthropic.claude-opus-5-5",
"arn:aws:bedrock:eu-central-1:*:inference-profile/eu.anthropic.claude-opus-5-5"
]
}
]
}
Account-ID und engere ARNs nach Bedarf nachziehen. Für Guardrails zusätzlich bedrock:ApplyGuardrail freigeben.
Least Privilege ohne Selbstblockade. Viele Teams starten mit bedrock:InvokeModel auf . Das ist schnell, aber im Audit unbequem. Besser: eine dedizierte Rolle ClaudeOpusBedrockEU mit der Policy oben und ein Permission Boundary, das us- und global. explizit verbietet. Bedenken Sie Application Inference Profiles: Wenn Sie später teamweise Kontingente fahren, brauchen Sie zusätzlich ARNs auf application-inference-profile/.
Test mit AWS CLI vor dem Code:
aws bedrock-runtime converse
--region eu-central-1
--model-id eu.anthropic.claude-opus-5-5
--messages '[{"role":"user","content":[{"text":"Antworte mit OK"}]}]'
--inference-config '{"maxTokens":32,"temperature":0}'
Kommt hier schon AccessDenied, liegt es fast immer an Model access oder an fehlenden eu-*-Foundation-Model-Rechten, nicht an boto3.
3. boto3: Converse mit EU-Profil
Nicht die nackte Model-ID anthropic.claude-opus-5-5 für Geo-EU nutzen, sondern das EU-Inferenzprofil:
import boto3
from botocore.config import Config
bedrock = boto3.client(
"bedrock-runtime",
region_name="eu-central-1",
config=Config(
read_timeout=300,
retries={"max_attempts": 3, "mode": "adaptive"},
),
)
INFERENCE_PROFILE = "eu.anthropic.claude-opus-5-5"
def ask_opus(prompt: str, system_prompt: str = "") -> str:
messages = [{"role": "user", "content": [{"text": prompt}]}]
kwargs = {
"modelId": INFERENCE_PROFILE,
"messages": messages,
"inferenceConfig": {"maxTokens": 2048, "temperature": 0.2},
}
if system_prompt:
kwargs["system"] = [{"text": system_prompt}]
response = bedrock.converse(**kwargs)
return response["output"]["message"]["content"][0]["text"]
Stand 28.09.2026 (AWS-Modellkarte Opus 5.5):
| Profil / Endpunkt | ID / Hinweis |
|---|---|
EU Geo (bedrock-runtime) |
eu.anthropic.claude-opus-5-5 |
| Global | global.anthropic.claude-opus-5-5 (kein EU-Nachweis) |
| Mantle In-Region | laut AWS-Karte u. a. us-east-1, ap-southeast-4, in der EU nicht belegt |
| Vorgänger im How-to | früher eu.anthropic.claude-opus-4-6-20260131-v1:0 / Opus 5 auf 5.5 umstellen |
Streaming. Für lange Antworten converse_stream nutzen. Das Profil bleibt identisch; nur der Client-Loop liest Events. Timeout in botocore.config.Config hochsetzen, sonst brechen juristische Zusammenfassungen bei 60 Sekunden ab.
Fehlerbilder nach dem Umstieg von Opus 4.6:
| Meldung | Ursache | Fix |
|---|---|---|
The provided model identifier is invalid |
nackte Model-ID statt Profil | eu.anthropic.claude-opus-5-5 |
AccessDeniedException |
IAM oder Model access | Policy + Konsole |
ThrottlingException |
TPM-Limit | Service Quotas erhöhen |
| Antwort leer, HTTP 200 | Guardrail blockiert | Guardrail-Trace prüfen |
4. Compliance: CloudTrail, KMS, Guardrails
CloudTrail Data Events. Standard-Trails loggen oft nur Management-Events. Für Inference Data Events AWS::Bedrock::* explizit ergänzen. Ohne Data Events fehlt die Nachvollziehbarkeit für Prompt-Inhalte, ein häufiger Audit-Fund.
KMS CMK. Invocation Logging mit Customer Managed Key in einer EU-Region, damit Schlüssel und Log-Zugriff in Ihrem Konto liegen.
Guardrails. PII-Maskierung und Topic- sowie Jailbreak-Filter vor dem Inference-Call. Guardrail-Version in jeder Region pflegen, die Traffic tragen kann, und in jedem Request referenzieren.
CloudTrail konkret. Legen Sie einen Trail an, der Management Events und Data Events für Bedrock erfasst. Speichern Sie Logs in einem S3-Bucket in der EU mit Bucket Policy, die nur das Audit-Team und Break-Glass-Rollen liest. Aktivieren Sie log file validation. Für Versicherer und Banken reicht oft schon der Nachweis, dass jeder Converse-Call mit Profil-ID, Account und IAM-Principal geloggt wird.
KMS. Wenn Sie Invocation Logging mit CMK verschlüsseln, dokumentieren Sie Key Rotation und wer kms:Decrypt besitzt. Der Schlüssel sollte in derselben Organisationseinheit liegen wie die Bedrock-Workloads, nicht im Sandbox-Account der Entwickler.
5. Kosten und Pinning (kurz)
EU-Profile kosten gegenüber dem globalen Weg typischerweise 10 Prozent Aufschlag auf den Tokenpreis (Anthropic- und AWS-Doku, Stand September 2026). Konkrete EUR-Festpreise für Einrichtung stehen auf den Money-Pages, nicht in diesem How-to.
Für Claude Code pinnen Sie Opus fest, sonst kann ein Update still den Opus-Tarif setzen:
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_REGION": "eu-central-1",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "eu.anthropic.claude-opus-5-5",
"ANTHROPIC_MODEL": "eu.anthropic.claude-sonnet-5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "eu.anthropic.claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "eu.anthropic.claude-haiku-4-5-20251001-v1:0"
}
}
Betriebsweg über Teams und MDM: siehe Hosting-Seite Claude Code unter dem Claude-Anthropic-Baum (Pinning wie im JSON oben).
Rollout-Checkliste vor Produktion
| # | Check | Verantwortlich |
|---|---|---|
| 1 | Model access Opus 5.5 granted | Cloud Platform |
| 2 | IAM-Rolle ohne us-* Leaks |
Security |
| 3 | Profil-ID in allen Umgebungen identisch | App Team |
| 4 | CloudTrail Data Events sichtbar | Audit |
| 5 | Guardrail in Prod-Region versioniert | App Team |
| 6 | Kosten-Alarm pro Tag / Team | FinOps |
Wir empfehlen einen Schattenlauf: eine Woche parallel zur Anthropic API, gleiche Prompts, Vergleich von Latenz und Kosten. Erst wenn Logs und Kosten stimmen, schalten Sie den Umschalter um. Dokumentieren Sie dabei die Profil-ID in der Konfiguration, damit Audit und Betrieb dieselbe Zeile lesen.
Häufige Fragen
Bleibt die Verarbeitung in Frankfurt?
Nein, nicht als Einzelregion. Frankfurt ist Quellregion für das EU-Profil. Die Anfrage bleibt in der EU, die konkrete Region wählt Bedrock. Für eine Region: Mantle in Stockholm oder Irland prüfen.
Reicht die Region `eu-central-1` ohne Profil-ID?
Nein. Neuere Claude-Modelle brauchen das Inference Profile (eu.…). Ohne eu.-Pinning droht Fallback auf andere Profile.
Opus 5 oder Opus 5.5?
Opus 5.5 ist seit 22.09.2026 auf Bedrock; EU-ID eu.anthropic.claude-opus-5-5. Ältere Tutorials mit Opus 4.6 bitte ersetzen.
Brauchen Versicherer und Energieversorger extra Verträge?
Der Vertragspartner für die Inferenz ist AWS, nicht Anthropic. Ihr AVV mit AWS muss Bedrock abdecken. Anthropic bleibt Modellanbieter, aber die Verarbeitung läuft in Ihrem Konto. Dokumentieren Sie das Profil und die Regionen im Verzeichnis der Verarbeitungstätigkeiten.
Was ändert sich gegenüber dem alten Opus-4.6-How-to?
Profil-ID, IAM-ARNs und Model access. Der Ablauf bleibt: eu-central-1 wählen, EU-Profil pinnen, Converse statt Legacy-Invoke. Frankfurt als Mythos „nur eine Region“ entfällt.
Nächster Schritt
Quellen (abgerufen 28.09.2026): AWS Model Card Claude Opus 5.5; AWS Blog „Claude Opus 5.5 is now available on AWS“ (22.09.2026); AWS Cross-Region Inference / EU geo.



