Шлюз Claude Code 2.1.281 ходит в Bedrock под ролью IAM

Шлюз Claude apps в Claude Code 2.1.281, вышедшем 23 сентября, научился ходить в Amazon Bedrock под ролью IAM, которую сам получает через STS, и применять guardrail Bedrock к каждому запросу. Роль может жить в другом аккаунте AWS.
Но шлюзу в списке изменений на GitHub отведено всего несколько строк. Основная часть релиза - исправления для возобновлённых сессий, для ответов, которые обрывает прокси, и для проверки опасных команд rm в auto mode. Плюс пара изменений, из-за которых кому-то придётся поправить конфиги и обёртки.
Роль IAM из другого аккаунта
Если верить документации Anthropic, шлюз Claude apps - это сервис, который компания разворачивает у себя между клиентами Claude Code и провайдером модели. Разработчики входят через корпоративный IdP и не держат у себя ни ключей API, ни облачных учётных данных: учётные данные провайдера хранит шлюз. Он же по группам IdP решает, какие модели кому доступны, и раздаёт управляемые настройки. Запускается он тем же бинарником, что и сам Claude Code: claude gateway --config gateway.yaml. Клиенты говорят со шлюзом на Messages API, а он переводит запросы для Bedrock, Claude Platform on AWS, Agent Platform в Google Cloud, Microsoft Foundry или Anthropic API.
В эталонной схеме развёртывания, которую описали в блоге AWS, шлюз обращается к Bedrock под ролью IAM, выданной самой задаче с контейнером шлюза, а статические ключи лежат в AWS Secrets Manager. С новым ключом assume_role на апстриме Bedrock шлюз через STS берёт на себя указанную роль, при необходимости в другом аккаунте AWS. По желанию сессий может быть по одной на каждого разработчика.
Второй новый ключ апстрима, guardrail: {id, version}, подключает guardrail Amazon Bedrock (набор правил фильтрации на стороне Bedrock) ко всем запросам, которые идут через этот апстрим. Правило одно: guardrail задают либо на всех апстримах Bedrock, либо ни на одном.
По телеметрии добавили telemetry.resource_attributes: постоянные метки на телеметрии Claude Desktop и сессий, вошедших через /login. По умолчанию шлюз отправляет в каждое настроенное хранилище метрики OTLP с числом токенов, моделью, пользователем и задержкой, а новые метки дописываются к ним.
Политики для Claude Desktop теперь понимают и новые ключи приложения, среди них blockReadsOutsideWorkingDirectories и disableBypassPermissionsMode. А если путь envHelper в записи managedMcpServers начинается с \??\ или /??/, шлюз откажется запускаться: такие пути отказывается выполнять и текущий Claude Desktop.
Возобновлённые сессии и кэш
Самый длинный блок исправлений касается --resume. При возобновлении сессии Claude Code мог отправить прежние ходы в изменённом виде, и тогда API выбрасывал предыдущие рассуждения модели. Ломалось это в нескольких случаях: ход с параллельными вызовами инструментов, вход вызова MCP-инструмента или результат поиска инструментов, пока его сервер ещё переподключался, и результат поиска, чей ход загрузки прервали.
Есть и соседние случаи. Очень большая сессия иногда восстанавливалась только последними несколькими сообщениями. Сессия, перезапущенная, пока висел запрос разрешения, отправляла другую историю, и prompt cache (кэш уже обработанного начала контекста, за который платят меньше) с этого места пропадал. Сессии с прежним результатом advisor, который API уже не мог прочитать, каждый ход проваливали один запрос и раз за разом теряли рассуждения, а теперь история чинится один раз.
Если сессия оборвалась посреди вызова инструмента, Claude теперь видит этот вызов, и ему сообщают, что результат неизвестен. Ручное возобновление перестало добавлять скрытое сообщение «Continue».
Кэш терялся и при отключении MCP-сервера посреди разговора или когда сервер ещё подключался после возобновления, если поиск инструментов выключен. В релизе в пример приводят работу за прокси или шлюзом. Из улучшений: длинные сессии, читавшие много файлов, и очень длинные сжатые сессии возобновляются быстрее, заметнее всего через Agent SDK и Claude Desktop. Классификатор разрешений auto mode после возобновления в новом процессе переиспользует свой прежний кэш, а не пишет его заново.
Когда стрим обрывает прокси
Вторая большая группа - для тех, кто ходит в API через прокси или шлюз. Если прокси аккуратно закрывал стрим посреди ответа, обрезанный ответ показывался как завершённый, без предупреждения. Повторяющиеся события стрима запускали один вызов инструмента дважды. Когда прокси терял событие посреди ответа, всё падало с «Content block not found»: теперь частичный ответ сохраняется, а веб-поиск оставляет уже пришедшие результаты. Причина остановки терялась, если прокси присылал в конце кадр с одной статистикой токенов. Пустой завершённый ответ запрашивался дважды, если соединение рвалось до финального события.
Ошибки с HTML-страницы, например страницы 429 или 502 от прокси, печатали сырую разметку или теряли HTTP-статус. Сессии с CLAUDE_CODE_RETRY_WATCHDOG падали на первом 5xx или обрыве соединения после серии ожиданий на 429/529, а на длинном Retry-After от 5xx засыпали молча и без ограничения. Fast mode при Retry-After: 0 повторял запросы с превышенным лимитом один за другим.
Отдельно исправили ход, который мог повторяться бесконечно, не глядя на --max-turns: так бывало, когда модель чередовала нераспознаваемые вызовы инструментов с обрезкой по лимиту вывода. Ещё один случай: разговор намертво застревал на ошибке «tool_use.name: String should have at most 200 characters», если модель вызывала инструмент со слишком длинным именем.
Две задержки ушли со старта и из чтения файлов. Интерактивный запуск ждал сетевой запрос управляемых настроек, даже когда не настроено ни MCP-серверов, ни плагинов: обычно это около 80 мс, а без сети 17 секунд и больше. Чтение PDF крупнее 3 МБ или упоминание такого файла через @ могло задержать ответ на две минуты.
Опасный rm и auto mode
Рекурсивный rm, цель которого берётся только из подстановки команды, например rm -rf "$(pwd)", выполнялся без вопроса в auto mode и с --dangerously-skip-permissions. Теперь Claude Code спрашивает даже при разрешающем правиле для Bash, если не задать CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1. Проверка опасного удаления теперь срабатывает и на переменную окружения, за которой идёт имя каталога верхнего уровня, на переменную, выведенную из рабочего каталога, и на цель из одних обратных слэшей.
Сам запрос на опасный rm в этих двух режимах ждёт ответа две минуты, а потом отклоняет команду с подсказкой, как её переписать. Так сессии без присмотра идут дальше, а не висят на вопросе. Отключается это через CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1.
Ещё несколько дыр в правах закрыли:
- правило разрешений с NUL-байтом разворачивалось в шаблон, который совпадал с чем угодно, а теперь не совпадает ни с чем;
claude --bgзапускал фоновую сессию и хуки проекта в каталоге, который не проходил проверку доверия; теперь он сначала спрашивает, а без интерактива завершается;--setting-sourcesиsettingSourcesв SDK не передавались порождённым сессиям, и теперь тиммейты,/bg, сессииclaude agentsи--worktree --tmuxстартуют с ограничением родителя;- диалоги разрешений на macOS читали пути под
/.vol,/.nofollowи/.resolve, которые могут вести на сетевой диск, ещё до одобрения.
У auto mode поменялась логика серверной проверки. Там, где классификатор работает на сервере, его вердикта теперь ждут и команды shell только на чтение, и команды в песочнице, и если классификатор их пометит, они блокируются. Переменная CLAUDE_CODE_AUTO_MODE_SERVER, которая появилась, когда классификатор auto переехал на сервер, теперь действует и при прямом подключении к Anthropic API: 0 отключает серверный классификатор, и тогда локальный идёт в счёт использования, 1 включает. В панелях VS Code и JetBrains вместо строки предупреждения, на которую нельзя было ответить, появился вопрос Continue/Stop на случай, когда auto mode откатывается на платные запросы классификатора. А /insights теперь прикидывает, сколько запросов разрешения в ваших недавних сессиях мог бы обработать auto mode.
Что придётся переделать
Новая настройка "attribution": false в settings.json прячет все подписи Claude в коммитах и PR. Старые версии CLI пропускают файл настроек с таким значением целиком, поэтому в файлах, которыми пользуются разные версии, Anthropic советует оставить объектную форму.
Клавиша «отправить сейчас» (ctrl+enter или ctrl+x ctrl+s) ещё в 2.1.275 прерывала текущий ход и отправляла очередь сообщений. Теперь она переводит запущенные инструменты в фон, а ход не отменяет. Сообщения из очереди теперь показываются в разговоре над спиннером.
Остальное мельче: исправления режима vim, списков /plugin, /skills и /mcp, проверки MCP-серверов в claude plugin validate, URL-режим elicitation в MCP для соединений по протоколу 2026-07-28, переключатель Fast mode в облачных сессиях Claude Code on the web и длинный список исправлений Claude Tag в Slack. Всё это есть в полном списке изменений.
Тем, у кого свои self-hosted раннеры, нужно проверить обёртки. Раннеры теперь передают системный промпт в Claude Code приватным файлом, а не текстом в командной строке, так что большие промпты перестали ронять запуск. Обёртка или командный хук, которые дописывают --system-prompt или --append-system-prompt, должны перейти на --system-prompt-file и --append-system-prompt-file.
Дальше
Claude нашёл в ДНК фагов систему, похожую на CRISPR, Видео
Рядом с неизвестным геном в ДНК бактериофагов Claude нашёл длинный ряд повторов, отчасти как у CRISPR. Что делает эта система, в Anthropic не знают, но все немногие похожие на неё умеют резать, копировать и вставлять ДНК.
Читайте также
- Claude Code 2.1.282 не даст репозиторию включить телеметрию
- Claude Code 2.1.280 отдал Opus 5.5 даже тарифу Pro
- Claude Code 2.1.278 не берёт плату за классификатор auto
- Code Review в Claude вышел из превью для Team и Enterprise
- Claude Code 2.1.285 даёт админам выбрать провайдеров API
- Мультиплеера в проектах Claude Code «пока нет»
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите, чтобы оставить комментарий. Он появится после модерации.

