1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# Claude Code auf Claude Platform on AWS
6
7> Konfigurieren Sie Claude Code für die Verwendung der von Anthropic betriebenen Claude API mit AWS-Authentifizierung, IAM-Zugriffskontrolle und AWS Marketplace-Abrechnung.
8
9export const ContactSalesCard = ({surface}) => {
10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;
11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
12 <line x1="5" y1="12" x2="19" y2="12" />
13 <polyline points="12 5 19 12 12 19" />
14 </svg>;
15 const STYLES = `
16.cc-cs {
17 --cs-slate: #141413;
18 --cs-clay: #d97757;
19 --cs-clay-deep: #c6613f;
20 --cs-gray-000: #ffffff;
21 --cs-gray-700: #3d3d3a;
22 --cs-border-default: rgba(31, 30, 29, 0.15);
23 font-family: inherit;
24}
25.dark .cc-cs {
26 --cs-slate: #f0eee6;
27 --cs-gray-000: #262624;
28 --cs-gray-700: #bfbdb4;
29 --cs-border-default: rgba(240, 238, 230, 0.14);
30}
31.cc-cs-card {
32 display: flex; align-items: center; justify-content: space-between;
33 gap: 16px; padding: 14px 16px; margin: 0;
34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);
35 border-radius: 8px; flex-wrap: wrap;
36}
37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }
38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }
39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
40.cc-cs-btn-clay {
41 display: inline-flex; align-items: center; gap: 8px;
42 background: var(--cs-clay-deep); color: #fff; border: none;
43 border-radius: 8px; padding: 8px 14px;
44 font-size: 13px; font-weight: 500;
45 transition: background-color 0.15s; white-space: nowrap;
46}
47.cc-cs-btn-clay:hover { background: var(--cs-clay); }
48.cc-cs-btn-ghost {
49 display: inline-flex; align-items: center; gap: 8px;
50 background: transparent; color: var(--cs-gray-700);
51 border: 0.5px solid var(--cs-border-default);
52 border-radius: 8px; padding: 8px 14px;
53 font-size: 13px; font-weight: 500;
54}
55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }
56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }
57@media (max-width: 720px) {
58 .cc-cs-actions { width: 100%; }
59}
60`;
61 return <div className="cc-cs not-prose">
62 <style>{STYLES}</style>
63 <div className="cc-cs-card">
64 <div className="cc-cs-text">
65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.
66 </div>
67 <div className="cc-cs-actions">
68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">
69 View plans
70 </a>
71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">
72 Contact sales {iconArrowRight()}
73 </a>
74 </div>
75 </div>
76 </div>;
77};
78
79export const Experiment = ({flag, treatment, children}) => {
80 const VID_KEY = 'exp_vid';
81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);
82 const fnv1a = s => {
83 let h = 0x811c9dc5;
84 for (let i = 0; i < s.length; i++) {
85 h ^= s.charCodeAt(i);
86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);
87 }
88 return h >>> 0;
89 };
90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';
91 const [decision] = useState(() => {
92 const params = new URLSearchParams(location.search);
93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];
94 const force = params.get('gb-force');
95 if (force) {
96 for (const p of force.split(',')) {
97 const [k, v] = p.split(':');
98 if (k === flag) return {
99 variant: v || 'treatment',
100 track: false
101 };
102 }
103 }
104 if (navigator.globalPrivacyControl) {
105 return {
106 variant: 'control',
107 track: false
108 };
109 }
110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);
111 if (prefsMatch) {
112 try {
113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {
114 return {
115 variant: 'control',
116 track: false
117 };
118 }
119 } catch {
120 return {
121 variant: 'control',
122 track: false
123 };
124 }
125 } else {
126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];
127 if (!country || CONSENT_COUNTRIES.has(country)) {
128 return {
129 variant: 'control',
130 track: false
131 };
132 }
133 }
134 let vid;
135 try {
136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);
137 if (ajsMatch) {
138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');
139 } else {
140 vid = localStorage.getItem(VID_KEY);
141 if (!vid) {
142 vid = crypto.randomUUID();
143 }
144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;
145 }
146 try {
147 localStorage.setItem(VID_KEY, vid);
148 } catch {}
149 } catch {
150 return {
151 variant: 'control',
152 track: false
153 };
154 }
155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);
156 return {
157 variant,
158 track: true,
159 vid
160 };
161 });
162 useEffect(() => {
163 if (!decision.track) return;
164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {
165 method: 'POST',
166 headers: {
167 'Content-Type': 'application/json',
168 'x-service-name': 'claude_code_docs'
169 },
170 body: JSON.stringify({
171 events: [{
172 event_type: 'GrowthbookExperimentEvent',
173 event_data: {
174 device_id: decision.vid,
175 anonymous_id: decision.vid,
176 timestamp: new Date().toISOString(),
177 experiment_id: flag,
178 variation_id: decision.variant === 'treatment' ? 1 : 0,
179 environment: 'production'
180 }
181 }]
182 }),
183 keepalive: true
184 }).catch(() => {});
185 }, []);
186 return decision.variant === 'treatment' ? treatment : children;
187};
188
189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="claude_platform_on_aws" />} />
190
191Claude Platform on AWS ist die von Anthropic betriebene Claude API mit AWS-Authentifizierung, IAM-Zugriffskontrolle und AWS Marketplace-Abrechnung. Anfragen erreichen die API von Anthropic direkt, sodass Sie die gleichen Modelle und Funktionen wie die [Claude API](https://platform.claude.com/docs) nach dem gleichen Veröffentlichungsplan erhalten. Sie authentifizieren sich mit AWS-Anmeldedaten oder einem Workspace-API-Schlüssel und zahlen über AWS Marketplace.
192
193Verwenden Sie diese Anleitung, um Claude Code auf einen Workspace zu verweisen, den Sie bereits über Claude Platform on AWS bereitgestellt haben. Für das AWS-Abonnement und die Workspace-Einrichtung, die davor kommt, siehe die [Claude Platform on AWS-Dokumentation](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).
194
195<Note>
196 Das Abonnement über AWS Marketplace stellt eine neue Anthropic-Organisation bereit, die mit Ihrem AWS-Konto verknüpft ist. Diese Organisation ist separat von jeder Organisation, die Sie bereits bei Anthropic haben, und Anmeldedaten werden nicht zwischen ihnen übertragen. Verwenden Sie die Workspace-ID und API-Schlüssel aus der AWS-verknüpften Organisation, nicht aus einem bereits vorhandenen Claude Console-Konto.
197</Note>
198
199## Voraussetzungen
200
201Vor der Konfiguration von Claude Code benötigen Sie:
202
203* Ein aktives Claude Platform on AWS-Abonnement über AWS Marketplace
204* Einen Workspace in Ihrer AWS-verknüpften Anthropic-Organisation mit seiner Workspace-ID
205* Einen IAM-Principal mit Berechtigung zum Aufrufen des Anthropic-Dienstes oder einen API-Schlüssel, der auf den Workspace beschränkt ist
206* AWS-Anmeldedaten in Ihrer Umgebung, in `~/.aws/credentials` oder von einer angehängten IAM-Rolle, wenn Sie SigV4-Authentifizierung möchten. Die AWS CLI ist nur für den SSO-Anmeldungsfluss erforderlich.
207
208## Einrichtung
209
210### 1. AWS-Anmeldedaten konfigurieren
211
212Claude Code unterstützt zwei Authentifizierungsmethoden für Claude Platform on AWS. Wählen Sie die Methode, die zu Ihrer Zugriffsverwaltung passt.
213
214**Option A: AWS-Anmeldedaten mit SigV4**
215
216Claude Code signiert Anfragen mit SigV4 unter Verwendung der Standard-AWS-Anmeldekette: Umgebungsvariablen, gemeinsame Anmeldedaten in `~/.aws/credentials`, IAM-Rollen, AWS SSO-Sitzungen und alle anderen Quellen, die das AWS SDK unterstützt.
217
218Für die lokale Verwendung melden Sie sich mit der AWS CLI an, bevor Sie Claude Code starten. Das folgende Beispiel verwendet ein SSO-Profil, aber jede Methode, die Anmeldedaten an den Standardorten erzeugt, funktioniert.
219
220```bash theme={null}
221aws sso login --profile my-profile
222export AWS_PROFILE=my-profile
223```
224
225Für CI und Automatisierung geben Sie dem Runner eine IAM-Rolle mit Berechtigung zum Aufrufen des Anthropic-Dienstes und setzen Sie `AWS_REGION`. Die Anmeldekette nimmt die Rolle automatisch auf.
226
227Wenn Ihre SSO-Anmeldedaten während einer Sitzung ablaufen, konfigurieren Sie [`awsAuthRefresh`](/de/amazon-bedrock#advanced-credential-configuration), damit Claude Code Ihren Anmeldungsbefehl erneut ausführt und erneut versucht, anstatt fehlzuschlagen. Fügen Sie den Befehl zu Ihrer `settings.json` hinzu:
228
229```json theme={null}
230{
231 "awsAuthRefresh": "aws sso login --profile my-profile"
232}
233```
234
235**Option B: Workspace-API-Schlüssel**
236
237Ein Workspace-API-Schlüssel ist ein langlebiges Geheimnis, das nützlich ist, wenn Sie keine verbundenen AWS-Anmeldedaten verwalten möchten. Generieren Sie einen in der AWS Console unter **Claude Platform on AWS → API keys** und setzen Sie ihn als `ANTHROPIC_AWS_API_KEY`:
238
239```bash theme={null}
240export ANTHROPIC_AWS_API_KEY=sk-ant-xxxxx
241```
242
243Der Schlüssel wird als `x-api-key` gesendet und hat Vorrang vor SigV4, sodass alle AWS-Anmeldedaten in Ihrer Umgebung ignoriert werden. API-Schlüssel aus einer separaten Claude Console-Organisation funktionieren hier nicht.
244
245Behandeln Sie Workspace-API-Schlüssel wie jede andere Produktionsanmeldedaten. Der [Benutzereinstellungsdatei](/de/settings) `env`-Block ist eine praktische Möglichkeit, den Schlüssel auf Ihrem Computer zu beschränken, ohne ihn global zu exportieren.
246
247<Note>
248 Die Befehle `/login` und `/logout` ändern die Claude Platform on AWS-Authentifizierung nicht. Die Authentifizierung erfolgt über Ihre AWS-Anmeldedaten oder Ihren Workspace-API-Schlüssel, nicht über ein Claude.ai-Abonnement.
249</Note>
250
251### 2. Claude Code konfigurieren
252
253Setzen Sie die Umgebungsvariablen, die Claude Code durch Claude Platform on AWS anstelle der Standard-Anthropic API leiten.
254
255```bash theme={null}
256export CLAUDE_CODE_USE_ANTHROPIC_AWS=1
257export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN
258export AWS_REGION=us-east-1
259```
260
261`ANTHROPIC_AWS_WORKSPACE_ID` ist erforderlich und wird bei jeder Anfrage als `anthropic-workspace-id`-Header gesendet. Die Basis-URL wird aus `AWS_REGION` als `https://aws-external-anthropic.{region}.api.aws` berechnet. Um die URL direkt zu überschreiben, setzen Sie `ANTHROPIC_AWS_BASE_URL`.
262
263Claude Platform on AWS ist optional, auch wenn AWS-Anmeldedaten in Ihrer Umgebung vorhanden sind. Bedrock und Foundry haben Vorrang beim Provider-Routing, daher heben Sie `CLAUDE_CODE_USE_BEDROCK` und `CLAUDE_CODE_USE_FOUNDRY` auf, wenn sie gesetzt sind.
264
265### 3. Modellversionen anheften
266
267Claude Platform on AWS verwendet die gleichen Modell-IDs wie die direkte Claude API. Die Standard-Aliase `opus`, `sonnet` und `haiku` werden zu den neuesten Versionen aufgelöst, die in Ihrem Workspace verfügbar sind.
268
269Wenn Sie Claude Code für ein Team bereitstellen, heften Sie die Modell-IDs explizit an, damit eine neue Version nicht alle auf einmal verschiebt:
270
271```bash theme={null}
272export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7
273export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6
274export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
275```
276
277Die vollständige Liste der Modell-IDs und Aliase finden Sie unter [Modellübersicht](https://platform.claude.com/docs/en/about-claude/models/overview). Für andere modellbezogene Variablen siehe [Modellkonfiguration](/de/model-config).
278
279[Prompt Caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) ist automatisch aktiviert. 1-Stunden-Cache-Schreibvorgänge werden mit einer höheren Rate als 5-Minuten-Schreibvorgänge abgerechnet. Um statt des 5-Minuten-Standards eine 1-Stunden-Cache-TTL anzufordern, setzen Sie `ENABLE_PROMPT_CACHING_1H=1`.
280
281## Agent SDK verwenden
282
283Das [Agent SDK](/de/agent-sdk/overview) liest die gleichen Umgebungsvariablen wie die CLI, sodass jedes Programm, das den Claude Code-Unterprozess erzeugt, Claude Platform on AWS anvisieren kann, indem es `CLAUDE_CODE_USE_ANTHROPIC_AWS`, `ANTHROPIC_AWS_WORKSPACE_ID` und entweder `ANTHROPIC_AWS_API_KEY` oder AWS-Anmeldedaten vor dem Aufruf exportiert.
284
285```typescript theme={null}
286import { query } from "@anthropic-ai/claude-agent-sdk";
287
288process.env.CLAUDE_CODE_USE_ANTHROPIC_AWS = "1";
289process.env.ANTHROPIC_AWS_WORKSPACE_ID = "wrkspc_01ABCDEFGHIJKLMN";
290process.env.AWS_REGION = "us-east-1";
291
292for await (const msg of query({ prompt: "What's in this repo?" })) {
293 console.log(msg);
294}
295```
296
297Dieses Beispiel basiert auf der Umgebungs-AWS-Anmeldekette für SigV4. Um sich stattdessen mit einem Workspace-API-Schlüssel zu authentifizieren, setzen Sie `ANTHROPIC_AWS_API_KEY` auf die gleiche Weise. Für die breitere Agent SDK-Oberfläche siehe [Agent SDK-Übersicht](/de/agent-sdk/overview).
298
299## Durch einen Unternehmens-Proxy leiten
300
301Um Datenverkehr durch einen Proxy oder [LLM-Gateway](/de/llm-gateway) zu leiten, setzen Sie `ANTHROPIC_AWS_BASE_URL` auf die Adresse des Proxys. Claude Code sendet Anfragen an diese URL mit den gleichen Workspace- und Authentifizierungsheadern, sodass jedes Gateway, das sie unverändert weiterleitet, funktioniert.
302
303```bash theme={null}
304export CLAUDE_CODE_USE_ANTHROPIC_AWS=1
305export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN
306export ANTHROPIC_AWS_BASE_URL=https://anthropic-proxy.example.com
307```
308
309Wenn Ihr Gateway Anfragen selbst signiert, setzen Sie `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1`, damit Claude Code unsignierte Anfragen sendet und das Gateway SigV4-Header hinzufügt, bevor es an AWS weitergeleitet wird. Wenn das Gateway sein eigenes Token benötigt, setzen Sie es in `ANTHROPIC_AUTH_TOKEN`.
310
311```bash theme={null}
312export CLAUDE_CODE_USE_ANTHROPIC_AWS=1
313export CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1
314export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN
315export ANTHROPIC_AWS_BASE_URL=https://anthropic-proxy.example.com
316```
317
318## Fehlerbehebung
319
320Führen Sie `/status` aus, um den aufgelösten Provider und alle explizit konfigurierten Workspace-ID, Region, Basis-URL-Überschreibung und Auth-Skip-Einstellung zu sehen. Dies ist der schnellste Weg, um zu bestätigen, dass Claude Code überhaupt auf Claude Platform on AWS abzielt.
321
322### `403 Forbidden` oder `AccessDenied` bei jeder Anfrage
323
324Der IAM-Principal, den Claude Code aufgelöst hat, hat wahrscheinlich keine Berechtigung zum Aufrufen des Anthropic-Dienstes in Ihrem Workspace. Überprüfen Sie die Rolle, die an Ihr AWS-Profil oder den Runner angehängt ist, der Claude Code gestartet hat, und überprüfen Sie, ob sie die `aws-external-anthropic`-Aktionen hat, die in der [IAM-Aktionsreferenz](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions) dokumentiert sind.
325
326Wenn Sie `ANTHROPIC_AWS_API_KEY` setzen, hat der Schlüssel Vorrang vor SigV4 und ein veralteter Schlüssel erzeugt den gleichen Fehler. Generieren Sie den Schlüssel in der AWS Console unter **Claude Platform on AWS → API keys** neu oder heben Sie die Variable auf, um auf Ihre AWS-Anmeldedaten zurückzugreifen.
327
328### Anfragen schlagen mit einem fehlenden Workspace-Fehler fehl
329
330`ANTHROPIC_AWS_WORKSPACE_ID` ist wahrscheinlich nicht gesetzt oder leer. Jede Claude Platform on AWS-Anfrage muss die Workspace-ID enthalten. Sie wird nicht durch Ihre AWS-Anmeldedaten impliziert. Finden Sie die ID unter **Workspaces** auf der AWS Console-Serviceseite und exportieren Sie sie, bevor Sie Claude Code starten.
331
332### Anfragen gehen immer noch an `api.anthropic.com`
333
334`CLAUDE_CODE_USE_ANTHROPIC_AWS` ist wahrscheinlich nicht gesetzt oder auf einen Wert gesetzt, der nicht als wahr analysiert wird. Setzen Sie ihn auf `1` und führen Sie `/status` aus, um den aufgelösten Provider zu bestätigen. Wenn `CLAUDE_CODE_USE_BEDROCK` oder `CLAUDE_CODE_USE_FOUNDRY` auch gesetzt ist, haben diese Vorrang vor Claude Platform on AWS.
335
336## Zusätzliche Ressourcen
337
338Das Claude Platform on AWS-Abonnement, der Workspace und die IAM-Einrichtung, die vor der Konfiguration von Claude Code kommt, werden in der Plattformdokumentation behandelt:
339
340* [Claude Platform on AWS-Übersicht](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws): Abonnement, Workspace-Einrichtung und Produktreferenz
341* [IAM-Aktionsreferenz](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions): Berechtigungen und verwaltete Richtlinien