ВозможностиДокументацияЦеныPlaygroundFAQ

RBAC

Role-Based Access Control — гранулярные разрешения для агентов и API-ключей

🔧 Team и выше

Обзор

FlowLink RBAC позволяет создавать кастомные роли с точным набором разрешений (scopes). Каждый API-ключ и агент привязан к роли, которая определяет доступные инструменты и операции. Это предотвращает privilege escalation и ограничивает damage radius при компрометации ключа.

Встроенные роли

admin

Все операции, управление биллингом и политиками

operator

Чтение агентов, выполнение команд, просмотр аудита

readonly

Только чтение: агенты, метрики, конфигурация

Scopes (разрешения)

agents:readПросмотр списка агентов
agents:writeРегистрация/удаление агентов
commands:readПросмотр истории команд
commands:executeОтправка команд агентам
policies:readЧтение политик безопасности
policies:writeСоздание/изменение политик
audit:readПросмотр audit log
billing:readПросмотр подписки и usage
roles:manageУправление ролями
webhooks:manageУправление webhook'ами

Создание роли

bash
curl -X POST https://relay.example.com/api/v1/orgs/${ORG_ID}/roles \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "dev-readonly",
    "display_name": "Developer Read-Only",
    "permissions": ["agents:read", "commands:read", "audit:read"],
    "deny": ["commands:execute", "policies:write"]
  }'

Привязка роли к API-ключу

bash
# Создать ключ с ролью
curl -X POST https://relay.example.com/api/v1/keys \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"name": "ci-bot", "role": "dev-readonly"}'

# Обновить роль существующего ключа
curl -X PATCH https://relay.example.com/api/v1/keys/${KEY_ID}/role \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"role": "operator"}'

Как работает

  1. API-запрос проходит через JWT auth middleware
  2. Claims содержат role и scopes из привязанной роли
  3. Handler проверяет can_call("scope") перед выполнением
  4. Недостаток прав → 403 Forbidden с описанием требуемого scope

Масштабирование

Кастомные роли позволяют создавать принципиал least-privilege: CI/CD бот получает только commands:execute, разработчик — commands:read + audit:read, оператор — полный набор. Ограничение на количество кастомных ролей зависит от тарифа (Team: 10, Business: 50, Enterprise: безлимит).