Skip to main content
API ключи контролируют, кто и что может получить доступ к вашему серверу Failproof AI Observability, позволяя коллектору отправлять события без предоставления прав на чтение или администрирование. Каждый ключ имеет одно или несколько разрешений, и каждое разрешение ограничивает доступ к определённым маршрутам сервера; вы даёте только те разрешения, которые необходимы для работы. В большинстве развёртываний требуется всего три типа ключей.

Три ключа, необходимые большинству развёртываний

Начните отсюда. Обращайтесь к полному каталогу разрешений ниже только если вам нужен узкоспециализированный ключ с пользовательской областью действия. Смотрите также Рекомендуемая структура ключей и Создание ключей.

Разрешения

Сервер обеспечивает фиксированный каталог разрешений; каждое из них ограничивает доступ к определённым HTTP маршрутам. Ключ администратора содержит все разрешения; ограниченный ключ содержит подмножество, которое вы предоставляете при создании. Неизвестные строки разрешений отклоняются при создании ключа.
Примечание: Два действительных разрешения предназначены только для человека/панели управления и не могут быть предоставлены API ключу: orgs:admin (администрирование экземпляра, только для операторов) и keys:update. Запрос POST /keys или PATCH /keys/:id, пытающийся предоставить любое из них, отклоняется с кодом HTTP 422. Смотрите строку keys:update ниже, чтобы понять, почему ключ-носитель может создавать ключи, но никогда их не редактирует.

Приём и запрос событий

Сеансы и оценки

Панели управления

Сохранённые запросы (SQL редактор)

AI ассистент

API ключи

Пользователи панели управления

Эти разрешения поддерживают страницу панели управления Пользователи, где предоставленные области действия каждого участника отображаются в виде чипов: Страница Пользователи: карточка на каждого пользователя панели управления с его электронной почтой, предоставленными разрешениями и элементами управления редактированием/отключением

Операционные параметры

Страница параметров: операционные параметры, управляемые панелью управления, такие как разрешённые входы и время жизни сеанса/OTP, редактируемые без перезагрузки

Оповещения и инциденты

Аудиты

