Безопасность и лицензирование

MultiAgent хранит чувствительные данные всей инфраструктуры: SSH-ключи серверов, пароли агентов, токены реестров и API-ключи. Эта страница — о том, как всё это защищено, как настроено резервное копирование и как устроены лицензии.

Шифрование секретов

Все секреты шифруются на хранении симметричным шифрованием AES-256-GCM. 32-байтный ключ лежит в /data/keys/management-secret.key — внутри volume MultiAgent, вне базы данных. Что защищено:

  • SSH-пароли и приватные ключи серверов (включая учётные данные proxy jump);
  • пароли Postgres и Forgejo на серверах;
  • токены реестров образов (Registry Auth);
  • пароли менеджеров агентов и переменные-секреты моделей и инструментов;
  • пароль домашней страницы сервера (Heimdall) и ключи программного интерфейса.

Проверка входа пользователей — JWT-токены со сроком 90 дней, подписанные отдельным ключом из /data/keys. Все действия API требуют проверки ключа; анонимна только страница входа, а программный интерфейс /api/agent/* открывается отдельным ключом X-API-Key.

Agent API — программный интерфейс

Программный интерфейс /api/agent/* предназначен для автоматических вызовов — например, из агентов и внешних систем. Каждый запрос проверяется заголовком X-API-Key: в переменной окружения MULTIAGENT_API_KEY хранится только «отпечаток» ключа (SHA-256), а сам ключ задаётся один раз при установке. Без переменной интерфейс отвечает 503 и не работает вовсе.

Особенности безопасности: GET /api/agent возвращает каталог всех операций с описаниями; секреты можно только записать — назад они не выдаются, только приметы «есть значение»; удалённого выполнения кода нет — только заранее определённые операции; долгие операции запускаются по схеме «запустил — проверяй» по адресу operations/{id}. Подробнее — Agent API.

Резервное копирование

На каждом сервере MultiAgent поднимает rsyncd-контейнер с пятью read-only модулями: агенты, данные, проекты, инструменты и Forgejo. Ваши машины-бэкаперы забирают данные по rsync по расписанию — типичной nightly-задачей:

# nightly backup of all server data
rsync -avz rsync://backup@server-host:873/data/    /backups/server-host/data/
rsync -avz rsync://backup@server-host:873/projects/ /backups/server-host/projects/

Сам MultiAgent бэкапится вместе с volume /data: база, ключи шифрования и лицензия лежат там же. Подробнее о структуре данных — в инструкции по установке.

Лицензии агентов

Раздел «Лицензии» — центральное хранилище лицензионных ключей Pastukhov Agent. Ключ проверяется при добавлении, шифруется на хранении и никогда не возвращается из API — интерфейс показывает только распарсенные метаданные (тип, владелец, срок). Один ключ назначается любому числу агентов и автоматически попадает в их переменную AGENT_LICENSE при развёртывании. Лицензия, назначенная хотя бы одному агенту, не удалится, пока её не отсоединить.

Лицензирование MultiAgent

Сам MultiAgent распространяется с 30-дневным триалом, встроенным в образ. Лицензия — самодостаточная подписанная строка: загружается через переменную AGENT_LICENSE (ту же, что читают все продукты семейства) или файлом активации в папке данных и проверяется офлайн по встроенному ключу. Универсальный ключ (без списка продуктов) покрывает все продукты; действующая лицензия блокирует только создание новых сущностей и отправку сообщений. Типы лицензий и цены — на странице Лицензирование.

← Оглавление документации