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

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

Оповещения и инциденты
Аудиты
Примечание: Чтобы дать ключу поверхность аудита, явно предоставьте 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 ключей оператором. Жизненный цикл организации и участника (создание / переименование / удаление / очистка организации; добавление / обновление / удаление участника) выполняется с помощью CLIagenteye-orgctl; нет HTTP API или кнопки панели управления для этого. Что остаётся неизменным: ключи API для каждой организации по-прежнему создаются на панели управления (или через этот API ключей) членами организации.
В развёртывании с несколькими организациями каждый ключ, который создаёт член организации (через этот API ключей или страницу панели управления Ключи), принадлежит одной организации и может только читать или писать данные этой организации; организация отмечена на ключе при создании и обеспечивается при каждом запросе. Два ключа начальной загрузки — единственное исключение: ключ admin (инициализирован из ADMIN_KEY) и ключ dashboard-assistant (инициализирован из AGENT_API_KEY) — это ключи области действия экземпляра (они не имеют организации). Панель управления аутентифицируется с помощью ключа admin, чтобы она могла прокси-запросы для каждой организации от имени вошедших участников. Развёртывания на одного арендатора не должны об этом думать; все ключи принадлежат встроенной организации default.
Создание ключей
Используйте ключ администратора (или любой ключ с разрешениемkeys:create) для создания дополнительных ограниченных ключей.
Ключ коллектора (только приём)
Ключ панели управления (только чтение)
key сами; выберите сильный секрет и храните его безопасно. (Панель управления работает иначе: она генерирует сильный секрет для вас и показывает его один раз при создании; смотрите Управление ключами в панели управления.) Ответ подтверждает, что ключ был создан:
Перечисление ключей
Отключение ключа
Отключение отзывает доступ немедленно без удаления записи ключа.Восстановление ключа
Генерирует новый секрет для существующего ключа. Старый секрет немедленно становится недействительным.Управление ключами в панели управления
Страница Ключи в панели управления предоставляет UI для всех вышеупомянутых операций. Вам нужен ключ с разрешениемkeys:read для просмотра списка, и keys:create / keys:update / keys:disable / keys:regenerate для действий создания / редактирования / отключения / восстановления соответственно. Редактирование разрешений ключа (keys:update) отделено от создания одного (keys:create), так что вы можете предоставить оператору возможность создавать ключи без возможности переопределения существующих, или наоборот. Ключ администратора охватывает все это.
При создании ключа с панели управления вы не предоставляете секрет; панель управления генерирует сильный секрет для вас и отображает его один раз при создании. Скопируйте его немедленно и храните безопасно; он никогда не будет показан снова, точно как при восстановлении. Вы всё ещё можете выбрать разрешения ключа непосредственно или инициализировать их из набора разрешений (смотрите ниже).

Рекомендуемая структура ключей
Примечание: Ключ ассистента инициализирован автоматически сервером из переменной окружения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: как ваш код агента аутентифицируется при отправке событий.
- Безопасность: как работают вход, контроль доступа и изоляция данных для каждой организации.

