6 6
7> Настройте Claude Code для использования API Claude, управляемого Anthropic, с аутентификацией AWS, контролем доступа IAM и выставлением счетов через AWS Marketplace.7> Настройте Claude Code для использования API Claude, управляемого Anthropic, с аутентификацией AWS, контролем доступа IAM и выставлением счетов через AWS Marketplace.
8 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 — это API Claude, управляемый Anthropic, с аутентификацией AWS, контролем доступа IAM и выставлением счетов через AWS Marketplace. Запросы поступают непосредственно в API Anthropic, поэтому вы получаете те же модели и функции, что и в [Claude API](https://platform.claude.com/docs) по тому же графику выпусков. Вы аутентифицируетесь с помощью учетных данных AWS или ключа API рабочей области, и вы платите через AWS Marketplace.9Claude Platform on AWS — это API Claude, управляемый Anthropic, с аутентификацией AWS, контролем доступа IAM и выставлением счетов через AWS Marketplace. Запросы поступают непосредственно в API Anthropic, поэтому вы получаете те же модели и функции, что и в [Claude API](https://platform.claude.com/docs) по тому же графику выпусков. Вы аутентифицируетесь с помощью учетных данных AWS или ключа API рабочей области, и вы платите через AWS Marketplace.
192 10
193Используйте это руководство, чтобы направить Claude Code на рабочую область, которую вы уже подготовили через Claude Platform on AWS. Для подписки AWS и настройки рабочей области, которые предшествуют этому, см. [документацию Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).11Используйте это руководство, чтобы направить Claude Code на рабочую область, которую вы уже подготовили через Claude Platform on AWS. Для подписки AWS и настройки рабочей области, которые предшествуют этому, см. [документацию Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).
196 Подписка через AWS Marketplace подготавливает новую организацию Anthropic, привязанную к вашей учетной записи AWS. Эта организация отделена от любой организации, которая у вас уже есть в Anthropic, и учетные данные не передаются между ними. Используйте идентификатор рабочей области и ключи API из организации, связанной с AWS, а не из предварительно существующей учетной записи Claude Console.14 Подписка через AWS Marketplace подготавливает новую организацию Anthropic, привязанную к вашей учетной записи AWS. Эта организация отделена от любой организации, которая у вас уже есть в Anthropic, и учетные данные не передаются между ними. Используйте идентификатор рабочей области и ключи API из организации, связанной с AWS, а не из предварительно существующей учетной записи Claude Console.
197</Note>15</Note>
198 16
199## Предварительные требования17<h2 id="prerequisites">
18 Предварительные требования
19</h2>
200 20
201Перед настройкой Claude Code вам потребуется:21Перед настройкой Claude Code вам потребуется:
202 22
205* Субъект IAM с разрешением на вызов сервиса Anthropic или ключ API, ограниченный рабочей областью25* Субъект IAM с разрешением на вызов сервиса Anthropic или ключ API, ограниченный рабочей областью
206* Учетные данные AWS в вашей среде, в `~/.aws/credentials` или от присоединенной роли IAM, если вы хотите аутентификацию SigV4. AWS CLI требуется только для потока входа SSO.26* Учетные данные AWS в вашей среде, в `~/.aws/credentials` или от присоединенной роли IAM, если вы хотите аутентификацию SigV4. AWS CLI требуется только для потока входа SSO.
207 27
208## Настройка28<h2 id="setup">
29 Настройка
30</h2>
209 31
210### 1. Настройте учетные данные AWS32<h3 id="1-configure-aws-credentials">
33 1. Настройте учетные данные AWS
34</h3>
211 35
212Claude Code поддерживает два метода аутентификации для Claude Platform on AWS. Выберите метод, который соответствует тому, как ваша команда управляет доступом.36Claude Code поддерживает два метода аутентификации для Claude Platform on AWS. Выберите метод, который соответствует тому, как ваша команда управляет доступом.
213 37
248 Команды `/login` и `/logout` не изменяют аутентификацию Claude Platform on AWS. Аутентификация выполняется через ваши учетные данные AWS или ключ API рабочей области, а не через подписку Claude.ai.72 Команды `/login` и `/logout` не изменяют аутентификацию Claude Platform on AWS. Аутентификация выполняется через ваши учетные данные AWS или ключ API рабочей области, а не через подписку Claude.ai.
249</Note>73</Note>
250 74
251### 2. Настройте Claude Code75<h3 id="2-configure-claude-code">
76 2. Настройте Claude Code
77</h3>
252 78
253Установите переменные окружения, которые направляют Claude Code через Claude Platform on AWS вместо API Anthropic по умолчанию.79Установите переменные окружения, которые направляют Claude Code через Claude Platform on AWS вместо API Anthropic по умолчанию.
254 80
262 88
263Claude Platform on AWS является добровольным, даже если учетные данные AWS присутствуют в вашей среде. Bedrock и Foundry имеют приоритет в маршрутизации поставщиков, поэтому отмените установку `CLAUDE_CODE_USE_BEDROCK` и `CLAUDE_CODE_USE_FOUNDRY`, если они установлены.89Claude Platform on AWS является добровольным, даже если учетные данные AWS присутствуют в вашей среде. Bedrock и Foundry имеют приоритет в маршрутизации поставщиков, поэтому отмените установку `CLAUDE_CODE_USE_BEDROCK` и `CLAUDE_CODE_USE_FOUNDRY`, если они установлены.
264 90
265### 3. Закрепите версии моделей91<h3 id="3-pin-model-versions">
92 3. Закрепите версии моделей
93</h3>
266 94
267Claude Platform on AWS использует те же идентификаторы моделей, что и прямой API Claude. Псевдонимы по умолчанию `opus`, `sonnet` и `haiku` разрешаются в последние версии, доступные в вашей рабочей области.95Claude Platform on AWS использует те же идентификаторы моделей, что и прямой API Claude. Псевдонимы по умолчанию `opus`, `sonnet` и `haiku` разрешаются в последние версии, доступные в вашей рабочей области.
268 96
276 104
277Полный список идентификаторов моделей и псевдонимов см. в разделе [Обзор моделей](https://platform.claude.com/docs/en/about-claude/models/overview). Для других переменных, связанных с моделями, см. [Конфигурация модели](/ru/model-config).105Полный список идентификаторов моделей и псевдонимов см. в разделе [Обзор моделей](https://platform.claude.com/docs/en/about-claude/models/overview). Для других переменных, связанных с моделями, см. [Конфигурация модели](/ru/model-config).
278 106
279[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) включен автоматически. Записи кэша на 1 час выставляются по более высокому тарифу, чем записи на 5 минут. Чтобы запросить TTL кэша на 1 час вместо стандартного 5 минут, установите `ENABLE_PROMPT_CACHING_1H=1`.107[Prompt caching](/ru/prompt-caching) включен автоматически. Чтобы запросить TTL кэша на 1 час вместо стандартного 5 минут, установите `ENABLE_PROMPT_CACHING_1H=1`. API выставляет счета за записи кэша на 1 час по более высокому тарифу. Ознакомьтесь с [ценами на prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) для получения информации о тарифах.
280 108
281## Используйте Agent SDK109<h2 id="use-the-agent-sdk">
110 Используйте Agent SDK
111</h2>
282 112
283[Agent SDK](/ru/agent-sdk/overview) читает те же переменные окружения, что и CLI, поэтому любая программа, которая порождает подпроцесс Claude Code, может нацеливаться на Claude Platform on AWS, экспортируя `CLAUDE_CODE_USE_ANTHROPIC_AWS`, `ANTHROPIC_AWS_WORKSPACE_ID` и либо `ANTHROPIC_AWS_API_KEY`, либо учетные данные AWS перед вызовом.113[Agent SDK](/ru/agent-sdk/overview) читает те же переменные окружения, что и CLI, поэтому любая программа, которая порождает подпроцесс Claude Code, может нацеливаться на Claude Platform on AWS, экспортируя `CLAUDE_CODE_USE_ANTHROPIC_AWS`, `ANTHROPIC_AWS_WORKSPACE_ID` и либо `ANTHROPIC_AWS_API_KEY`, либо учетные данные AWS перед вызовом.
284 114
296 126
297Этот пример полагается на окружающую цепочку учетных данных AWS для SigV4. Чтобы вместо этого аутентифицироваться с помощью ключа API рабочей области, установите `ANTHROPIC_AWS_API_KEY` таким же образом. Для более широкой поверхности Agent SDK см. [Обзор Agent SDK](/ru/agent-sdk/overview).127Этот пример полагается на окружающую цепочку учетных данных AWS для SigV4. Чтобы вместо этого аутентифицироваться с помощью ключа API рабочей области, установите `ANTHROPIC_AWS_API_KEY` таким же образом. Для более широкой поверхности Agent SDK см. [Обзор Agent SDK](/ru/agent-sdk/overview).
298 128
299## Маршрутизация через корпоративный прокси129<h2 id="route-through-a-corporate-proxy">
130 Маршрутизация через корпоративный прокси
131</h2>
300 132
301Чтобы маршрутизировать трафик через прокси или [LLM gateway](/ru/llm-gateway), установите `ANTHROPIC_AWS_BASE_URL` на адрес прокси. Claude Code отправляет запросы на этот URL с теми же заголовками рабочей области и аутентификации, поэтому любой шлюз, который пересылает их без изменений, работает.133Чтобы маршрутизировать трафик через прокси или [LLM gateway](/ru/llm-gateway), установите `ANTHROPIC_AWS_BASE_URL` на адрес прокси. Claude Code отправляет запросы на этот URL с теми же заголовками рабочей области и аутентификации, поэтому любой шлюз, который пересылает их без изменений, работает.
302 134
315export ANTHROPIC_AWS_BASE_URL=https://anthropic-proxy.example.com147export ANTHROPIC_AWS_BASE_URL=https://anthropic-proxy.example.com
316```148```
317 149
318## Troubleshooting150<h2 id="troubleshooting">
151 Troubleshooting
152</h2>
319 153
320Запустите `/status`, чтобы увидеть разрешенного поставщика и любой явно настроенный идентификатор рабочей области, регион, переопределение базового URL и параметр пропуска аутентификации. Это самый быстрый способ подтвердить, что Claude Code нацелен на Claude Platform on AWS вообще.154Запустите `/status`, чтобы увидеть разрешенного поставщика и любой явно настроенный идентификатор рабочей области, регион, переопределение базового URL и параметр пропуска аутентификации. Это самый быстрый способ подтвердить, что Claude Code нацелен на Claude Platform on AWS вообще.
321 155
322### `403 Forbidden` или `AccessDenied` при каждом запросе156<h3 id="403-forbidden-or-accessdenied-on-every-request">
157 `403 Forbidden` или `AccessDenied` при каждом запросе
158</h3>
323 159
324Субъект IAM, который разрешил Claude Code, вероятно, не имеет разрешения на вызов сервиса Anthropic в вашей рабочей области. Проверьте роль, присоединенную к вашему профилю AWS или средству выполнения, которое запустило Claude Code, и убедитесь, что оно имеет действия `aws-external-anthropic`, задокументированные в [справочнике действий IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions).160Субъект IAM, который разрешил Claude Code, вероятно, не имеет разрешения на вызов сервиса Anthropic в вашей рабочей области. Проверьте роль, присоединенную к вашему профилю AWS или средству выполнения, которое запустило Claude Code, и убедитесь, что оно имеет действия `aws-external-anthropic`, задокументированные в [справочнике действий IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions).
325 161
326Если вы установили `ANTHROPIC_AWS_API_KEY`, ключ имеет приоритет над SigV4, и устаревший ключ создает ту же ошибку. Создайте ключ заново в консоли AWS в разделе **Claude Platform on AWS → API keys** или отмените установку переменной, чтобы вернуться к вашим учетным данным AWS.162Если вы установили `ANTHROPIC_AWS_API_KEY`, ключ имеет приоритет над SigV4, и устаревший ключ создает ту же ошибку. Создайте ключ заново в консоли AWS в разделе **Claude Platform on AWS → API keys** или отмените установку переменной, чтобы вернуться к вашим учетным данным AWS.
327 163
328### Запросы не выполняются с ошибкой отсутствующей рабочей области164<h3 id="requests-fail-with-a-missing-workspace-error">
165 Запросы не выполняются с ошибкой отсутствующей рабочей области
166</h3>
329 167
330`ANTHROPIC_AWS_WORKSPACE_ID` вероятно не установлен или пуст. Каждый запрос Claude Platform on AWS должен включать идентификатор рабочей области. Он не подразумевается вашими учетными данными AWS. Найдите идентификатор в разделе **Workspaces** на странице сервиса консоли AWS и экспортируйте его перед запуском Claude Code.168`ANTHROPIC_AWS_WORKSPACE_ID` вероятно не установлен или пуст. Каждый запрос Claude Platform on AWS должен включать идентификатор рабочей области. Он не подразумевается вашими учетными данными AWS. Найдите идентификатор в разделе **Workspaces** на странице сервиса консоли AWS и экспортируйте его перед запуском Claude Code.
331 169
332### Запросы по-прежнему идут на `api.anthropic.com`170<h3 id="requests-still-go-to-api-anthropic-com">
171 Запросы по-прежнему идут на `api.anthropic.com`
172</h3>
333 173
334`CLAUDE_CODE_USE_ANTHROPIC_AWS` вероятно не установлен или установлен на значение, которое не анализируется как истинное. Установите его на `1` и запустите `/status`, чтобы подтвердить разрешенного поставщика. Если также установлены `CLAUDE_CODE_USE_BEDROCK` или `CLAUDE_CODE_USE_FOUNDRY`, они имеют приоритет над Claude Platform on AWS.174`CLAUDE_CODE_USE_ANTHROPIC_AWS` вероятно не установлен или установлен на значение, которое не анализируется как истинное. Установите его на `1` и запустите `/status`, чтобы подтвердить разрешенного поставщика. Если также установлены `CLAUDE_CODE_USE_BEDROCK` или `CLAUDE_CODE_USE_FOUNDRY`, они имеют приоритет над Claude Platform on AWS.
335 175
336## Дополнительные ресурсы176<h2 id="additional-resources">
177 Дополнительные ресурсы
178</h2>
337 179
338Подписка Claude Platform on AWS, настройка рабочей области и IAM, которые предшествуют настройке Claude Code, рассматриваются в документации платформы:180Подписка Claude Platform on AWS, настройка рабочей области и IAM, которые предшествуют настройке Claude Code, рассматриваются в документации платформы:
339 181