Планирование стратегии интеграции IAM
В этом разделе описаны решения, которые следует принять при использовании провайдера управления идентификацией и доступом (IAM) для управления доступом к Grafana. IAM обеспечивает пользователям безопасный доступ к конфиденциальным данным и другим ресурсам, упрощая управление пользователями и аутентификацию.
Преимущества интеграции с провайдером IAM
Интеграция с провайдером IAM даёт следующие преимущества:
-
Управление пользователями: Предоставив Grafana доступ к вашей текущей системе управления пользователями, вы устраняете издержки на дублирование информации о пользователях и вместо этого получаете централизованное управление ролями и разрешениями пользователей на ресурсы Grafana.
-
Безопасность: Многие решения IAM предоставляют расширенные функции безопасности, такие как многофакторная аутентификация, RBAC и журналы аудита, которые помогают повысить безопасность вашей установки Grafana.
-
SSO: Правильная настройка Grafana с вашим текущим решением IAM позволяет пользователям получать доступ к Grafana с теми же учётными данными, которые они используют для других приложений.
-
Масштабируемость: Добавление и обновление пользователей в вашей базе данных пользователей немедленно отражаются в Grafana.
Чтобы спланировать интеграцию с Grafana, оцените текущие потребности вашей организации, требования и любые уже используемые решения IAM. Это включает размышления о том, как роли и разрешения будут сопоставляться с пользователями в Grafana и как пользователи могут быть сгруппированы для доступа к общим ресурсам.
Внутренние и внешние пользователи
В качестве первого шага определите, как вы хотите управлять пользователями, которые будут иметь доступ к Grafana.
Вы уже используете провайдера идентификации для управления пользователями? Если да, Grafana, возможно, сможет интегрироваться с вашим провайдером идентификации через одну из наших интеграций IdP. Список поддерживаемых провайдеров см. в документации Настройка аутентификации.
Если вы не заинтересованы в настройке внешнего провайдера идентификации, но всё же хотите ограничить доступ к вашему экземпляру Grafana, рассмотрите использование базовой аутентификации Grafana.
Наконец, если вы хотите, чтобы ваш экземпляр Grafana был доступен всем, вы можете включить анонимный доступ к Grafana. Информацию см. в документации по анонимной аутентификации.
Способы организации пользователей
Организуйте пользователей в подгруппы, которые имеют смысл для организации. Например:
- Безопасность: Разные группы пользователей или клиентов должны иметь доступ только к предназначенным для них ресурсам.
- Простота: Уменьшите объём доступных дашбордов и ресурсов.
- Отнесение затрат: Отслеживайте и выставляйте счета за затраты отдельным клиентам, отделам или подразделениям.
- Кастомизация: Каждая группа пользователей может иметь персонализированный опыт, например разные дашборды или цвета темы.
Пользователи в командах Grafana
Вы можете организовать пользователей в команды и назначать им роли и разрешения, отражающие текущую организацию. Например, вместо назначения пяти пользователям доступа к одному и тому же дашборду вы можете создать команду из этих пользователей и назначить разрешения на дашборд команде.
Пользователь может принадлежать к нескольким командам и быть участником или администратором данной команды. Участники команды наследуют разрешения от команды, но не могут редактировать саму команду. Администраторы команды могут добавлять участников в команду и обновлять её настройки, такие как название команды, участники команды, назначенные роли и предпочтения интерфейса.
Команды — идеальное решение для работы с подмножеством пользователей. Команды могут делиться ресурсами с другими командами.
Пользователи в организациях Grafana
Организации Grafana позволяют полностью изолировать ресурсы, такие как дашборды и источники данных. Пользователи могут быть членами одной или нескольких организаций, и они могут получить доступ только к ресурсам той организации, к которой они принадлежат.
Наличие нескольких организаций в одном экземпляре Grafana позволяет управлять пользователями в одном месте, полностью разделяя ресурсы.
Организации обеспечивают более высокую степень изоляции внутри Grafana, чем команды, и могут быть полезны в определённых сценариях. Однако, поскольку организациям не хватает масштабируемости и гибкости команд и папок, мы не рекомендуем использовать их в качестве способа группировки пользователей и ресурсов по умолчанию.
Обратите внимание, что Grafana Cloud не поддерживает более 1 организации на экземпляр.
Выбор между командами и организациями
Команды Grafana и организации Grafana служат схожим целям в платформе Grafana. Обе предназначены для помощи в группировке пользователей и управлении доступом к ресурсам.
Команды обеспечивают большую гибкость, поскольку ресурсы могут быть доступны нескольким командам, а создание и управление командами просты.
Напротив, организации обеспечивают большую изоляцию, чем команды, поскольку ресурсы не могут быть общими между организациями. Управлять ими сложнее, чем командами, поскольку вам приходится создавать и обновлять ресурсы для каждой организации по отдельности. Организации подходят для более крупных компаний или пользователей со сложными потребностями в доступе, требующими полного разделения ресурсов.
Доступ к внешним системам
Учитывайте необходимость взаимодействия между машинами M2M. Если какой-либо системе необходимо взаимодействовать с Grafana, убедитесь, что у неё есть надлежащий доступ.
Рассмотрите следующие сценарии:
Планирование отчётов: Периодически создавайте отчёты из Grafana через API отчётности и доставляйте их в различные каналы связи, такие как электронная почта, мгновенные сообщения, или храните их в общем хранилище.
Определение оповещений: Определите правила оповещений, которые будут срабатывать при выполнении определённого условия. Направляйте уведомления об оповещениях разным командам в соответствии с потребностями вашей организации.
Файл провижининга: Файлы провижининга можно использовать для автоматизации создания дашбордов, источников данных и других ресурсов.
Это лишь несколько примеров того, как Grafana может использоваться в сценариях M2M. Платформа отличается высокой гибкостью и может применяться в различных приложениях M2M, что делает её мощным инструментом для организаций, стремящихся получить представление о своих системах и устройствах.
Сервисные учётные записи
Вы можете использовать сервисную учётную запись для запуска автоматизированных рабочих нагрузок в Grafana, таких как провижининг дашбордов, конфигурация или создание отчётов. Создавайте сервисные учётные записи и токены сервисных учётных записей для аутентификации приложений, таких как Terraform, с помощью API Grafana.
Note
Сервисные учётные записи в конечном итоге заменят ключи API в качестве основного способа аутентификации приложений, взаимодействующих с Grafana.
Распространённым вариантом использования для создания сервисной учётной записи является выполнение операций для автоматизированных или запускаемых задач. Сервисные учётные записи можно использовать для:
- Планирования отчётов по конкретным дашбордам для доставки на ежедневной/еженедельной/ежемесячной основе
- Определения оповещений в вашей системе для использования в Grafana
- Настройки внешнего провайдера аутентификации SAML
- Взаимодействия с Grafana без входа в систему как пользователь
В Grafana Enterprise вы также можете использовать сервисные учётные записи в сочетании с управлением доступом на основе ролей для предоставления очень конкретных разрешений приложениям, взаимодействующим с Grafana.
Note
Сервисные учётные записи могут действовать только в той организации, для которой они созданы. Мы рекомендуем создавать сервисные учётные записи в каждой организации, если одна и та же задача нужна для нескольких организаций.
В следующем видео показано, как перейти с ключей API на сервисные учётные записи.
There’s supposed to be a video here, but for some reason there isn’t. Either we entered the id wrong (oops!), or Vimeo is down. If it’s the latter, we’d expect they’ll be back up and running soon. In the meantime, check out our blog!
Токены сервисных учётных записей
Для аутентификации с помощью HTTP API Grafana в качестве альтернативы паролю можно использовать случайно сгенерированную строку, известную как токен сервисной учётной записи.
При создании сервисной учётной записи её можно связать с несколькими токенами доступа. Эти токены доступа к сервису можно использовать так же, как ключи API, предоставляя средство программного доступа к HTTP API Grafana.
Вы можете создать несколько токенов для одной и той же сервисной учётной записи. Это может понадобиться, если:
- Несколько приложений используют одни и те же разрешения, но вы хотите проводить аудит или управлять их действиями отдельно.
- Вам нужно сменить или заменить скомпрометированный токен.
Note
В журналах аудита Grafana это всё равно будет отображаться как одна и та же сервисная учётная запись.
Токены доступа сервисных учётных записей наследуют разрешения от сервисной учётной записи.
Как работать с ролями?
Роли Grafana управляют доступом пользователей и сервисных учётных записей к конкретным ресурсам и определяют их разрешённые действия.
Вы можете назначать роли через пользовательский интерфейс или API, устанавливать их через Terraform или синхронизировать их автоматически через внешнего провайдера IAM.
Что такое роли?
Внутри организации Grafana установлены три основных роли организации — администратор организации, редактор и наблюдатель — которые определяют уровень доступа и разрешений пользователя, включая возможность редактирования источников данных или создания команд. У Grafana также есть пустая роль, с которой можно начать и в которую можно постепенно добавлять пользовательские разрешения. Чтобы быть членом любой организации, каждому пользователю должна быть назначена роль.
Кроме того, Grafana предоставляет роль администратора сервера, которая предоставляет доступ к ресурсам, влияющим на весь экземпляр, включая организации, пользователей и настройки всего сервера, и позволяет взаимодействовать с ними. Эта конкретная роль доступна только пользователям самостоятельно размещённых экземпляров Grafana. Это значимая роль, предназначенная для администраторов экземпляра Grafana.
Что такое разрешения?
Каждая роль состоит из набора разрешений, которые определяют задачи, которые пользователь может выполнять в системе. Например, роль Admin включает разрешения, позволяющие администратору создавать и удалять пользователей.
Grafana позволяет точно настраивать разрешения как для дашбордов, так и для папок, давая вам возможность контролировать, какие пользователи и команды могут просматривать, редактировать и администрировать их. Например, вы можете захотеть, чтобы определённый наблюдатель мог редактировать дашборд. Хотя этот пользователь может видеть все дашборды, вы можете предоставить ему доступ на обновление только одного из них.
В Grafana Enterprise вы также можете предоставлять гранулярные разрешения для источников данных, чтобы контролировать, кто может запрашивать их и редактировать.
Разрешения на дашборды, папки и источники данных можно задавать через пользовательский интерфейс или API либо провижинить через Terraform.
Управление доступом на основе ролей
Note
Доступно в Grafana Enterprise и Grafana Cloud.
Если вы считаете, что базовые роли администратора организации и администратора сервера слишком ограничены, может быть полезно применить управление доступом на основе ролей (RBAC). RBAC — это гибкий подход к управлению доступом пользователей к ресурсам Grafana, включая пользователей, источники данных и отчёты. Он позволяет легко предоставлять, изменять и отзывать доступ на чтение и запись для пользователей.
RBAC поставляется с предопределёнными ролями, такими как writer источников данных, который позволяет обновлять, читать или запрашивать все источники данных. Вы можете назначать эти роли пользователям, командам и сервисным учётным записям.
Кроме того, RBAC позволяет вам создавать персонализированные роли и изменять разрешения, авторизованные стандартными ролями Grafana.
Синхронизация пользователей между Grafana и провайдерами идентификации
При подключении Grafana к провайдеру идентификации важно думать не только о первоначальной настройке аутентификации. Следует также подумать о поддержке баз пользователей и ролей. Использование функций синхронизации команд и ролей Grafana гарантирует, что изменения, которые вы вносите в пользователя в вашем провайдере идентификации, будут отражены в назначении его роли и членстве в командах в Grafana.
Синхронизация команд
Синхронизация команд — это функция, которая позволяет синхронизировать команды или группы из вашего провайдера аутентификации с командами в Grafana. Это означает, что пользователи определённых команд или групп в LDAP, OAuth или SAML будут автоматически добавляться или удаляться как участники соответствующих команд в Grafana. Всякий раз, когда пользователь входит в систему, Grafana проверяет любые изменения в командах или группах провайдера аутентификации и соответствующим образом обновляет команды пользователя в Grafana. Это упрощает управление разрешениями пользователей в нескольких системах.
Note
Доступно в Grafana Enterprise и для клиентов на отдельных планах Grafana Cloud. Информацию о ценах см. на странице цены или свяжитесь с нашей командой продаж.
Note
Синхронизация команд происходит только при входе пользователя в систему. Однако если вы используете LDAP, можно включить активную фоновую синхронизацию. Это позволяет выполнять непрерывную синхронизацию команд.
Синхронизация ролей
Grafana может синхронизировать базовые роли из вашего провайдера аутентификации, сопоставляя атрибуты из провайдера идентификации с ролью пользователя в Grafana. Это означает, что пользователям с определёнными атрибутами, такими как роль, команда или членство в группе в LDAP, OAuth или SAML, может автоматически назначаться соответствующая роль в Grafana. Всякий раз, когда пользователь входит в систему, Grafana проверяет любые изменения в информации о пользователе, полученной от провайдера аутентификации, и соответствующим образом обновляет роль пользователя в Grafana.
Синхронизация организаций
Синхронизация организаций — это процесс привязки всех пользователей из организации в Grafana. Это делегирует роль управления пользователями провайдеру идентификации. Таким образом, нет необходимости управлять доступом пользователей из Grafana, поскольку провайдер идентификации будет опрашиваться всякий раз, когда новый пользователь пытается войти в систему.
С помощью синхронизации организаций вы можете назначать пользователей из групп провайдера идентификации соответствующим организациям Grafana. Эта функциональность похожа на синхронизацию ролей, но с дополнительным преимуществом указания организации, к которой принадлежит пользователь для конкретной группы провайдера идентификации. Обратите внимание, что эта функция доступна только для самостоятельно размещённых экземпляров Grafana, поскольку экземпляры Grafana Cloud имеют ограничение в одну организацию.
Note
Применяется следующее:
- Синхронизация организаций в настоящее время поддерживается только для SAML и LDAP.
- С помощью синхронизации организаций можно сопоставлять только базовые роли.
- При синхронизации с помощью синхронизации организаций вам не нужно приглашать пользователей через Grafana.