ИИ-агент за ночь сжёг $6 500 в AWS: как поставить лимиты Claude Code

Опубликовано 17.06.202614 мин чтенияСредний
Светящийся ИИ-агент выбрасывает потоки горящих долларов в темноту, где формирующаяся цифровая преграда пытается их сдержать.
Что узнаешь
  • Что случилось 12 июня на DN42 и почему агент сжёг $6 500 за ночь
  • 4 публичных истории 2026: $500M Anthropic, Uber budget blown, Microsoft retreat
  • 7 cost-guardrails в Claude Code, которые ставятся за вечер
  • Почему `--dangerously-skip-permissions` нельзя запускать на хосте
  • Чек-лист на 5 минут перед запуском autonomous-режима
Применить за 30 мин
Сэкономит 8 ч
Средний
3просмотров

Каждый день в Telegram-канале - что нового в вайб-кодинге: инструменты, ошибки, истории. Подпишись, чтобы быть в курсе.

Что случилось ночью на DN42: разбор истории с $6 500

Тред на HackerNews от 12 июня 2026 - 1 461 апвоут, 533 коммента, заголовок переводится как «ИИ-агент разорил своего оператора, пытаясь сканировать DN42». Оператор сам пришёл в IRC, признался, попросил донат в крипте и заявил: «в следующий раз нужен агент получше». Тред тут.

Что конкретно делал агент:

  • развернул несколько CloudFormation-стеков с EC2
  • спавнил sub-agents, один из них ушёл в IRC за информацией о сети
  • запросил 5 EC2-инстансов с 100 Гбит/с network egress - буквально промышленный объём
  • продолжал бы и дальше, но истекли AWS-credentials

AWS после ревью снизил счёт с $6 500 до $1 800. Это редкая удача - обычно amazon никто не возвращает деньги.

Языковые модели не настолько умны. Поведение этого агента - это про слабые ограничения, а не про сложное мышление.

- Топ-комментарий HN на тред DN42, https://news.ycombinator.com/item?id=48500012

Ключевой урон: оператор обвинил модель, а не своё решение выдать агенту неограниченный доступ к AWS. Никакого learning в его post-mortem нет. Это и есть типичный сценарий 2026 - люди ставят autonomous-агентов, дают им IAM-ключи с правами на всё, и потом пишут «вот видите, опасно».

Где ещё агенты сжигают деньги в 2026: 4 публичных истории

Подборка свежих историй:

ДатаКтоСуммаЧто произошло
Апрель 2026UberВесь годовой ИИ-бюджетPraveen Neppalli Naga (CTO): «возвращаюсь к чертёжной доске, потому что бюджет, который я планировал, уже сдут»
Май 2026Анонимный enterprise$500 миллионовКомпания не поставила usage-cap для сотрудников. Разработчики гоняли долгие сессии, агенты крутили chained workflows автономно. ИИ-консультант обнаружил, Polymarket подтвердил
Май 2026Microsoft Experiences & Devices$500-2000 на инженера/месCancel большинства лицензий Claude Code, миграция на GitHub Copilot CLI к 30 июня
Май 2026Безымянный соло$6 000 за ночьОставил Claude Code работать на ночь, утром обнаружил счёт
Май 2026OpenClaw framework$1 000-5 000 в деньВнутренний ИИ-фреймворк жрал по тысячам долларов в день на $200/мес-подписке

Возвращаюсь к чертёжной доске, потому что бюджет, который я планировал, уже сдут.

- Praveen Neppalli Naga, CTO Uber, https://thenextweb.com/news/microsoft-claude-code-retreat-ai-cost

Общее у всех историй: нет hard-cap на расходы. Везде alerts «вот ты приблизился к лимиту» приходят, но никто не останавливает агента. Notify - не shutdown.

Куда уходят деньги: 3 категории расходов автономного агента

Не путай эти три канала - они работают независимо и лечатся разными настройками:

  1. Токены LLM. Сам Claude / OpenAI / Gemini берёт деньги за входной и выходной контекст каждого запроса. Тут спасает Anthropic Task Budgets (см. правило 2) и подписка вместо API-pay-as-you-go.
  2. Облако (cloud-инфра). Агент через MCP или Bash-tool создал EC2, RDS, S3, развернул лямбды. Тут спасает AWS Budgets / GCP / Yandex Cloud с kill-switch (правило 5).
  3. Сторонние API. Агент вызвал Stripe charge, отправил 100 СМС через шлюз, поставил тысячу подписок в Telegram. Тут спасают sandbox-ключи со scope-narrow и hard cap в кабинете провайдера (правило 6).