Примечание: Чтобы дать ключу поверхность аудита, явно предоставьте audits:*. Смотрите Примечания об обновлении и обратной совместимости, чтобы узнать, как существующие получатели были мигрированы при появлении Audits.
Конечная точка средства выбора получателей GET /alerts/recipients (в которой указаны адреса электронной почты участников, которых редактор оповещений может уведомить), доступна держателем либо alerts:read либо alerts:write, так что редакторы оповещений могут заполнить средство выбора без предоставления users:read.
Просмотрелю панели управления требуется как dashboards:read (для загрузки сохранённых представлений), так и evaluations:read (показатели здоровья вычисляются из данных оценки). Предоставьте dashboards:write для позволить пользователю создавать или редактировать панели управления, и dashboards:delete для их удаления.
/health и /auth/* (запрос OTP, проверка OTP, проверка сеанса, выход) по замыслу не требуют аутентификации; это процесс входа и проверка работоспособности. GET /access-granters требует действительный ключ, но без конкретного разрешения, поэтому любой зарегистрировавшийся пользователь может увидеть, какие администраторы могут контактировать об изменениях доступа.

Наборы разрешений

Наборы разрешений позволяют применить именованную роль вместо выбора отдельных токенов каждый раз. Вместо выбора десятка разрешений один за другим для каждого нового пользователя панели управления или API ключа вы выбираете набор, и все назначенные ему получают последовательное, проверяемое право. Редактирование пользовательского набора повторно применяет новое право каждому пользователю, уже назначенному ему, так что изменение роли — это один edit вместо обхода каждого участника. Каждая организация инициализируется с тремя встроенными наборами: Три встроенных набора неизменяемы; их имена всегда означают одно и то же, поэтому read-only, standard и admin безопасны для ссылки в политике и адаптации. Оператор может создавать дополнительные пользовательские наборы для моделирования ролей, специфичных для вашей организации (например, роль документ создателя или роль только-коллектора). Наборы находятся на панели управления и управляются через API по адресу GET /permission-sets (список, ограничен users:read) и POST /permission-sets / PUT /permission-sets/:name / DELETE /permission-sets/:name (создание, редактирование, удаление пользовательского набора, ограничено settings:write). Удаление или редактирование встроенного набора отклоняется. Членство в наборе поддерживает две другие функции:
  • DEFAULT_USER_PERMISSIONS (право, предварительно выбранное, когда администратор открывает + новый пользователь) по умолчанию использует набор standard.
  • Флаг --set на agenteye-orgctl (управление участниками организации) запускает участника из именованного набора, который вы затем можете точно настроить с помощью --add / --remove.
Примечание: Если набор включает разрешение, которое не может быть назначено ключу (например, пользовательский набор, несущий keys:update), инициализация ключа из этого набора отбрасывает неназначаемые токены; сервер иначе отклонил бы ключ с HTTP 422. Пользователи панели управления не подвергаются этому ограничению.

Ключ начальной загрузки администратора

Ключ администратора — это единственная корневая учётная данные, которая позволяет оператору запустить доступ с нуля: с его помощью вы можете создавать каждый другой ограниченный ключ, приглашать первых пользователей панели управления и настраивать экземпляр до того, как будет существовать другой ключ. Это единственный ключ, который вы не создаёте через API ключей; он подготавливается из окружения, чтобы сервер был доступен при первой загрузке. Установите переменную окружения ADMIN_KEY на сервере. При каждом запуске сервер обновляет это значение как ключ администратора со всеми разрешениями. Для ротации: измените ADMIN_KEY на новый секрет и перезагрузите сервер.

Область действия организации

Организации сами создаются и управляются вне записей этого API ключей оператором. Жизненный цикл организации и участника (создание / переименование / удаление / очистка организации; добавление / обновление / удаление участника) выполняется с помощью CLI agenteye-orgctl; нет HTTP API или кнопки панели управления для этого. Что остаётся неизменным: ключи API для каждой организации по-прежнему создаются на панели управления (или через этот API ключей) членами организации. В развёртывании с несколькими организациями каждый ключ, который создаёт член организации (через этот API ключей или страницу панели управления Ключи), принадлежит одной организации и может только читать или писать данные этой организации; организация отмечена на ключе при создании и обеспечивается при каждом запросе. Два ключа начальной загрузки — единственное исключение: ключ admin (инициализирован из ADMIN_KEY) и ключ dashboard-assistant (инициализирован из AGENT_API_KEY) — это ключи области действия экземпляра (они не имеют организации). Панель управления аутентифицируется с помощью ключа admin, чтобы она могла прокси-запросы для каждой организации от имени вошедших участников. Развёртывания на одного арендатора не должны об этом думать; все ключи принадлежат встроенной организации default.

Создание ключей

Используйте ключ администратора (или любой ключ с разрешением keys:create) для создания дополнительных ограниченных ключей.

Ключ коллектора (только приём)

Ключ панели управления (только чтение)

При создании ключа через HTTP API вы предоставляете значение key сами; выберите сильный секрет и храните его безопасно. (Панель управления работает иначе: она генерирует сильный секрет для вас и показывает его один раз при создании; смотрите Управление ключами в панели управления.) Ответ подтверждает, что ключ был создан:

Перечисление ключей

Секреты ключей не возвращаются в ответах списков, только ID, имена и разрешения.

Отключение ключа

Отключение отзывает доступ немедленно без удаления записи ключа.

Восстановление ключа

Генерирует новый секрет для существующего ключа. Старый секрет немедленно становится недействительным.
Ответ включает новый открытый секрет, показанный только один раз.

Управление ключами в панели управления

Страница Ключи в панели управления предоставляет UI для всех вышеупомянутых операций. Вам нужен ключ с разрешением keys:read для просмотра списка, и keys:create / keys:update / keys:disable / keys:regenerate для действий создания / редактирования / отключения / восстановления соответственно. Редактирование разрешений ключа (keys:update) отделено от создания одного (keys:create), так что вы можете предоставить оператору возможность создавать ключи без возможности переопределения существующих, или наоборот. Ключ администратора охватывает все это. При создании ключа с панели управления вы не предоставляете секрет; панель управления генерирует сильный секрет для вас и отображает его один раз при создании. Скопируйте его немедленно и храните безопасно; он никогда не будет показан снова, точно как при восстановлении. Вы всё ещё можете выбрать разрешения ключа непосредственно или инициализировать их из набора разрешений (смотрите ниже). Страница API ключей: карточка на каждый ключ с его именем, предоставленными разрешениями и временем создания, с действиями восстановления и отключения; защищённые ключи, такие как admin, отмечены

Рекомендуемая структура ключей

Примечание: Ключ ассистента инициализирован автоматически сервером из переменной окружения AGENT_API_KEY (тот же секрет, который агент представляет как AGENTEYE_API_KEY); нет ручного этапа создания ключей и нет задействованного ключа администратора. Его разрешения зафиксированы в исходном коде, поэтому область действия не может быть расширена неправильной конфигурацией: читать через события / оценки / панели управления, плюс dashboards-write и queries-read / write / run для потока автора с возможностью попросить AI написать запрос. Все SQL по-прежнему проходит через ту же роль только для чтения и охранявший путь SQL, что и написанный пользователем запрос, поэтому это расширяет поверхность создания, а не поверхность данных; деструктивные операции (queries:delete, dashboards:delete) намеренно остаются вне ключа ассистента. Как ключ admin, он защищён: не может быть отключен или восстановлен через API ключей, только ротирован путём изменения AGENT_API_KEY и перезагрузки. Пользователи панели управления дополнительно нуждаются в разрешении agent:use для просмотра и использования ассистента. Если вы включите самоинструментирование, дайте ассистенту отдельный ключ только для events:add.

Примечания об обновлении и обратной совместимости

Они нужны только, если вы обновляете существующий экземпляр; новые развёртывания могут их пропустить.
Когда Audits был выпущен, существующие получатели были расширены вдоль тех же форм ролей, как оповещения: каждый пользователь и набор разрешений, держащий alerts:read, получили audits:read, и каждый держатель alerts:write получил audits:write. Существующие API ключи не были расширены. Явно предоставьте audits:* ключу, если ему нужна поверхность аудита.
Сохранённые права устаревшего токена alerts:ack анализируются как incidents:ack, так что дежурные сохраняют доступ без повторного создания ключей. Токен больше не может быть назначен из редактора пользователей панели управления; матрица предлагает incidents:ack вместо этого.

Следующие шаги

  • Python SDK: как ваш код агента аутентифицируется при отправке событий.
  • Безопасность: как работают вход, контроль доступа и изоляция данных для каждой организации.