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 su Claude Platform on AWS
6
7> Configura Claude Code per utilizzare l'API Claude gestita da Anthropic con autenticazione AWS, controllo dell'accesso IAM e fatturazione tramite AWS Marketplace.
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 è l'API Claude gestita da Anthropic con autenticazione AWS, controllo dell'accesso IAM e fatturazione tramite AWS Marketplace. Le richieste raggiungono direttamente l'API di Anthropic, quindi si ottengono gli stessi modelli e funzionalità dell'[API Claude](https://platform.claude.com/docs) con la stessa pianificazione dei rilasci. L'autenticazione avviene con le credenziali AWS o una chiave API dell'area di lavoro, e il pagamento avviene tramite AWS Marketplace.
192
193Utilizzare questa guida per indirizzare Claude Code a un'area di lavoro già fornita tramite Claude Platform on AWS. Per la sottoscrizione AWS e la configurazione dell'area di lavoro che precede questo, consultare la [documentazione di Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).
194
195<Note>
196 L'iscrizione tramite AWS Marketplace fornisce una nuova organizzazione Anthropic collegata al proprio account AWS. Questa organizzazione è separata da qualsiasi organizzazione già presente con Anthropic e le credenziali non si trasferiscono tra loro. Utilizzare l'ID dell'area di lavoro e le chiavi API dall'organizzazione collegata ad AWS, non da un account Claude Console preesistente.
197</Note>
198
199## Prerequisiti
200
201Prima di configurare Claude Code, è necessario disporre di:
202
203* Una sottoscrizione attiva a Claude Platform on AWS tramite AWS Marketplace
204* Un'area di lavoro nella propria organizzazione Anthropic collegata ad AWS, con il relativo ID dell'area di lavoro
205* Un principale IAM con autorizzazione per invocare il servizio Anthropic, oppure una chiave API limitata all'area di lavoro
206* Credenziali AWS nel proprio ambiente, in `~/.aws/credentials`, o da un ruolo IAM collegato se si desidera l'autenticazione SigV4. L'AWS CLI è richiesta solo per il flusso di accesso SSO.
207
208## Configurazione
209
210### 1. Configurare le credenziali AWS
211
212Claude Code supporta due metodi di autenticazione per Claude Platform on AWS. Scegliere il metodo che si adatta al modo in cui il team gestisce l'accesso.
213
214**Opzione A: Credenziali AWS con SigV4**
215
216Claude Code firma le richieste con SigV4 utilizzando la catena di credenziali AWS standard: variabili di ambiente, credenziali condivise in `~/.aws/credentials`, ruoli IAM, sessioni AWS SSO e qualsiasi altra fonte supportata dall'SDK AWS.
217
218Per l'uso locale, accedere con l'AWS CLI prima di avviare Claude Code. L'esempio seguente utilizza un profilo SSO, ma qualsiasi metodo che produce credenziali nelle posizioni standard funziona.
219
220```bash theme={null}
221aws sso login --profile my-profile
222export AWS_PROFILE=my-profile
223```
224
225Per CI e automazione, fornire al runner un ruolo IAM con autorizzazione per invocare il servizio Anthropic e impostare `AWS_REGION`. La catena di credenziali raccoglie il ruolo automaticamente.
226
227Se le credenziali SSO scadono durante la sessione, configurare [`awsAuthRefresh`](/it/amazon-bedrock#advanced-credential-configuration) in modo che Claude Code riesegua il comando di accesso e riprovi invece di fallire. Aggiungere il comando al file `settings.json`:
228
229```json theme={null}
230{
231 "awsAuthRefresh": "aws sso login --profile my-profile"
232}
233```
234
235**Opzione B: Chiave API dell'area di lavoro**
236
237Una chiave API dell'area di lavoro è un segreto di lunga durata, utile quando non si desidera gestire credenziali AWS federate. Generarne una nella console AWS in **Claude Platform on AWS → API keys** e impostarla come `ANTHROPIC_AWS_API_KEY`:
238
239```bash theme={null}
240export ANTHROPIC_AWS_API_KEY=sk-ant-xxxxx
241```
242
243La chiave viene inviata come `x-api-key` e ha la precedenza su SigV4, quindi qualsiasi credenziale AWS nel proprio ambiente viene ignorata. Le chiavi API da un'organizzazione Claude Console separata non funzioneranno qui.
244
245Trattare le chiavi API dell'area di lavoro come qualsiasi altra credenziale di produzione. Il blocco `env` del [file delle impostazioni utente](/it/settings) è un modo conveniente per limitare la chiave alla propria macchina senza esportarla globalmente.
246
247<Note>
248 I comandi `/login` e `/logout` non modificano l'autenticazione di Claude Platform on AWS. L'autenticazione viene eseguita tramite le credenziali AWS o la chiave API dell'area di lavoro, non tramite una sottoscrizione Claude.ai.
249</Note>
250
251### 2. Configurare Claude Code
252
253Impostare le variabili di ambiente che indirizzano Claude Code attraverso Claude Platform on AWS invece dell'API Anthropic predefinita.
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` è obbligatorio e viene inviato su ogni richiesta come intestazione `anthropic-workspace-id`. L'URL di base viene calcolato da `AWS_REGION` come `https://aws-external-anthropic.{region}.api.aws`. Per sovrascrivere l'URL direttamente, impostare `ANTHROPIC_AWS_BASE_URL`.
262
263Claude Platform on AWS è facoltativo anche quando le credenziali AWS sono presenti nel proprio ambiente. Bedrock e Foundry hanno la precedenza nel routing dei provider, quindi annullare l'impostazione di `CLAUDE_CODE_USE_BEDROCK` e `CLAUDE_CODE_USE_FOUNDRY` se sono impostati.
264
265### 3. Fissare le versioni dei modelli
266
267Claude Platform on AWS utilizza gli stessi ID modello dell'API Claude diretta. Gli alias predefiniti `opus`, `sonnet` e `haiku` si risolvono alle versioni più recenti disponibili nell'area di lavoro.
268
269Se si distribuisce Claude Code a un team, fissare esplicitamente gli ID modello in modo che un nuovo rilascio non sposti tutti contemporaneamente:
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
277Per l'elenco completo degli ID modello e degli alias, consultare [Panoramica dei modelli](https://platform.claude.com/docs/en/about-claude/models/overview). Per altre variabili relative ai modelli, consultare [Configurazione del modello](/it/model-config).
278
279[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) è abilitato automaticamente. Le scritture della cache di 1 ora vengono fatturate a una tariffa più alta rispetto alle scritture di 5 minuti. Per richiedere un TTL della cache di 1 ora invece del valore predefinito di 5 minuti, impostare `ENABLE_PROMPT_CACHING_1H=1`.
280
281## Utilizzare l'Agent SDK
282
283L'[Agent SDK](/it/agent-sdk/overview) legge le stesse variabili di ambiente della CLI, quindi qualsiasi programma che genera il sottoprocesso Claude Code può indirizzare Claude Platform on AWS esportando `CLAUDE_CODE_USE_ANTHROPIC_AWS`, `ANTHROPIC_AWS_WORKSPACE_ID` e `ANTHROPIC_AWS_API_KEY` o credenziali AWS prima della chiamata.
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
297Questo esempio si basa sulla catena di credenziali AWS ambientale per SigV4. Per autenticarsi con una chiave API dell'area di lavoro, impostare `ANTHROPIC_AWS_API_KEY` allo stesso modo. Per la superficie più ampia dell'Agent SDK, consultare [Panoramica dell'Agent SDK](/it/agent-sdk/overview).
298
299## Instradare attraverso un proxy aziendale
300
301Per instradare il traffico attraverso un proxy o un [gateway LLM](/it/llm-gateway), impostare `ANTHROPIC_AWS_BASE_URL` all'indirizzo del proxy. Claude Code invia richieste a quell'URL con le stesse intestazioni di area di lavoro e autenticazione, quindi qualsiasi gateway che le inoltri invariate funziona.
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
309Se il gateway firma le richieste stesso, impostare `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1` in modo che Claude Code invii richieste non firmate e lasci che il gateway aggiunga intestazioni SigV4 prima di inoltrarle ad AWS. Se il gateway richiede il proprio token, impostarlo 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## Troubleshooting
319
320Eseguire `/status` per visualizzare il provider risolto e qualsiasi ID dell'area di lavoro configurato esplicitamente, override della regione, override dell'URL di base e impostazione di skip dell'autenticazione. Questo è il modo più veloce per confermare che Claude Code sta indirizzando Claude Platform on AWS.
321
322### `403 Forbidden` o `AccessDenied` su ogni richiesta
323
324Il principale IAM che Claude Code ha risolto probabilmente manca dell'autorizzazione per invocare il servizio Anthropic nell'area di lavoro. Controllare il ruolo collegato al profilo AWS o al runner che ha avviato Claude Code e verificare che disponga delle azioni `aws-external-anthropic` documentate nel [riferimento delle azioni IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions).
325
326Se è stato impostato `ANTHROPIC_AWS_API_KEY`, la chiave ha la precedenza su SigV4 e una chiave obsoleta produce lo stesso errore. Rigenerare la chiave nella console AWS in **Claude Platform on AWS → API keys** o annullare l'impostazione della variabile per tornare alle credenziali AWS.
327
328### Le richieste non riescono con un errore di area di lavoro mancante
329
330`ANTHROPIC_AWS_WORKSPACE_ID` è probabilmente non impostato o vuoto. Ogni richiesta di Claude Platform on AWS deve includere l'ID dell'area di lavoro. Non è implicito dalle credenziali AWS. Trovare l'ID in **Workspaces** nella pagina del servizio della console AWS ed esportarlo prima di avviare Claude Code.
331
332### Le richieste vanno ancora a `api.anthropic.com`
333
334`CLAUDE_CODE_USE_ANTHROPIC_AWS` è probabilmente non impostato o impostato su un valore che non viene analizzato come veritiero. Impostarlo su `1` ed eseguire `/status` per confermare il provider risolto. Se è impostato anche `CLAUDE_CODE_USE_BEDROCK` o `CLAUDE_CODE_USE_FOUNDRY`, questi hanno la precedenza su Claude Platform on AWS.
335
336## Risorse aggiuntive
337
338La sottoscrizione a Claude Platform on AWS, la configurazione dell'area di lavoro e IAM che precede la configurazione di Claude Code è coperta nella documentazione della piattaforma:
339
340* [Panoramica di Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws): sottoscrizione, configurazione dell'area di lavoro e riferimento del prodotto
341* [Riferimento delle azioni IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions): autorizzazioni e criteri gestiti