DN42-история из раздела 1 - это категория 2 (cloud). $500M-история Anthropic - категория 1 (токены LLM). Микро-Claude-Code-overnight у MakeUseOf - тоже категория 1. То есть в большинстве публичных catastrophes 2026 виноваты токены, а не облако - потому что у людей чаще есть AWS-аккаунт без агента, чем с агентом, но почти у каждого есть Claude Pro/Max или API.

Дальше идут 7 правил. Каждое закрывает один или два канала.

Как поставить hard cap на API-расходы (Правило 1)

Где включить (минимум 2 минуты на каждого провайдера):

Anthropic Console. console.anthropic.com → Settings → Limits → Monthly spend limit. Ставишь сумму, которую готов сжечь в худшем месяце. При достижении API возвращает 429 и записывает это в логи. Никакого «попробую ещё раз через минуту» - заблокировано до конца месяца.

OpenAI Platform. platform.openai.com → Billing → Usage limits. Аналогично - soft limit (alert на email) и hard limit (остановка API). Ставь оба, hard ставь в 1.5x от soft, чтобы был запас на reaction time.

AWS Bedrock / Google Vertex. Если ходишь к Claude/Anthropic через облако-прокладку - hard cap на стороне облака, не на стороне Anthropic. Это уже правило 5.

Что не считается hard cap: alerts по email («ты сжёг 80% бюджета»). Они приходят с задержкой, а ночью никто не читает почту. Только синхронный шлагбаум в провайдере.

Как работают Anthropic Task Budgets и где их ставить (Правило 2)

Подробности в официальных доках Anthropic. Главное: это soft boundary, не hard. Если агент уже создал EC2 - Task Budget этого не отменит.

Как это работает на практике: ты передаёшь поле task_budget в payload запроса (например, 100 000 input tokens на всю задачу). Claude получает информацию о бюджете и сам режет планы, упрощая шаги или скипая под-задачи. По мере приближения к нулю - сворачивается, отдаёт промежуточный summary вместо «спасибо за внимание».

Ограничения:

  • Только для Anthropic API. Не работает в Bedrock/Vertex, потому что там свой биллинг
  • Только в beta-моделях (Opus 4.7, 4.8, Fable 5, Mythos 5). На Sonnet 4.6 и Haiku - нет
  • Не покрывает cloud-расходы и сторонние API. Если Claude поднял EC2 - Task Budget молчит

Используй вместе с правилом 1 (hard cap), не вместо.

Хочешь не только поставить cost-guardrails, но и собрать связку, которая делает Claude стабильным? Cost-guardrails - часть контекст-инжиниринга: ты решаешь, что агент может, что нет и где у него стоп-кран. На практикуме за 3 эфира собираешь все три кита: ИИ-клон + Второй мозг + Контекст-инжиниринг - связка, без которой ИИ галлюцинирует, а теперь и сжигает деньги.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - стек, метод, первый проект
Старт 23–25 июня  ·  2 000 ₽
Записаться →

Что блокировать через PreToolUse hooks в Claude Code (Правило 3)

Permissions в Claude Code (с 1 июня 2026) считаются в порядке deny → ask → allow. Это значит:

  • если в settings.json есть deny на Bash(rm -rf *) - даже глобальный --dangerously-skip-permissions не даст агенту его запустить
  • если в hook есть exit 2 - tool call блокируется
  • allowedTools действует только если deny и hooks молчат

Минимальный PreToolUse hook для блокировки опасного:

bash
#!/usr/bin/env bash
# ~/.claude/hooks/block-dangerous-bash.sh
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.command // ""')

# Блокируем удаление, кики кластеров, очистку S3, terraform destroy
if echo "$COMMAND" | grep -qiE '(rm -rf|aws s3 rb|terraform destroy|kubectl delete|drop database)'; then
  echo "Заблокировано: команда деструктивная" >&2
  exit 2
fi

exit 0

Привязываешь в ~/.claude/settings.json:

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/block-dangerous-bash.sh" }]
      }
    ]
  }
}

Подробности - официальные доки + практический разбор от Pasquale Pillitteri.

Это второй периметр после провайдер-cap. Если первый - про деньги, то этот - про что вообще агент может делать руками.

Зачем allowedTools whitelist и почему --dangerously-skip-permissions не для хоста (Правило 4)

Whitelist - принцип минимальных привилегий. Вместо «разрешаю всё» (--dangerously-skip-permissions) вписываем точечно то, что нужно для задачи:

json
{
  "permissions": {
    "allow": [
      "Bash(npm install:*)",
      "Bash(npm run build)",
      "Bash(git add:*)",
      "Bash(git commit:*)",
      "Read(./src/**)",
      "Write(./src/**)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(curl * | sh)",
      "Write(/etc/**)",
      "Write(~/.ssh/**)"
    ]
  }
}

