Назначение ролей RBAC
Note
Доступно в Grafana Enterprise и Grafana Cloud.
В этом разделе вы узнаете, как использовать средство выбора ролей, провижининг и HTTP API для назначения фиксированных и пользовательских ролей пользователям и командам.
Назначение фиксированных ролей в UI с помощью средства выбора ролей
В этом разделе описано, как:
- Назначить фиксированную роль пользователю, команде или сервисной учётной записи в качестве администратора организации.
- Назначить фиксированную роль пользователю в качестве администратора сервера. Такой подход позволяет назначить фиксированную роль пользователю в нескольких организациях без необходимости переключать организации.
В обоих случаях назначение применяется только к пользователю, команде или сервисной учётной записи в затронутой организации и не затрагивает другие организации. Например, если вы предоставите пользователю роль Data source editor в организации Main, то пользователь сможет редактировать источники данных в организации Main, но не в других организациях.
Прежде чем начать:
-
Определите фиксированные роли, которые хотите назначить пользователю, команде или сервисной учётной записи.
Дополнительные сведения о доступных фиксированных ролях см. в разделе RBAC role definitions.
-
Убедитесь, что ваша собственная учётная запись имеет необходимые разрешения:
- Если вы назначаете разрешения пользователю, команде или сервисной учётной записи внутри организации, у вас должны быть разрешения администратора организации или администратора сервера.
- Если вы назначаете разрешения пользователю, который принадлежит нескольким организациям, у вас должны быть разрешения администратора сервера.
- Ваш пользователь Grafana также может назначать фиксированную роль, если у него есть либо фиксированная роль
fixed:roles:writer, назначенная той же организации, в которой вы назначаете RBAC пользователю, либо пользовательская роль с разрешениямиusers.roles:addиusers.roles:remove. - Ваша собственная учётная запись должна иметь роли, которые вы предоставляете. Например, если вы хотите предоставить команде роль
fixed:users:writer, эта роль должна быть и у вас.
Чтобы назначить фиксированную роль пользователю, команде или сервисной учётной записи:
-
Войдите в Grafana.
-
Переключитесь на организацию, в которой находится пользователь, команда или сервисная учётная запись.
Дополнительные сведения о переключении организаций см. в разделе Switch organizations.
-
В меню слева нажмите Administration, Users and access, а затем Users, Teams или Service accounts.
-
В столбце Role выберите фиксированную роль, которую хотите назначить пользователю, команде или сервисной учётной записи.
-
Нажмите Update.
Чтобы назначить фиксированную роль в качестве администратора сервера:
- Войдите в Grafana как администратор сервера.
- В меню слева нажмите Administration, Users and access, а затем Users.
- Нажмите на пользователя.
- В разделе Organizations нажмите Change role.
- Выберите роль внутри организации, которую хотите назначить пользователю.
- Нажмите Save.
Назначение фиксированных или пользовательских ролей с помощью HTTP API
В этом разделе описано, как:
- Назначить фиксированную роль пользователю, команде или сервисной учётной записи в качестве администратора организации.
Прежде чем начать:
-
Определите фиксированные роли, которые хотите назначить пользователю, команде или сервисной учётной записи.
Дополнительные сведения о доступных фиксированных ролях см. в разделе RBAC role definitions.
-
Убедитесь, что ваша собственная учётная запись имеет необходимые разрешения:
- Если вы назначаете разрешения пользователю, команде или сервисной учётной записи внутри организации, у вас должны быть разрешения администратора организации или администратора сервера.
- Если вы назначаете разрешения пользователю, который принадлежит нескольким организациям, у вас должны быть разрешения администратора сервера.
- Ваш пользователь Grafana также может назначать фиксированную роль, если у него есть либо фиксированная роль
fixed:roles:writer, назначенная той же организации, в которой вы назначаете RBAC пользователю, либо пользовательская роль с разрешениямиusers.roles:addиusers.roles:remove. - Ваша собственная учётная запись должна иметь роли, которые вы предоставляете. Например, если вы хотите предоставить команде роль
fixed:users:writer, эта роль должна быть и у вас.
Чтобы назначить фиксированную роль пользователю или сервисной учётной записи:
См. RBAC HTTP API for user role assignment.
Идентификатор сервисной учётной записи можно использовать вместо идентификатора пользователя.
Чтобы назначить фиксированную роль команде:
См. RBAC HTTP API for team role assignment.
Назначение фиксированных или пользовательских ролей команде с помощью провижининга
Вместо средства выбора ролей Grafana можно использовать файловый провижининг для назначения фиксированных ролей командам. Если у вас большое количество команд, провижининг может оказаться более простым подходом к назначению ролей и управлению ими.
Прежде чем начать:
- См. раздел Провижининг ролей
- Убедитесь, что команда, которой вы добавляете фиксированную роль, существует. Дополнительные сведения о создании команд см. в разделе Manage teams
Чтобы назначить роль команде:
-
Откройте файл конфигурации YAML.
-
Обратитесь к следующей таблице, чтобы добавить атрибуты и значения.
Дополнительные сведения об управлении пользовательскими ролями см. в разделе Создание пользовательских ролей с помощью провижининга.
-
Перезагрузите файл конфигурации провижининга.
Дополнительные сведения о перезагрузке конфигурации провижининга во время выполнения см. в разделе Reload provisioning configurations.
Следующий пример создаёт роль custom:users:writer и назначает её командам user writers и user admins вместе с ролью fixed:users:writer:
Следующий пример:
- Создаёт роль
custom:users:writer. - Назначает роли
custom:users:writerиfixed:users:writerкомандамuser adminsиuser writers.
# config file version
apiVersion: 2
# Roles to insert/update in the database
roles:
- name: 'custom:users:writer'
description: 'List/update other users in the organization'
version: 1
global: true
permissions:
- action: 'org.users:read'
scope: 'users:*'
- action: 'org.users:write'
scope: 'users:*'
# Assignments to teams
teams:
- name: 'user writers'
orgId: 1
roles:
# Custom role assignment
- name: 'custom:users:writer'
global: true
# Fixed role assignment
- name: 'fixed:users:writer'
global: true
- name: 'user admins'
orgId: 1
roles:
- name: 'custom:users:writer'
global: true
- name: 'fixed:users:writer'
global: true
Note: роли не обязательно должны быть определены в файлах конфигурации провижининга, чтобы их можно было назначить. Если роли существуют в базе данных, их можно назначить.
Удаление назначения роли у команды:
Если вы хотите удалить назначение у команды, добавьте state: absent в раздел teams > roles и перезагрузите файл конфигурации.
Следующий пример:
- Создаёт роль
custom:users:writer - Назначает роли
custom:users:writerиfixed:users:writerкомандеuser admins - Удаляет назначения
custom:users:writerиfixed:users:writerу командыuser writers, если такие назначения существуют.
# config file version
apiVersion: 2
# Roles to insert/update in the database
roles:
- name: 'custom:users:writer'
description: 'List/update other users in the organization'
version: 1
global: true
permissions:
- action: 'org.users:read'
scope: 'users:*'
- action: 'org.users:write'
scope: 'users:*'
# Assignments to teams
teams:
- name: 'user writers'
orgId: 1
roles:
- name: 'fixed:users:writer'
global: true
state: 'absent' # Remove assignment
- name: 'custom:users:writer'
global: true
state: 'absent' # Remove assignment
- name: 'user admins'
orgId: 1
roles:
- name: 'fixed:users:writer'
global: true
- name: 'custom:users:writer'
global: true
Note: роли не обязательно должны быть определены в файлах конфигурации провижининга, чтобы их можно было отозвать. Если роли существуют в базе данных, их можно отозвать.