Skip to content
imarch.dev
Назад в блог
· 3 мин чтения

Субботний деплой: 12 слоёв защиты

безопасность devops claude code ai

Суббота. Одиннадцать часов. Один терминал.

Неделю назад я запустил AI-чатбота на imarch.dev. Виртуальный клон который отвечает посетителям на вопросы обо мне, моём опыте и услугах. FastAPI, Docker, Hetzner Cloud. Но это не просто обёртка над API с огромным system prompt. Биография, проекты, стек, и всё это лежит в векторной базе. На каждый вопрос посетителя бот сначала ищет релевантные фрагменты через embeddings, и только потом отправляет в Claude Haiku 3.5 компактный контекст. Векторка работает как кэш: меньше токенов, быстрее ответ, дешевле счёт. Работает. Но «работает» и «готов к продакшену» это два разных слова.

Сегодня сел закрыть технический долг. За один день прошёл путь от «работает» до «закрыт».

Башня из концентрических щитов защиты с AI-мозгом в центре

Аудит данных

Начал с данных. System prompt чатбота и реальное CV расходились. Uptime 99.9% вместо 99.92%. Пропущенные проекты. Бот уверенно врал посетителям факты из моей же биографии. Синхронизировал вручную, строка за строкой.

Шесть дыр

Потом безопасность. Открыл терминал и начал проверять чатбота так, как проверял бы чужой сервис. Rate limit на уровне Python есть. А на уровне Nginx? Нет. Значит при DDoS запросы всё равно доходят до приложения. X-Forwarded-For берётся из заголовка клиента, и если подставить фейковый IP, то обходишь rate limit полностью. Контейнер с приложением работает от root. Body size не ограничен. Таймаут на вызов Claude API не стоит, и если зависнет, то заблокирует воркер навсегда.

Шесть дыр. Ни одна критическая. Все очевидные.

12 слоёв защиты

Закрыл за несколько часов:

  • Nginx: rate limit 5 req/s, burst 10, максимум 5 соединений с одного IP, body 2 килобайта
  • X-Forwarded-For перезаписывается реальным адресом
  • Fail2ban банит IP на час после 20 нарушений
  • Docker: non-root user, .dockerignore, concurrency limit
  • FastAPI: таймаут 15 секунд на API, периодическая очистка сессий, hard cap на память
  • SSH: отключил пароли, только ключи
  • Добавил swap на случай OOM
  • Spending limit на Anthropic

Двенадцать слоёв. От Cloudflare на фронте до iptables на бэкенде.

Напарник в терминале

Рядом со мной в терминале работал Claude Code. Не как автопилот. Как второй инженер.

Я говорю «проверь безопасность», и он читает конфиги, находит дыры, предлагает фиксы. Я говорю «применяй», и он пишет код, коммитит, деплоит, SSHится на сервер и правит nginx. Я ревьюю каждое изменение. Но руками не пишу почти ничего.

Это не будущее. Это суббота.

Я не знаю как будет выглядеть разработка через два года. Но сегодня один архитектор с AI-напарником закрыл объём работы, на который раньше ушла бы неделя с командой из трёх человек.

И чатбот теперь не врёт про uptime.


Хотите такого же AI-ассистента на свой сайт? Или внедрить AI в существующий продукт? Напишите мне, и разберёмся.


Читайте также

Поделиться:

Похожие статьи