Зарегистрированная личность
Каждый агент — это запись: стабильный agent_id, роль, привязка ключа Ed25519, дата создания. Больше никаких догадок о том, какой процесс что сделал — реестр является источником истины о том, кто существует.
К 2027 году флоты — а флот анонимных процессов — становятся обузой. LeanCTX делает каждого агента зарегистрированной личностью: уникальной, принадлежащей человеку, управляемой по жизненному циклу, аттестованной и отзывной — с отслеживанием каждого перехода в неизменяемом журнале аудита.
Роли остаются многократно используемыми профилями разрешений. Личность добавляет подотчетность поверх: agent_id, owner, status, key binding, attestation, heartbeat. Четыре свойства делают флот управляемым.
Каждый агент — это запись: стабильный agent_id, роль, привязка ключа Ed25519, дата создания. Больше никаких догадок о том, какой процесс что сделал — реестр является источником истины о том, кто существует.
Регистрация без владельца-человека отклоняется. Подотчетность структурна: каждая запись аудита, каждое событие жизненного цикла, каждый пакет доказательств отслеживается до человека, который несет ответственность за агента.
Приостановить агента или вывести из эксплуатации владельца и приостановить весь его флот атомарно — каждая приостановка индивидуально аудируется. Вывод из эксплуатации окончателен и записывает закрывающую запись аудита.
Бинарные хеши и хеши конфигурации ролей при регистрации и при каждом heartbeat. Отклонение обнаруживается немедленно (код выхода 3) — обновление, редактирование конфига или подделка. Мы документируем то, от чего это НЕ защищает.
Всё ориентировано на CLI и честно по коду выхода, чтобы ваши пайплайны и мониторинг могли действовать на основе этого.
$ lean-ctx agent register --id ci-reviewer-1 --role reviewer --owner alice@org registered: ci-reviewer-1 (role reviewer, owner alice@org) spiffe id: spiffe://org.example/agent/reviewer/ci-reviewer-1 $ lean-ctx agent heartbeat ci-reviewer-1 # liveness + drift; exit 3 on drift $ lean-ctx agent offboard-owner alice@org --reason "left company" suspended 2 agent(s): ci-coder-1, ci-reviewer-1 $ lean-ctx agent check ci-reviewer-1 # enforce-path decision point ci-reviewer-1: DENIED — suspended: left company # exit 1
Каждый переход записывает неизменяемую аудиторскую запись — зарегистрировано, приостановлено, возобновлено, выведено из эксплуатации являются стандартизированными типами событий (OCP Part 4), поэтому история идентификации попадает в ваши пакеты доказательств автоматически. Полная модель и угрозы: документация по идентификаторам агентов.
"Что происходит, когда кто-то уходит?"
Их агенты останавливаются. Механически. Вывод владельца из системы приостанавливает каждого активного агента этого владельца в одной заблокированной транзакции — подключено к вашему потоку депровизирования SCIM или запущено по контрольному списку увольняющегося сотрудника. Агенты-сироты — это забытые служебные учетные записи эпохи агентов; LeanCTX делает их структурно невозможными.
Роль говорит о том, что может делать процесс; идентификатор говорит о том, кто за это несет ответственность. При работе с флотами важными являются операционные вопросы: кому принадлежит этот агент, когда он был в последний раз активен, кто его выключил и почему, что происходит с его разрешениями, когда уходит владелец? Реестр отвечает на них механически — идентификатор (кто) остается отдельным от роли (что), поэтому роли остаются многократно используемыми профилями.
Агент, чей человек-владелец покинул компанию, но который продолжает работать с его учетными данными — версия забытой служебной учетной записи эпохи агентов, за исключением того, что он читает код и выполняет команды. LeanCTX устраняет это структурно: владельцы являются обязательными при регистрации, и одна команда (или ваш поток депровизирования SCIM) приостанавливает весь активный флот владельца в одной заблокированной транзакции, причем каждая приостановка проходит аудит.
active → suspended ⇄ active → decommissioned. Приостановка сопровождается причиной и обратима; вывод из эксплуатации окончателен по дизайну — запись никогда не удаляется и не активируется снова, потому что идентификатор является частью истории аудита. Каждый переход записывает неизменяемую аудиторскую запись с использованием стандартизированных типов событий (agent_registered, agent_suspended, agent_resumed, agent_decommissioned — OCP Part 4), поэтому изменения идентификаторов автоматически отображаются в пакетах доказательств.
Регистрация и каждый хеш «сердцебиения» хешируют работающий бинарный файл и активный файл роли. Измененный хеш означает, что что-то изменилось — обновление, редактирование конфигурации или вмешательство — и проявляется как дрейф с ненулевым кодом выхода, на который может оповестить ваш мониторинг. Это обнаружение дрейфа, а не удаленная аттестация: злоумышленник с полным контролем над хостом может подделать хеши, и наша модель угроз прямо об этом говорит. Это дополняет, но не заменяет укрепление хостов и подписание кода.
Три хука. SPIFFE: каждая запись сопоставляется со spiffe://<trust-domain>/agent/<role>/<agent_id>, поэтому идентификатор рабочей нагрузки K8s (SPIRE) и LeanCTX одинаковы. SCIM: подключите ваш поток депровизирования к вызову отвода владельца. Режим принуждения: API проверки — это единая точка принятия решений — незарегистрированные или приостановленные агенты отклоняются; начните в режиме мониторинга, перейдите на режим принуждения после регистрации флота.
Зарегистрируйте первого агента за минуту, локально и бесплатно — или поговорите с нами о развертывании всего флота с использованием SCIM и SPIFFE.