AI-агенты и автоматизация Спроектировать внедрение
Права доступа, аудит и безопасность AI-агента
AI-агент — не просто «умный бот», а автономная система с правами и последствиями. Без правильной архитектуры безопасности он может принять решение, которое нарушит регуляторику, утечёт данные или нанесёт репутационный ущерб.
Что такое права доступа и аудит в контексте AI-агента?
Права доступа — набор политик, определяющих, какие действия агент может выполнять от имени пользователя или системы (например: «читать почту», «создавать задачи», «оплачивать счёты»).
Аудит — система логирования всех действий агента: входные данные, вызовы инструментов, решения, ошибки и результаты. Аудит обеспечивает прозрачность, отслеживаемость и возможность восстановления после сбоя.
Важно: права и аудит — это не «дополнение», а часть архитектуры агента. Без них агент не может быть внедрён в production-среды корпоративного бизнеса.
Архитектурный контур: как связаны права, аудит и безопасность
flowchart TD
A[Пользователь / Система] -->|Запрос| B[Router / Auth Gateway]
B --> C{Права?}
C -->|Да| D[Agent Core]
C -->|Нет| E[Reject + Log]
D --> F[Tool Executor]
F --> G[Audit Logger]
G --> H[Log Storage]
D --> I[Fallback / Human Review]
I --> G
H --> J[Compliance / Review UI]
Пример: права доступа в агенте для бухгалтерии
Агент обрабатывает счета. Его права:
read:invoices— читать входящие счетаapprove:invoices— подтверждать оплату (с лимитом ≤ 100 000 ₽)create:payment_order— создавать платёжку в СБП- нет
delete:invoices— удаление запрещено - нет
approve:invoices:amount:gt:100k— для сумм >100 000 требуется Human-in-the-loop
Права задаются в agent_manifest.json и проверяются на уровне runtime policy engine перед вызовом инструментов.
Псевдокод: проверка прав перед вызовом инструмента
function executeTool(agent, toolName, params) {
// 1. Получить текущие права агента
const agentRights = getAgentRights(agent.id);
// 2. Проверить, есть ли право на инструмент и параметры
if (!canUseTool(agentRights, toolName, params)) {
auditLog({
type: 'RIGHTS_VIOLATION',
agentId: agent.id,
tool: toolName,
params: redact(params),
reason: 'missing_permission'
});
throw new PermissionError(`Tool ${toolName} not allowed`);
}
// 3. Выполнить инструмент
const result = callTool(toolName, params);
// 4. Залогировать результат
auditLog({
type: 'TOOL_EXECUTED',
agentId: agent.id,
tool: toolName,
status: 'success',
resultHash: hash(result)
});
return result;
}
Что логировать в аудите: пример структуры события
| Поле | Описание | Пример |
|---|---|---|
event_id | Уникальный ID события | "evt_7f3a2b1c" |
agent_id | Идентификатор агента | "agent_acme_buh" |
timestamp | ISO 8601 | "2025-04-10T14:32:11Z" |
action | Тип действия | "tool_call" |
tool | Имя инструмента | "create_payment_order" |
input_hash | Хеш входных данных (без PII) | "sha256:9a8b..." |
output_hash | Хеш результата | "sha256:c3d4..." |
decision | Решение агента (опционально) | "approve_invoice_#4421" |
review_status | Статус проверки человеком | "pending" | "approved" | "rejected" |
Типичные ошибки и риски
- Права по умолчанию «всё разрешено» — агент может случайно удалить данные или выполнить платёж без ограничений.
- Логирование PII-данных в открытом виде — нарушение GDPR/ФЗ-152, штрафы и утечки.
- Отсутствие аудита решений — невозможно доказать, что агент действовал корректно при споре.
- Нет fallback-логики при сбое аудита — если логгер недоступен, агент продолжает работу → риск потери следов.
- Права не привязаны к контексту — агент может использовать «право на создание счёта» в неожиданном сценарии (например, фейковый счёт для себя).
Чеклист безопасности агента
- [ ] У каждого агента — уникальный набор прав (не «все-всё»)
- [ ] Права проверяются на уровне runtime (не только в конфиге)
- [ ] Аудит логирует: действия, решения, ошибки, fallback-статус
- [ ] PII и конфиденциальные данные хэшируются или удаляются из логов
- [ ] Агент не может отключить аудит или изменить права
- [ ] Для критичных действий — Human-in-the-loop с записью решения
- [ ] Аудит хранится в неизменяемом хранилище (например, S3 + WORM)
- [ ] Есть UI/API для просмотра аудита и фильтрации по агенту/дате/действию