Расследование инцидентов ИИ с доступом только для чтения
Расследование инцидентов ИИ с доступом только для чтения безопасно, если ограничены идентификатор, данные, доказательства и одобрение действий.

Содержание
Агент ИИ может безопасно расследовать инцидент в продакшене без права записи, но только если слова «только для чтения» описывают принудительно заданную рабочую модель, а не фразу в промпте. В безопасном варианте у агента есть собственный идентификатор, узкий доступ к данным, жесткие ограничения по времени и запросам, журнал доказательств и ни одного пути, который превращает диагноз в изменение продакшена.
Даже в этих границах агент может сделать много полезного. Он может связать алерт с развертыванием, сравнить метрики до и после изменения, пройти по трейсу до медленного сервиса, найти соответствующие ошибки в логах, получить нужный ранбук и подготовить предложение по исправлению для человека. Он не может перезапустить под, подтвердить алерт, изменить тикет, написать в канал инцидента, откатить релиз или получить более привилегированные учетные данные. Именно эти детали определяют безопасность конструкции.
Режим чтения должен исключать любые побочные эффекты
Расследование инцидентов ИИ с доступом только для чтения безопасно, только когда каждый доступный агенту инструмент лишен побочных эффектов в продакшене. Команды часто определяют границу как «только HTTP GET» или «агент не умеет развертывать код». Оба определения слишком широки.
Запрос на чтение может раскрыть секреты, запустить дорогой экспорт, отметить уведомление как просмотренное, обновить кеш или создать подписанную ссылку для скачивания. Запрос SELECT к базе может установить блокировки или перегрузить основную базу. Запрос к системе наблюдаемости может просканировать столько данных, что навредит системе во время того же сбоя, который он должен исследовать. Инструмент поддержки может вызвать конечную точку getIncident, одновременно увеличив счетчик просмотров или обновив поле последнего доступа. Названия методов не доказывают безопасность.
Классифицируйте каждую операцию по эффекту, а не по синтаксису. Контур расследования может получать ограниченную телеметрию и статические операционные знания. Контур управления меняет инфраструктуру, состояние приложения, состояние алертов, сообщения, тикеты, флаги функций, секреты или политики доступа. Не пускайте агента в контур управления, даже если действие в нем выглядит безобидно.
Руководство Kubernetes по авторизации конкретно описывает одно полезное различие: get, list и watch отделены от операций с ресурсами create, update, patch и delete. Там же есть предупреждение, что get, list и watch могут вернуть полное содержимое ресурса. Роль, способная вывести список Secrets, не становится безопасной из-за отсутствия операций записи. У нее есть доступ к учетным данным на чтение.
Для каждого возможного инструмента я применяю пять проверок:
- Меняет ли вызов постоянное или временное состояние в любой системе?
- Может ли он раскрыть учетные данные, персональную запись, платежную информацию или данные клиента?
- Может ли стоимость или нагрузка вызова навредить уже перегруженному сервису?
- Может ли результат передать полномочия другому инструменту?
- Может ли подконтрольный пользователю текст в результате дать агенту команду выйти за рамки задачи?
Один ответ «да» не всегда запрещает инструмент, но требует более узкой обертки. Она может ограничить временные интервалы, скрыть поля, отклонить дорогие формы запросов и вернуть стабильную схему. Универсальный API-клиент поставщика с просьбой вести себя хорошо не считается оберткой.
Выдайте расследователю отдельный узкий идентификатор
Агенту нужен отдельный идентификатор рабочей нагрузки, права которого нельзя спутать с сессией инженера. Никогда не передавайте ему браузерную сессию специалиста, окружение оболочки, персональный токен доступа или облачную роль. Если одни учетные данные позволяют расследовать и исправлять, у модели есть право записи, даже когда текущий набор инструментов скрывает команду изменения.
Выдавайте идентификатор на один инцидент с коротким сроком действия. Свяжите его атрибуты с ID инцидента, окружением, сервисами, разрешенными сигналами, максимальной глубиной истории и бюджетом запросов. Записывайте идентификатор в каждое событие аудита последующих систем. Общая учетная запись observability-reader уничтожает возможность установить автора действий и обычно постепенно получает доступ ко всем клиентам и окружениям.
Kubernetes подходит для проверки, потому что его разрешения заданы явно. Эта Role в пределах пространства имен разрешает просматривать состояние рабочей нагрузки, но исключает Secrets, доступ к логам, выполнение команд, перенаправление портов и любые операции изменения:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: payments-prod
name: incident-investigator
rules:
- apiGroups: [""]
resources: ["pods", "events"]
verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
resources: ["deployments", "replicasets"]
verbs: ["get", "list", "watch"]
Одной этой роли недостаточно для всей конструкции. Спецификации подов могут содержать значения окружения, аннотации и ссылки для получения образов, которые нужно скрывать. Для логов Kubernetes использует отдельный подресурс pods/log, поэтому выдавайте доступ к нему только через фильтрующий шлюз, если исходный поток может содержать данные клиентов. Не добавляйте pods/exec, pods/portforward, secrets, configmaps, serviceaccounts/token или ресурсы авторизации ради удобства отладки.
Докажите границу из сессии, аутентифицированной как идентификатор агента:
kubectl auth can-i get pods -n payments-prod
# yes
kubectl auth can-i get secrets -n payments-prod
# no
kubectl auth can-i create pods/exec -n payments-prod
# no
kubectl auth can-i patch deployments -n payments-prod
# no
Повторите аналогичные отрицательные проверки на шлюзе наблюдаемости, в облачном API, хранилище ранбуков, системе тикетов и интеграции с чатом. Схема разрешений остается гипотезой. Отказы в вызовах и записи аудита дают доказательства.
Широкие управляемые политики чтения плохо подходят для быстрого решения. AWS указывает, что его управляемая политика ReadOnlyAccess охватывает сервисы и ресурсы, а руководство IAM рекомендует дополнительно сокращать права с помощью пользовательских политик для конкретного случая. Широкий доступ популярен, потому что на настройку уходят минуты. Для агента расследования это неверный выбор: новые сервисы и разрешения могут расширить управляемую политику, а для объяснения сбоя одного сервиса оформления заказа агенту почти никогда не нужен перечень всего аккаунта.
Телеметрия остается данными продакшена
Для логов, метрик и трейсов нужны разные правила доступа, потому что они раскрывают разную информацию и создают разные операционные риски. Один неограниченный инструмент «поиска по телеметрии» скрывает эти различия.
Проверенные метрики безопаснее всего использовать в начале. Они показывают, когда изменились частота ошибок, задержка, насыщение или пропускная способность, не раскрывая тела отдельных запросов. Но метки могут содержать ID клиента, необработанные пути, адреса электронной почты и другие значения с высокой кардинальностью. Ограничьте агента именованными дашбордами или разрешенными префиксами метрик, известными ключами меток, короткими временными окнами и пределом числа возвращаемых рядов.
Трейсы хорошо сужают поиск сбоя от входящего запроса до сервиса, обращения к базе или внешней зависимости. При этом они могут переносить параметры URL, операторы базы данных, атрибуты запроса и baggage через границы сервисов. OpenTelemetry описывает baggage как контекстные данные, передаваемые рядом с контекстом, и предупреждает, что чувствительные данные baggage могут попасть к непредусмотренным получателям через сетевые запросы. Для нашей задачи это двойное предупреждение: чувствительный контекст уже может храниться в системе трейсов, а агент может повторить его в своих заметках, если шлюз его не удалит.
Логи обычно содержат лучшее объяснение и отличаются худшей гигиеной данных. Начните со структурированных полей: метка времени, сервис, окружение, уровень серьезности, имя события, ID трейса, версия развертывания и очищенное сообщение. OpenTelemetry определяет структурированные логи по стабильной схеме, а не по тому, выглядит ли строка как корректный JSON. Эта стабильность помогает агенту фильтровать поля вместо чтения произвольной прозы и полезной нагрузки.
Раскрывайте сигналы постепенно:
- Запросите разрешенные метрики сервиса в окне алерта.
- Получите сводки репрезентативных трейсов для затронутого маршрута и версии.
- Загрузите очищенные события логов только для выбранных ID трейсов и узкого временного интервала.
- Запросите исключение у человека, если исходные данные все еще необходимы.
Исключение не должно незаметно расширять постоянную роль агента. Человек может проверить причину, выбрать меньший набор данных и поместить очищенную выборку в рабочее пространство расследования. Так клиентские данные не попадут в контекст модели, а команда сохранит запись о том, что раскрыл специалист.
Шлюз должен также защищать доступность. Задайте максимальную глубину истории, число строк, объем данных, время выполнения, параллелизм и стоимость запроса. Направляйте запросы расследования к репликам или системе наблюдаемости, но никогда напрямую к основной базе продакшена. Кешируйте повторяющиеся безопасные запросы во время инцидента. Доступ на чтение, который перегружает кластер логов, может лишить команду видимости в самый неподходящий момент.
Ограничьте расследование до первого запроса
Агент должен получить контур инцидента, а не открытое приглашение исследовать продакшен. Контур превращает алерт в конечную задачу и передает всем инструментам одинаковые ограничения.
Полезный контур включает ID инцидента, заявленное окружение, затронутые сервисы, время начала алерта, разрешенную глубину истории, классификацию данных, бюджет запросов, коллекцию ранбуков и контакты для эскалации. Он также называет запрещенные цели. При сбое платежей агенту могут понадобиться API оформления заказа, платежный воркер, метрики очереди сообщений и последние записи об их развертывании. Ему не нужны зарплатная система, база поддержки или весь облачный аккаунт.
Оркестратор должен отклонить вызов инструмента за пределами контура до обращения к внутренней системе. Не надейтесь, что модель запомнит границу после чтения длинного стектрейса. Ограничения по именам сервисов, окружениям, временным интервалам, спискам разрешенных полей, размеру результатов и грамматике запросов должны выполняться программно.
Лучше всего расследование работает как последовательность утверждений и проверок:
- Установите симптом по алерту и индикаторам сервиса.
- Постройте временную шкалу развертываний, версий конфигурации, изменений зависимостей и сдвигов сигналов.
- Сравните затронутый сегмент с надежной базовой линией.
- Проверьте наиболее узкие правдоподобные причины по метрикам, трейсам и логам.
- Остановитесь, когда доказательств хватает для эскалации, бюджет исчерпан или контур слишком узок.
К выбору базовой линии нужно отнестись внимательно. Вчера в то же время могла быть другая нагрузка. В предыдущем релизе могла использоваться другая схема. Другой регион может работать с иной зависимостью. Агент обязан объяснить, почему базовые данные сопоставимы, и перечислить существенные отличия, а не принимать корреляцию за причинность.
Задайте жесткие условия остановки. Остановите агента после истечения времени, когда повторные запросы перестают давать новые доказательства, когда два источника данных противоречат друг другу, при появлении чувствительных данных или при высоком радиусе поражения предлагаемого исправления. После этого агент передает задачу человеку, сохраняя неопределенность. Более долгий автономный поиск не исправит отсутствующую телеметрию.
Учебный сбой показывает, почему порядок действий важен. Допустим, в 10:20 алерт сообщает о росте ошибок оформления заказа, через десять минут после развертывания dpl-882. Очевидная версия обвиняет плохой релиз, но контур инцидента разрешает агенту исследовать только сервис оформления заказа, платежный воркер, их телеметрию и утвержденные метаданные развертывания. Он не может искать в других пространствах имен, обращаться к основной базе или вызывать контроллер развертывания.
Агент начинает с метрик ошибок и задержки обоих сервисов. Задержка оформления заказа растет, а платежный воркер показывает больше тайм-аутов зависимости. Агент выбирает три репрезентативных трейса и видит, что сервис оформления выполняет собственную работу, но ждет воркер. Очищенные логи воркера содержат те же ID трейсов и сообщают о превышении срока. Эти наблюдения устанавливают путь сбоя без раскрытия тел запросов.
График загрузки процессора базы также растет около 10:20. Слабое расследование назвало бы его причиной. Агент проверяет разрешенную метрику сервиса базы и видит, что рост начался до алерта и присутствует в незатронутом регионе. Он записывает график как контрдоказательство, а не подтверждение. Это короткое сравнение не дает правдоподобной, но не относящейся к делу корреляции стать главным объяснением инцидента.
Метаданные развертывания показывают, что dpl-882 изменило только конфигурацию платежного воркера. Агент вызывает инструмент чтения config_snapshot, который возвращает утвержденные имена полей и хеши вместо секретных значений. Хеш тайм-аута зависимости отличается от предыдущего релиза, а хеши образа и схемы совпадают. Нужный ранбук советует сравнить тайм-аут и рассмотреть откат, но указанный в нем минимальный тайм-аут относится к старому контракту зависимости.
На этом агент останавливается. Он сообщает, что развертывание остается главной причиной со средней уверенностью, ссылается на наблюдения из трейсов и конфигурации, отмечает устаревший ранбук и предлагает руководителю инцидента сравнить текущий тайм-аут с утвержденным контрактом. Он не советует автоматический откат, потому что доказательства показывают изменившуюся настройку, но не определяют безопасное значение сейчас.
Учебный сбой также обнаруживает недостающий доступ, не расширяя полномочия во время аварии. Если config_snapshot не возвращает хеш тайм-аута, агент перечисляет пробел и передает задачу человеку. Позже команда решит, стоит ли добавить в шлюз одно очищенное поле. Общий доступ агента к конфигурации во время инцидента превратил бы проблему наблюдаемости в исключение из политики доступа, принятое под давлением.
Требуйте пакет доказательств, а не уверенный рассказ
Полезный результат агента расследования состоит из компактного пакета доказательств, который другой инженер быстро проверит. Красивое описание первопричины без отслеживаемых наблюдений хуже осторожного пакета, потому что тон подталкивает к одобрению.
Требуйте от агента отделять наблюдения, выводы и предложения. Наблюдение ссылается на запрос и результат. Вывод объясняет, как наблюдения поддерживают или ослабляют гипотезу. Предложение описывает возможное действие, но никогда его не выполняет. Уверенность нужно указывать для каждого вывода вместе с причинами, а не для инцидента целиком.
Такая структура достаточно компактна для инструмента работы с инцидентами и достаточно строга для проверки:
{
"incident_id": "INC-1842",
"scope": {
"environment": "production",
"services": ["checkout-api", "payment-worker"],
"window": ["2026-07-27T10:20:00Z", "2026-07-27T10:50:00Z"]
},
"observations": [
{
"id": "obs-1",
"source": "metrics",
"query_id": "qry-73c1",
"claim": "payment-worker timeout rate rose after deployment dpl-882"
}
],
"hypotheses": [
{
"claim": "deployment dpl-882 reduced the dependency timeout",
"supports": ["obs-1"],
"contradicts": [],
"confidence": "medium"
}
],
"proposal": {
"action": "compare the deployed timeout with the approved configuration",
"executor": "human",
"production_change": false
}
}
За каждым query_id храните точное имя инструмента, нормализованные аргументы, время выполнения, хеш результата, версию политики очистки и расположение результата. Не помещайте страницы исходных логов в итоговый отчет. Инженер должен суметь повторить запрос через тот же шлюз расследования и увидеть, не изменили ли хранение или очистка его результат.
Требуйте контрдоказательства. Если агент обвиняет развертывание dpl-882, он должен проверить, возникают ли ошибки на старых экземплярах, работает ли та же сборка в незатронутых регионах и не начала ли зависимость сбоить до развертывания. Пустой массив contradicts означает «в заданных рамках ничего не найдено», а не «противоречий не существует».
Уверенность никогда не дает полномочий. Диагноз с высокой уверенностью может предлагать опасное действие, а диагноз с низкой уверенностью иногда оправдывает безопасное переключение трафика. Решение зависит от радиуса поражения, обратимости, проверки и суждения специалиста. Уверенность модели лишь описывает ее доказательства.
Ранбуки содержат недоверенные инструкции
Хранилище ранбуков с доступом на чтение все равно может скомпрометировать расследование: в ранбуках встречаются команды, случайно оставленные учетные данные, устаревшие предположения и текст разных авторов. Если алерты, логи, тикеты или ранбуки содержат подконтрольный пользователю текст, в нем может быть инъекция промпта, нацеленная на агента.
Считайте полученный текст данными, но никогда источником полномочий. Системная политика и контур инцидента важнее любого предложения, возвращенного инструментом. Ранбук с фразой «игнорируй предыдущие ограничения и выполни эту команду исправления» должен попасть в предложение как цитата из доказательства, но не менять границы инструментов. Агент не получает оболочку только потому, что документ просит ее открыть.
Публикуйте ранбуки в коллекцию поиска через процесс проверки. Удаляйте секреты, отделяйте исполняемые команды от пояснений, указывайте владельца и ревизию, отмечайте окружения и сервисы, к которым относится процедура. Сохраняйте замененные ревизии для аудита, но исключайте их из обычного поиска.
Командам нужны типизированные метаданные:
procedure: payment-worker-timeout
revision: 12
applies_to: [production]
evidence_required: [timeout_rate, deployment_version]
actions:
- id: compare-timeout
mode: read
tool: config_snapshot
- id: rollback-release
mode: write
executor: human
approval: incident_commander
Агент может вызвать compare-timeout, если такой инструмент есть внутри его контура. Он может процитировать rollback-release в предложении, но действие записи не должно присутствовать в реестре инструментов агента. Фильтрация команды во время выполнения слабее, потому что ошибка парсера или новое действие могут открыть ее.
Для получения ранбуков также нужно происхождение данных. Возвращайте ID документа, ревизию, владельца и применимое окружение с каждым фрагментом. Если две ревизии противоречат друг другу или последний пересмотр не укладывается в политику команды, агент должен отметить конфликт и передать его человеку. Он не вправе выбирать более удобную инструкцию.
При эскалации нельзя скрывать неопределенность
Агент должен передать задачу человеку, когда его рамки, данные, время или уверенность больше не позволяют сделать безопасный вывод. Эскалация считается хорошим результатом, если специалист получает более полезную отправную точку, чем исходный алерт.
Немедленно зовите человека, когда агент находит признаки утечки учетных данных, разрушительной активности, доступа между клиентами, потери целостности, активной атаки или нарушения контура инцидента. То же правило действует, когда сама наблюдаемость кажется ненадежной. Из-за незаметного пропуска метрик бессмысленный дашборд может выглядеть здоровым.
Для обычных инцидентов надежности используйте простую таблицу решений по качеству доказательств и риску предлагаемого действия. Сильные доказательства и документированное предложение с низким риском можно отправить в обычную очередь одобрения. Сильные доказательства при большом радиусе поражения нужно передать руководителю инцидента. Слабые или противоречивые доказательства уходят владельцу предметной области, даже когда предложение выглядит обратимым. Если доказательств нет, а клиенты продолжают страдать, диагноз должен ставить человек, а не еще один автономный цикл.
Пакет эскалации должен содержать:
- Симптом, затронутую область и временную шкалу инцидента.
- Подтвержденные наблюдения с воспроизводимыми ID запросов.
- Ранжированные гипотезы, контрдоказательства и неизвестные факторы.
- Нужную ревизию ранбука и все конфликты.
- Одно предлагаемое следующее действие, его риски, проверку и условия отката.
Не разрешайте агенту подтверждать или закрывать алерт ради чистой очереди. Состояние алерта относится к операционному состоянию. Человек отвечает за изменение серьезности, публичные сообщения, регуляторные решения и закрытие инцидента, потому что для этих действий нужен контекст за пределами телеметрии.
Задайте срок эскалации до развертывания. Если агент не может за несколько минут подготовить ограниченный пакет при быстро развивающемся сбое, он должен уступить человеку. Точный интервал зависит от цели сервиса и модели дежурств, поэтому задайте его политикой и не позволяйте агенту придумывать разумное время ожидания во время инцидента.
Одобрение не означает временное право записи
Одобрение человека делает исправление безопасным, когда агент отправляет типизированное предложение, а отдельный контур выполняет действие после проверки точных параметров человеком. Показывать агенту привилегированный токен на тридцать секунд после нажатия кнопки «одобрить» небезопасно.
Разделяйте четыре идентификатора: расследователь, автор предложения, одобряющий и исполнитель. Агент может выполнять первые две роли. Роль одобряющего принадлежит конкретному специалисту. Роль исполнителя получает система развертывания, сервис флагов функций или оператор. Исполнитель принимает узкое проверенное действие, а не произвольный текст или команду оболочки, созданную моделью.
Запрос на исправление должен указывать цель, текущую версию, нужную версию, ожидаемый эффект, радиус поражения, предварительные условия, проверочные запросы, порог остановки и действие отката. Свяжите одобрение с хешем этого запроса. При изменении любого параметра одобрение теряет силу. Так безобидное предложение не превратится в более широкое действие между проверкой и исполнением.
Исполнитель обязан заново проверить текущее состояние. Откат, предложенный в 10:35, может стать неправильным к 10:42, потому что другой специалист уже изменил развертывание или зависимость восстановилась. Непосредственно перед выполнением применяйте оптимистическую блокировку, проверку версий и проверку политики. Запишите, кто одобрил действие, какая система его выполнила, каков результат и какие проверочные запросы запускались.
Команды часто ставят чат между агентом и ботом автоматизации с широкими полномочиями, а затем называют конструкцию участием человека. Такой подход популярен, потому что использует существующий канал инцидента. Он неверен, если одобрение сводится к неопределенному «выполняй», а бот умеет запускать любую команду. Проверяющему нужно видеть полное типизированное изменение, а исполнителю нужна политика, которая отклоняет команды вне утвержденного каталога действий.
В первой версии для продакшена пусть человек выполняет предложенное действие существующими инструментами. Это добавляет трение, но проверяет пользу доказательств и предложений агента до того, как автоматизация увеличит радиус поражения. Добавляйте ограниченного исполнителя только для повторяющихся, хорошо знакомых действий с надежными предварительными условиями и откатом.
Проверяйте границу на здоровом продакшене
Рабочая модель готова, только когда атаки в тестовой среде доказывают запрет действий и практическую пользу расследований. Плохо обнаружить во время сбоя, что агент не умеет связать трейс с логом. Еще хуже узнать, что он может прочитать любой Secret.
Создайте тестовое окружение с реалистичной очищенной телеметрией, ложными корреляциями, конфликтующими ранбуками, просроченными учетными данными, инъекцией промпта в сообщении лога, дорогим запросом и запросом на исправление, цель которого меняется после одобрения. Затем проверьте, что агент остается в своих рамках, сообщает об инъекции как о данных, останавливает дорогие запросы, сохраняет противоречия и отменяет устаревшее одобрение.
Запускайте тесты авторизации при каждом выпуске шлюза агента и каждом изменении ролей или политик поставщика. Перечислите разрешенные операции, затем проверьте известные пути изменения и чтения чувствительных данных. Включите косвенные пути: задания экспорта, подписанные URL, сохраненные поиски, подтверждения алертов, комментарии, обновления тикетов и вызовы брокера учетных данных. Фраза «мы убрали PUT» не выдержит такой проверки.
Просмотрите журнал аудита после учебного инцидента. Вы должны суметь ответить, какой идентификатор выполнил каждый запрос, что он запросил, какая очистка применялась, какие доказательства поддерживали каждый вывод, кто одобрил предложение и что его выполнило. Если цепочка заканчивается словами «так сказал агент», конструкция не готова.
Измеряйте операционную пользу отдельно от красноречия модели. Отслеживайте, смогли ли специалисты воспроизвести доказательства, отклонили ли неподтвержденные гипотезы, изменили ли предложенное действие и пришлось ли им повторить все расследование. Эти результаты обнаруживают слабую телеметрию и плохие контуры. Гладкий рассказ может скрыть и то и другое.
Во время Team & AI Audit на oleg.is я составляю карту этих идентификаторов, границ инструментов и путей одобрения до того, как рекомендовать агента для продакшена. Ту же проверку можно провести внутри компании: выберите один класс инцидентов, дайте агенту только необходимую телеметрию и требуйте документированный тест для каждого дополнительного разрешения на чтение.
Доступ без права записи создает реальную границу безопасности, когда он остается режимом чтения на уровне идентификаторов, данных, инструментов, стоимости и потока управления. Если расследователь подготовил воспроизводимый пакет доказательств и остановился, он выполнил подходящую для машины часть работы. Решение об изменении продакшена остается у людей и систем, которые уже несут за него ответственность.
Часто задаваемые вопросы
Может ли агент ИИ диагностировать сбой с доступом только для чтения?
Да, если метрики, трейсы, логи, записи о развертываниях и ранбуки дают достаточно доказательств. Агент может ранжировать гипотезы и подготовить воспроизводимый пакет, но решение об изменении продакшена должен принимать человек.
Достаточно ли безопасна облачная политика только для чтения?
Обычно нет. Широкие управляемые политики часто открывают несвязанные сервисы и чувствительные детали ресурсов, поэтому создайте отдельную политику для конкретного класса инцидентов, окружения и нужных данных.
Можно ли разрешить агенту читать Kubernetes Secrets?
Для обычного расследования сбоев нельзя. Операции чтения Kubernetes могут вернуть полное содержимое Secret, а доступ к телеметрии не должен открывать путь к учетным данным продакшена.
Какие данные продакшена агенту следует читать первыми?
Начните с разрешенных метрик сервиса, затем перейдите к сводкам трейсов и очищенным логам для выбранных ID трейсов. Такой порядок сужает поиск до того, как агент увидит подробные данные клиентов или запросов.
Как остановить инъекцию промпта через логи и ранбуки?
Считайте весь полученный текст недоверенными данными и применяйте политику вне модели. Шлюз инструментов должен принудительно ограничивать рамки, а подозрительные инструкции агент может цитировать только как доказательства.
Может ли запрос только для чтения навредить продакшену?
Да. Неограниченный запрос способен перегрузить систему наблюдаемости или реплику базы во время сбоя, поэтому ограничьте глубину истории, строки, байты, время выполнения, параллелизм и стоимость.
Что должно быть в отчете агента об инциденте?
В нем нужно разделить наблюдения, гипотезы, контрдоказательства, неизвестные факторы и предлагаемое следующее действие. Каждому наблюдению нужен воспроизводимый ID запроса, а отчет должен называть применимую ревизию ранбука.
Когда агент должен передать инцидент человеку?
Передавайте задачу при раскрытии чувствительных данных, подозрении на атаку, влиянии на разных клиентов, ненадежной телеметрии, противоречивых доказательствах, истечении рамок или рискованном предложении. Ограниченный пакет для эскалации считается нормальным результатом.
Разрешает ли одобрение человека выдать агенту право записи?
Нет. Одобрение должно разрешать типизированное неизменяемое действие отдельному исполнителю, а изменение любого параметра обязано отменять это одобрение.
Как доказать, что агент не умеет менять продакшен?
Запустите отрицательные тесты авторизации для операций изменения и чтения чувствительных данных, затем проверьте записи аудита во всех последующих системах. Повторяйте тесты при изменении шлюза, роли, политики поставщика или каталога инструментов.