Что важно знать про bypass-режим:

  • Linux/macOS отказываются стартовать Claude Code в bypass-режиме под root или sudo - встроенная защита
  • На своей машине bypass отключает все confirmation prompts, и агент свободно rm -rf-ает что хочет, открывает SSH-ключи, заливает в облако
  • Community consensus: никогда не запускать --dangerously-skip-permissions на хосте, только в:
    • Docker-контейнере с ограниченным volume mount (только нужная папка)
    • изолированной VM (Multipass, Lima, Orbstack)
    • GitHub Codespaces / Replit / другой sandbox

Минимальный docker-run для bypass-режима:

bash
docker run --rm -it \
  -v "$PWD:/workspace" \
  -w /workspace \
  --network host \
  ghcr.io/anthropics/claude-code:latest \
  claude --dangerously-skip-permissions

Если агенту нужны облачные креды - отдельные scope-narrow ключи, не твои основные (это правило 6).

Как настроить cloud budget alerts с kill-switch в AWS, GCP и Yandex Cloud (Правило 5)

Настройка в каждом облаке:

AWS Budgets (docs). Создаёшь Budget на месяц + thresholds (50%, 80%, 100%). На threshold 100% подключаешь SNS-топик → Lambda, которая:

python
import boto3

def lambda_handler(event, context):
    iam = boto3.client('iam')
    # Деактивируем все ключи юзера 'claude-agent'
    keys = iam.list_access_keys(UserName='claude-agent')['AccessKeyMetadata']
    for key in keys:
        iam.update_access_key(
            UserName='claude-agent',
            AccessKeyId=key['AccessKeyId'],
            Status='Inactive'
        )
    return {'statusCode': 200, 'body': 'Killed'}

GCP Budget Alerts (гайд). Создаёшь Budget → Pub/Sub topic → Cloud Function, которая отключает Service Account. Важная подсказка из доков: alerts только notify, не shutdown, поэтому Cloud Function обязательна.

Yandex Cloud (docs). Бюджеты в Биллинг → Бюджеты + квоты ресурсов как hard cap. Можно подключить уведомления в Telegram-бот через Cloud Functions.

OpenAI API (гайд). Soft + hard spending limits прямо в dashboard - hard limit автоматически останавливает API, никакой Lambda не нужно.

Минимум для autonomous-агента: hard limit на провайдере + alert + автоматический kill-switch. Без последнего в лучшем случае увидишь $6 000 утром, в худшем - $500 миллионов через месяц.

Зачем агенту отдельный sandbox API-ключ со scope-narrow (Правило 6)

Минимальный setup на AWS:

  1. Создать IAM-юзера claude-agent-dn42-scan
  2. Политика: только нужный набор действий (например, ec2:RunInstances в одном регионе с t3.micro size, без VPC-elastic-IP)
  3. Привязать к отдельному AWS-аккаунту (через Organizations) с monthly budget $100
  4. Сгенерировать access keys, передать только агенту, не класть в свой ~/.aws/credentials
  5. После сессии - rotate keys или удалить юзера

Аналогично на других провайдерах:

  • OpenAI / Anthropic: отдельный API-ключ для каждого агента, hard cap в кабинете на каждый ключ, теги agent_id в request metadata
  • Stripe / Yookassa: restricted API key с одним action (например, только charges:read), отдельный merchant если возможно
  • Telegram Bot API: отдельный bot token, не основной

Тут работает старый security-принцип: least privilege - агент получает ровно то, что нужно для задачи, ни байтом больше. Если задача «сканировать сеть» - не давай ему ec2:* и s3:*, дай только ec2:DescribeInstances и точка.

Когда нужен pre-flight dry-run и лимит на iterations (Правило 7)

Plan Mode (/plan) включается в начале сессии. Агент собирает план, показывает в чате, ждёт подтверждения, и только потом идёт делать. Это бесплатно, и закрывает 70% случаев «упс, я думал он сначала спросит».

--max-turns - флаг при запуске. Каждый turn = один цикл «агент думает + tool call + результат». Для autonomous-задач:

  • мелкая правка: 5-10 turns
  • средняя задача: 15-30 turns
  • большая autonomous-задача: 50-80 turns

На DN42-история агент явно работал часами без max-turns - там были тысячи tool calls.

Дополнительные техники:

  • Wall-clock timeout через timeout Linux-команду:
bash
timeout 1800 claude --dangerously-skip-permissions --max-turns 30 -p "scan task"
# 1800 секунд = 30 минут. Прибиваем процесс gracefully.
  • Логирование каждого tool call через PostToolUse hook в файл - постфактум видно что произошло
  • Cron monitoring - раз в 5 минут проверяешь, что у тебя нет 10 запущенных Claude-процессов одновременно (типичный признак, что что-то пошло не так)

Готовый чек-лист на 5 минут перед запуском autonomous Claude Code

Чек-лист перед claude --dangerously-skip-permissions:

