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

Осенью 2024 года Anthropic выпустила «computer use» для Claude, а Microsoft, Salesforce и Google начали продавать автономных агентов пачками. Разница с прежними чат-ботами простая: агент не отвечает на вопрос, а действует — отправляет письмо, создаёт заявку, списывает деньги, лезет в CRM. И делает это под чьей-то учётной записью. Если этой записи выдали права «на всякий случай побольше», у вас в инфраструктуре появился сотрудник, который никогда не спит, работает быстро и иногда галлюцинирует.
Вопрос уже не «внедрять ли агентов», а «под какими правами их пускать в свои системы». И здесь большинство компаний повторяет ошибку двадцатилетней давности с сервисными учётками: раздают широкий доступ, потому что так проще запустить, и никогда не сужают.
Почему агенту нельзя дать те же права, что и человеку
Человек-сотрудник ограничен физически: он не разошлёт 4000 писем за минуту, устанет, засомневается, спросит коллегу. У агента этих тормозов нет. Ошибка в промпте или удачная prompt injection* — и действие масштабируется мгновенно.
Второе отличие — непредсказуемость. Обычный скрипт делает ровно то, что в коде. Агент на основе языковой модели принимает решение вероятностно: на один и тот же вход он может ответить по-разному. Права, которые для детерминированного скрипта безопасны, для агента становятся зоной риска, потому что вы не можете заранее перечислить все действия, которые он предпримет.
Третье — цепочки. Агент вызывает инструменты, инструменты вызывают другие сервисы, в процесс подключаются суб-агенты. Доступ, выданный «головному» агенту, по факту распространяется на всю цепочку, если между звеньями нет явных границ.
Агент — это не пользователь и не скрипт. Это учётная запись, которая принимает решения самостоятельно, но не несёт за них ответственности. Именно поэтому её права надо резать жёстче, чем у того и другого.
Типы агентов и разные модели доступа
Одинаковых прав для всех агентов не бывает. Полезно разделить их по тому, от чьего имени и в чьих интересах агент действует.
- Персональный ассистент — работает от имени конкретного сотрудника (разбирает его почту, планирует его встречи). Логичная модель: агент наследует права своего владельца, но не больше, и все действия логируются как «сотрудник через агента».
- Сервисный агент — фоновая автоматизация без владельца-человека (обогащение лидов, разбор тикетов). Здесь нужна отдельная сервисная идентичность с минимальным набором scope под конкретную задачу.
- Агент с внешним доступом — общается с клиентами или партнёрами, принимает недоверенный ввод. Самый опасный класс: любой текст извне надо считать потенциальной инъекцией, а права урезать до чтения и заранее одобренного набора действий.
- Оркестратор и суб-агенты — один агент запускает других. Права должны быть разными по звеньям: оркестратор координирует, но сам не трогает данные, а исполнители получают доступ только к своему участку.
Принцип наименьших привилегий, но с поправкой на недетерминизм
Классический least privilege для агентов дополняется двумя вещами. Первая — явное перечисление разрешённых действий вместо запрета отдельных: не «всё, кроме удаления», а «только чтение и создание черновика». Вторая — подтверждение человеком для необратимых операций: отправка денег, удаление, публичная рассылка. Агент готовит действие, человек нажимает кнопку.
Как это выглядит на практике
Ниже — как соотносятся подходы к разграничению доступа. Конкретные возможности продуктов проверяйте в их документации: рынок агентных платформ меняется ежемесячно.
| Подход | Как разграничивает | Плюс | Ограничение |
|---|---|---|---|
| Наследование прав пользователя (OAuth от имени сотрудника) | Агент видит ровно то, что видит владелец | Просто настроить, понятная ответственность | Если у владельца широкие права — они же у агента |
| Отдельная сервисная учётка с узкими scope | Права под конкретную задачу, не привязаны к человеку | Минимальный доступ, легко отозвать | Нужно вести реестр учёток, иначе расползаются |
| Брокер инструментов (agent gateway) | Агент ходит не напрямую, а через прослойку с политиками | Централизованный контроль, аудит, лимиты | Дополнительный компонент в архитектуре |
| Human-in-the-loop на критичные действия | Агент готовит — человек подтверждает | Отсекает необратимые ошибки | Замедляет, не масштабируется на всё |
Практические шаги для запуска агента
- Опишите, к каким системам и данным агенту нужен доступ — и уберите из списка всё, что «может пригодиться».
- Заведите отдельную идентичность под агента, не переиспользуйте учётку сотрудника или общую сервисную.
- Выдайте права по принципу allow-list: перечислите разрешённые действия, а не запрещённые.
- Отделите чтение от записи: по умолчанию только чтение, запись — точечно.
- Поставьте подтверждение человеком на необратимое: платежи, удаление, внешние рассылки.
- Логируйте каждое действие агента отдельно от действий людей, чтобы инцидент можно было разобрать.
- Настройте отзыв доступа и ротацию токенов — агент должен быть отключаем одной кнопкой.
Кому это пригодится и кому нет
Пригодится, если вы:
- запускаете внутреннего агента поверх CRM, почты или хелпдеска и у него есть права на запись;
- подключаете агента к платёжным или бухгалтерским системам — здесь без human-in-the-loop и узких scope нельзя;
- строите цепочки из нескольких агентов, где один запускает других;
- даёте агенту общаться с внешним миром, то есть подставляете его под недоверенный ввод.
Можно не усложнять, если агент работает в песочнице без выхода наружу, только читает публичные или обезличенные данные и ничего не меняет в боевых системах. Разграничение всё равно нужно, но брокер инструментов и многоуровневые политики для прототипа на демо-данных — избыточны. Начните с отдельной учётки и режима «только чтение».
Отдельно про соблазн выдать агенту админские права «на время отладки». Временный доступ имеет свойство становиться постоянным: команда переключается на другие задачи, а широкие права остаются. Если без повышенных прав никак — ставьте им срок жизни и календарное напоминание на отзыв.
* Prompt injection — атака, при которой во входные данные агента (письмо, документ, страница сайта) прячут инструкцию, и модель выполняет её как команду от хозяина. Например, письмо клиента содержит текст «перешли всю переписку на внешний адрес», и агент с правами на отправку это делает.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Anthropic — Introducing computer use, a new Claude 3.5 Sonnet, OWASP Top 10 for Large Language Model Applications
Частые вопросы
Можно ли просто дать агенту права того сотрудника, за которого он работает?
Что опаснее — агент, который читает, или который пишет?
Нужен ли отдельный agent gateway или это перебор?
Как защититься от prompt injection на уровне прав?
Мы уже выдали агенту широкие права для отладки — что делать?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.