Управление доступом нескольких команд в одном экземпляре Grafana
Если в вашей организации несколько команд используют Grafana, вы можете использовать одно развёртывание Grafana Enterprise или один стек Grafana Cloud для управления доступом между командами с помощью ролей и папок. Такой подход снижает сложность, упрощает управление идентификацией и доступом и способствует сотрудничеству между командами.
Преимущества
Используя один экземпляр Grafana для управления доступом, вы можете:
- Внедрить единый SSO, установив чёткие разрешения.
- Сократить работу по настройке и поддержке, избегая сложности с несколькими стеками.
- Централизовать конфигурацию и управление плагинами.
- Обеспечить командам доступ к нужным дашбордам и данным, избегая вмешательства в работу друг друга или её перезаписи.
- Обеспечить сотрудничество между командами. Команды не изолированы в «силосах» и могут находить работу друг друга и сотрудничать.
- Оптимизировать управление ресурсами. С общими пространствами, такими как папка «Everyone», вы можете публиковать дашборды для руководства или метрики, полезные для всех групп, без дублирования их по стекам.
Пример: три команды, один стек
Рассмотрим следующую конфигурацию из трёх команд:
- Команда A создаёт функции продукта и нуждается в автономии с собственными дашбордами и источниками данных.
- Команда B занимается инженерией данных и нуждается в автономии с собственными дашбордами.
- Команда C — команда наблюдаемости и администраторы стека Grafana.
Следуйте этим предлагаемым шагам, чтобы структурировать, настроить и задать разрешения на доступ к данным в вашем экземпляре Grafana:
- Перед началом
- Создайте команды и настройте доступ пользователей
- Спроектируйте структуру папок в соответствии с вашими потребностями в доступе
- Настройте доступ к данным исходя из требований каждой команды
- Масштабируйте управление доступом с помощью Terraform и SSO
Перед началом
Дополнительную информацию о том, как установить экземпляр Grafana:
- Если вы используете самостоятельно управляемую Grafana Enterprise, см. Настройка Grafana.
- Если вы используете Grafana Cloud, см. Ваш стек Grafana Cloud.
Note
Рекомендации о том, когда использовать один стек, а когда несколько, см. в разделе Рекомендации по архитектуре стеков.
Создайте команды и настройте доступ пользователей
После того как вы развернули экземпляр Grafana:
- Чтобы следовать примеру из этого документа, создайте три команды Grafana и добавьте их в экземпляр Grafana.
- Определите стратегию RBAC для вашей организации. RBAC расширяет стандартные роли Grafana, предоставляет более гранулярные права доступа и упрощает предоставление, изменение или отзыв доступа пользователей к ресурсам Grafana, таким как пользователи и отчёты.
- Назначьте каждого пользователя соответствующей команде. По умолчанию новым пользователям предоставляется роль Viewer.
- Назначьте роль Admin команде C, чтобы она могла управлять всеми ресурсами в экземпляре.
Спроектируйте структуру папок в соответствии с вашими потребностями в доступе
Чтобы спроектировать структуру папок, которая помогает пользователям быстро понять, куда идти, к чему у них есть доступ и чем они могут управлять:
- Создайте папку «Everyone» для общих элементов, которыми могут управлять все команды, и предоставьте командам доступ администратора к этой папке.
- Для каждой команды создайте папку, которой она может управлять, и предоставьте ей
фиксированную роль
fixed:teams:read. Это означает, что они могут делиться элементами в своей командной папке с другими командами, чтобы поощрять сотрудничество и взаимное обучение. - Для команды C создайте папку «Admins» для конфиденциального содержимого, к которому имеют доступ только администраторы.
- При желании создайте личную папку для каждого участника команды, чтобы они могли работать над черновым содержимым, прежде чем перенести его в свою командную папку, когда оно будет готово.
Настройте доступ к данным исходя из требований каждой команды
Далее сосредоточьтесь на том, как команды взаимодействуют с данными, чтобы определить дополнительные потребности в доступе.
Общий базовый доступ к данным
Предоставьте всем командам фиксированную роль datasources:explorer, чтобы они могли использовать
приложения Drilldown для удобного исследования источников данных.
Однако может потребоваться защитить данные в общих ресурсах. Например, все команды могут пересылать метрики в общий источник данных, но не всем нужно видеть все данные. В этом случае предоставьте каждой команде доступ на запрос к релевантным для неё данным на основе управления доступом на основе меток (LBAC) для каждой команды. Так вы сохраните централизованный конвейер наблюдаемости, но при этом сохраните разделение данных.
Автономное управление данными команды
Если каким-либо из ваших команд, например команде A, нужно создавать свои собственные источники данных для специфичных для продукта вариантов использования, предоставьте фиксированную роль datasources:creator, чтобы они могли независимо создавать свои источники данных и управлять ими.
Ресурсы на уровне экземпляра
Некоторые ресурсы Grafana, такие как сервисные учётные записи, точки контакта для оповещений, коллекторы Fleet Management и другие ресурсы функций, не связаны с командами, а управляются на уровне стека. Для таких ресурсов назначайте командам фиксированные роли с осторожностью.
Например, пользователям, работающим в Frontend Observability, нужна фиксированная роль writer, чтобы они могли создавать службы и управлять ими.
Масштабируйте управление доступом с помощью Terraform и SSO
После того как вы убедились, что модель работает, вы можете её закодифицировать.
Вы можете добавлять новых пользователей в ваш экземпляр Grafana с помощью провайдера идентификации через SCIM. Используйте синхронизацию ролей, чтобы автоматически назначать пользователям правильную базовую роль (Viewer, Editor или Admin) на основе их сопоставленных атрибутов в IdP.
Вы также можете использовать Terraform для провижининга командам их папок, фиксированных ролей и правил LBAC для общих источников данных. Например, если вам нужно добавить новую команду (команду D), достаточно добавить новую команду в Grafana и запустить скрипт Terraform, который автоматически настроит её для начала использования Grafana.
Другие ресурсы
Читайте далее, чтобы узнать больше об управлении доступом:
- Блог Разъяснение пользовательских ролей с минимальными привилегиями рассказывает о том, как проектировать роли, которые сохраняют простоту и безопасность, чтобы у ваших пользователей был именно тот доступ, который им нужен.
- Посмотрите демонстрацию LBAC для источников данных метрик, чтобы узнать, как предоставить каждой команде чёткое представление о её собственных данных, при этом пользуясь преимуществами общего конвейера.
- Публикация Представляем SCIM рассказывает о том, как подключить Grafana к вашему провайдеру идентификации, что упрощает подключение новых пользователей и поддержание разрешений в актуальном состоянии по мере роста вашей организации.