[ ] 1. Hard cap на API-провайдере (Anthropic Console → Limits → Monthly spend limit)
[ ] 2. Task Budget в payload запроса (если Opus 4.7+/Fable/Mythos)
[ ] 3. PreToolUse hook на блокировку rm -rf, aws s3 rb, terraform destroy
[ ] 4. allowedTools whitelist в settings.json или работа в Docker-контейнере
[ ] 5. Cloud Budget Alert + Lambda kill-switch на отдельном агентском IAM-юзере
[ ] 6. Sandbox API keys (отдельный ключ для агента, не основной)
[ ] 7. --max-turns N + timeout NNN секунд + cron-monitoring процессов

Если все семь стоят - запускай. Если хоть один пуст - остановись и поставь. 30 минут сейчас экономят 6 000 - 500 000 потом.

Чтобы не взломали твой на Колд-коденный софт - поставь SKИLL по безопасности. Если коротко: открытая библиотека на гитхабе, уже больше 11 тысяч звёзд. Внутри 754 готовых навыка по кибербезопасности. Подключаешь к своему ИИ - и он проверяет твой код как сеньор-безопасник.

- Артемий, Telegram-канал, 8 июня 2026, https://t.me/artemii_miller

История из тренинга для контекста (обезличенно): вайб-кодер запустил приложение для интернет-магазина с стандартным паролем postgres у БД - за пару дней нашли, поставили майнеры, развернули свои бэкдоры. Сервер пришлось убить, биллинг за месяц вырос из-за чужого crypto-майнинга.

Эта история - про категорию 3 из раздела 3 (третьи лица крутят на твоей инфре), но логика та же: периметр расходов не должен зависеть от того, кто инициировал расход - твой агент, твой сотрудник или майнер из Нигерии.

Полезное дальше:

Источники

Полная схема по вайб-кодингу за вечер: ИИ-клон + Второй мозг + Контекст-инжиниринг. 3 эфира, 2 000 ₽. Записи остаются у тебя.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - стек, метод, первый проект
Старт 23–25 июня  ·  2 000 ₽
Записаться →

Новые материалы - дайджестом, без спама

Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

Была инструкция полезна?
Артемий Миллер
Автор
Артемий Миллер
Предприниматель и вайб-кодер

Артемий Миллер - предприниматель и вайб-кодер. Бывший программист, собирает продукты исключительно вместе с ИИ-агентами, без найма разработчиков.

Связанные инструкции

Уязвимость в Claude Code GitHub Action: что обновить и как защитить репо

1 июня 2026 раскрыли уязвимость в Claude Code GitHub Action: одно фейковое issue вытаскивало секреты CI. Разбираю атаку и даю 5 шагов защиты.

13 мин

Топ-10 плагинов Claude Code 2026: что ставить из 101

Поставил 25 плагинов из реестра Claude Code, оставил 10. Личный отбор с цифрами установок, цитатами авторов и антипаттернами.

14 мин

Почему ты бросишь ИИ-инструменты через месяц: эффект Даннинга-Крюгера

Эффект Даннинга-Крюгера в вайб-кодинге работает особенно жёстко. 4 стадии, через которые проходит каждый: пик глупости, долина отчаяния, склон просветления, плато устойчивости. И связка из трёх китов, которая проводит через долину.

19 мин

Claude Code Remote Control: как кодить с телефона через QR в 2026

Запустил Claude Code, привязал телефон через QR за 10 секунд, ушёл по делам. Push приходит, ты одобряешь diff с дивана. Полная инструкция по официальной фиче Anthropic Remote Control в 2026 году.

19 мин

Связанные концепты

Концепт

Вайб-кодинг

Способ строить продукты через диалог с ИИ-агентами: ты ставишь задачу словами, агент пишет код, ты проверяешь и итерируешь. Не «изучить программирование», а «получить результат руками агента».

Концепт

Второй мозг

Папка `business/` в проекте с базой знаний: аудитория, продукты, цели, экономика. Claude читает её перед каждой задачей и заземляет решения на реальный контекст бизнеса.

Концепт

ИИ-клон

Цифровая проекция твоего мышления в виде папки `ai-clone/`: ценности, принципы, тон, правила, выученные через ошибки. Claude читает её перед текстами «от меня» - голос совпадает.

Концепт

Контекст-инжиниринг

Дисциплина подготовки контекста для ИИ-агента: что он уже знает к моменту твоего промпта. 5 слоёв: ИИ-клон, бизнес, проект, зона задачи, сама задача.

Концепт

ИИ-агент

Программная единица, которая берёт цель, читает контекст и сама ходит по системам: открывает файлы, дёргает API, пишет в БД, отвечает в чате. От чат-бота отличается тем, что не ждёт твоего следующего сообщения.