Перейти к содержанию

Система прав доступа


В этой главе мы разберём, кто, что и почему может (или не может) делать с вашими дашбордами. Тема прав доступа похожа на строительство дома: сначала кажется, что хватит одного ключа для входной двери, а потом выясняется, что нужны отдельные ключи от подвала, чердака и электрощитовой. Так и здесь: по мере роста команды и количества дашбордов без настроенных прав — хаос.


Org Roles: Viewer, Editor, Admin

В Grafana существует понятие Organization — ограниченная область видимости. Один сервер Grafana может обслуживать несколько организаций, и каждая видит только свои дашборды, источники данных и команды. Для большинства — одна организация.

Внутри организации есть три базовые роли:

Роль Может Не может
Viewer Смотреть дашборды. Изучать данные. Делать Explore. Ничего не менять. Создавать/редактировать/удалять дашборды. Настраивать источники данных. Добавлять пользователей.
Editor Всё то же, что Viewer, плюс создавать и редактировать дашборды. Настраивать источники данных (подключать новые, удалять). Управлять пользователями и организацией.
Admin Всё. Полный контроль над организацией. Ничего, только супер-админ сервера (Server Admin) может делать то, что выше организации — например управлять организациями, задавать глобальные настройки.

Проще всего запомнить: Viewer смотрит, Editor рисует, Admin управляет.


Folder Permissions

Папки — не просто каталоги для сортировки дашбордов. Папки — это единицы разграничения доступа. Каждой папке можно назначить индивидуальные права для пользователей, команд и сервисных аккаунтов.

Что можно настроить для папки:

  • View — видеть содержимое папки (дашборды внутри неё). Без этого — дашборды не видны вообще.
  • Edit — изменять дашборды внутри папки, создавать новые дашборды. Без Edit — кнопка «New Dashboard» недоступна.
  • Admin — управлять правами доступа к самой папке: добавлять/удалять других пользователей в папку, менять их роли.

Пример: создаём папку «Finances». Даём права View бухгалтерам (чтобы видели отчёты), Edit — инженерам (чтобы могли править дашборды), Admin — руководителю отдела инженерии (чтобы управлял доступом к папке).


Dashboard-level permissions vs Folder

До версии 10.x права можно было задавать только на уровне папки — все дашборды внутри папки наследовали права папки. Начиная с Grafana 10.x появились права на уровне отдельного дашборда. Это позволяет точечно переопределять доступ:

Папка «Operations» открыта всем Viewer в организации. Но внутри есть дашборд «Finances — Overview», к которому доступ только у бухгалтеров. Вы задаёте права на сам дашборд — и они переопределяют права папки.

Приоритет: Dashboard-level → Folder-level → Org Role. Если на дашборде задано право View для пользователя, то оно действует, даже если папка полностью закрыта для этого пользователя.


Data Source Permissions (Query Permissions)

Относительно новая фича (с 9.x) — можно ограничить, кто может делать запросы к конкретному источнику данных. Разрешения:

  • Query — доступ к выполнению запросов к источнику данных из любой панели дашборда.
  • Edit — возможность редактировать настройки источника данных.
  • Admin — управление правами на сам источник данных.

Пример: source данных PostgreSQL с production-данными имеет Query-доступ только для production-команды. Никакой разработчик не сможет случайно выполнить тяжёлый запрос через Explore в дашборде.


Teams и Service Accounts

Team — группа пользователей. Вместо того чтобы добавлять каждого пользователя по отдельности, вы добавляете один раз команду и говорите: «Команда Backend имеет доступ к папке Services». Когда в команду приходит новый разработчик, он автоматически получает этот доступ. Уходит — доступ теряется. Удобно и безопасно.

Service Account — «робот». Не человек, а программа, скрипт, CI/CD pipeline, который должен иметь доступ к определённым дашбордам или API. Service Account имеет такие же права, как обычный пользователь, но не может залогиниться через UI. Для него генерируется токен.

Разница между Service Account и старыми API Keys: API Keys были привязаны к организации и не имели детальных прав. Service Accounts могут быть включены в Teams и наследовать все права Teams — это и есть Grafana IAM (Identity and Access Management).


Пошаговая инструкция: настройка доступа к дашборду только для чтения

Задача: дать доступ конкретному пользователю (или группе) к одному дашборду с правами только чтение, но ко всем остальным дашбордам доступа не давать.

Шаг 1: Создайте пользователя. В Settings → Users → Invite. Назначьте роль Viewer в организации (Viewer не сможет создавать/редактировать дашборды, но сможет видеть все публичные дашборды — пока это не то что нужно).

Шаг 2: Поместите дашборд в отдельную папку. Создайте папку «Restricted» (или любую другую). Права на папку: удалите все наследованные права — в частности, удалите право View для роли Viewer (иначе любой Viewer увидит эти дашборды). Папка теперь не видна никому, кроме админов.

Шаг 3: Добавьте право View для конкретного пользователя (или Team) на папку «Restricted». Теперь эти люди видят папку и дашборды внутри неё. Другие — нет.

Шаг 4: Проверьте. Зайдите под учётной записью пользователя: дашборд должен быть виден, но кнопки Edit/Save отсутствуют. Другие папки не видны (если в них тоже убрали права для Viewer).

Это минимально необходимая настройка для защиты конфиденциальных дашбордов. Более сложные схемы — под несколько команд с пересекающимися правами — строятся по тому же принципу, просто с использованием Teams и ролей Admin/Edit на папках.


Следующая часть: Часть III. Анатомия панели