这是存档文档v9.0.去最新版本

管理RBAC角色

本节介绍如何查看与角色关联的权限、创建自定义角色以及更新和删除角色。

以base64用户名为例:password基本授权。您不能在请求中使用授权令牌。

列出与角色关联的权限

使用一个得到命令查看与角色关联的操作和范围。有关查看每个角色的权限列表的详细信息,请参见找一个角色

查看基本角色关联的权限,请参考以下基本角色uid:

基本角色 UID
查看器 basic_viewer
编辑器 basic_editor
管理 basic_admin
Grafana管理 basic_grafana_admin

示例请求

curl——location——request GET '/api/access-control/roles/qQui_LCMk'——header '授权:Basic YWRtaW46cGFzc3dvcmQ='

示例响应

{"version": 2, "uid": "qQui_LCMk", "name": "fixed:users:writer", "displayName": "User writer", "description": "读取和更新Grafana中所有用户的所有属性和设置:更新用户信息,读取用户信息,创建或启用或禁用用户,使用户成为Grafana管理员,注销用户,更新用户的认证令牌,或更新所有用户的配额。","global": true, "permissions": [{"action": "org. "用户:添加”、“范围”:“用户:*”、“更新”:“2021 - 05 - 17 - t20:49:18 + 02:00”、“创建”:“2021 - 05 - 17 t20:49:18 + 02:00”},{“行动”:“org。用户:阅读”、“范围”:“用户:*”、“更新”:“2021 - 05 - 17 - t20:49:18 + 02:00”、“创建”:“2021 - 05 - 17 t20:49:18 + 02:00”},{“行动”:“org。用户:删除”、“范围”:“用户:*”、“更新”:“2021 - 05 - 17 - t20:49:18 + 02:00”、“创建”:“2021 - 05 - 17 t20:49:18 + 02:00”},{“行动”:“org。用户:写”、“范围”:“用户:*”、“更新”:“2021 - 05 - 17 - t20:49:18 + 02:00”、“创建”:“2021 - 05 - 17 - t20:49:18 + 02:00}],“更新”:“2021 - 05 - 17 - t20:49:18 + 02:00”、“创建”:“2021 - 05 - 13 - t16:24:26 + 02:00 "}

请参阅Rbac HTTP API欲知详情。

创建自定义角色

本节向您展示如何使用Grafana供应和HTTP API创建自定义RBAC角色。

当基本角色和固定角色不满足权限要求时,可以创建自定义角色。

在开始之前:

  • 计划您的RBAC部署策略
  • 确定要向自定义角色添加哪些权限。要查看操作和范围的列表,请参见RBAC权限、操作和作用域
  • 启用角色配置
  • 请确保具有创建自定义角色的权限。
    • 默认情况下,Grafana Admin角色具有创建自定义角色的权限。
    • Grafana管理员可以通过创建具有相关权限的自定义角色并添加权限:类型:委托范围。

使用预置创建自定义角色

基于文件的配置是一种可以用来创建自定义角色的方法。

  1. 打开YAML配置文件,找到角色部分。

  2. 请参考下表添加属性和值。

属性 描述
的名字 角色的人性化标识符,帮助管理员理解角色的目的。的名字是必选项,不能超过190个字符。我们建议您使用ASCII字符。角色名在组织内必须唯一。
uid 与角色关联的唯一标识符。通过UID可以修改或删除角色。您可以自己生成UID,也可以让Grafana为您生成一个UID。不能在同一个Grafana实例中使用相同的UID。
orgId 标识角色所属的组织。的默认组织ID如果不指定orgId
全球 全局角色不与任何特定的组织相关联,这意味着您可以在所有组织中重用它们。此设置将覆盖orgId
displayName UI中显示的人性化文本。角色显示名称不能超过190个ascii字符。对于固定角色,显示名称按指定显示。如果不设置显示名称,则显示名称将被替换“:”(冒号)与' '(空间)。
描述 描述角色提供的权限的人性化文本。
集团 在角色选择器中组织角色。
版本 一个正整数,定义角色的当前版本,以防止覆盖更新的更改。
隐藏的 隐藏角色不会出现在角色选择器中。
状态 角色状态。默认为现在,但如果设置为缺席该角色将被删除。
可以用来除状态吗缺席,强制删除角色及其所有分配。
要从中复制权限的可选角色列表。
权限 提供用户对Grafana资源的访问。有关权限列表,请参见RBAC允许操作和作用域.如果您不知道要分配哪些权限,您可以创建和分配没有任何权限的角色作为占位符。使用属性时,可以指定要删除的其他权限或权限状态到你的权限列表。
  1. 重新加载供应配置文件。

    有关在运行时重新加载供应配置的详细信息,请参阅重新加载供应配置

创建本地角色的示例如下:

—name: custom:users:writer description:“列出、创建或更新其他用户”。' version: 1 orgId: 1 permissions: - action: 'users:read' scope: 'global. 'Users:*' - action: ' Users:write' scope: 'global。用户:*' - action: '用户:create'

下面的示例创建一个隐藏的全局角色。的全球:真选项创建全局角色,而隐藏:真选项在角色选择器中隐藏角色。

—name: custom:users:writer description:“列出、创建或更新其他用户”。' version: 1 global: true hidden: true permissions: - action: 'users:read' scope: 'global. 'Users:*' - action: ' Users:write' scope: 'global。用户:*' - action: '用户:create'

下面的示例基于其他固定角色创建全局角色。的选项包含要从中复制权限的角色。许可状态:没有选项可用于指定要从副本中排除的权限。

#配置文件版本apiVersion: 2个角色:—name: custom:org。users:作者描述:从组织中列出并删除其他用户。' version: 1 global: true from: - name: 'fixed:org. '用户:阅读器' global: true - name: 'fixed:org。用户:writer全局:true权限:- action: org。用户:写' scope: '用户:*'状态:'absent' - action: 'org。用户:添加' scope: '用户:*'状态:'absent'

使用HTTP API创建自定义角色

下面的示例向您展示如何使用Grafana HTTP API创建自定义角色。有关HTTP API的更多信息,请参阅创建一个新的自定义角色

注意:您不能创建具有自己没有权限的自定义角色。例如,如果你只有用户:创建权限,则不能创建包含其他权限的角色。

下面的示例创建一个定义:用户:管理员角色,并将用户:创建行动起来吧。

示例请求

curl——location——request POST '/api/access-control/roles/' \——header '授权:Basic YWRtaW46cGFzc3dvcmQ=' \——header '内容类型:应用程序/json' \——data-raw '{"version": 1, "uid": "jZrmlLCkGksdka", "name": "custom:users:admin", "displayName": "custom users admin", "description": "我的自定义角色,赋予用户创建用户的权限","global": true, "permissions": [{"action": "users:create"}]}'

示例响应

{"version": 1, "uid": "jZrmlLCkGksdka", "name": "custom:users:admin", "displayName": "custom users admin", "description": "我的自定义角色,赋予用户创建用户的权限","global": true, "permissions": [{"action": "users:create" "updated": "2021-05-17T22:07:31.569936+02:00", "created": "2021-05-17T22:07:31.569935+02:00"}], "updated": "2021-05-17T22:07:31.564403+02:00", "created": "2021-05-17T22:07:31.564403+02:00"}

请参阅Rbac HTTP API欲知详情。

更新基本角色权限

如果默认的基本角色定义不符合您的需求,您可以修改基本角色的权限。

在开始之前:

  • 确定要从基本角色中添加或删除的权限。有关与基本角色关联的权限的详细信息,请参见RBAC角色定义

修改基本角色的权限。

  1. 打开YAML配置文件,找到角色部分。

  2. 请参考下表添加属性和值。

    属性 描述
    的名字 要更新的基本角色的名称。您可以指定uid而不是角色名。这个角色的名字或者是uid是必需的。
    orgId 标识角色所属的组织。全球可以用来指定它是一个全局角色。
    版本 标识角色的版本,以防止覆盖较新的更改。
    要从中复制权限的角色列表。
    权限>状态 权限的状态。你可以设置为缺席以确保它从复制列表中排除。
  3. 重新加载供应配置文件。

    有关在运行时重新加载供应配置的详细信息,请参阅重新加载供应配置

下面的示例修改Grafana管理基本角色权限。

  • 删除了向团队列出、授予和撤销角色的权限。
  • 新增Grafana文件夹读写权限。
#配置文件版本apiVersion: 2个角色:- name: 'basic:grafana_admin' global: true版本:3 from: - name: 'basic:grafana_admin' global: true权限:#权限删除-动作:'团队。角色:读为“范围:”团队:*状态:“缺席”-动作:“团队。角色:remove' scope: 'permissions:type:delegate' state: 'absent' - action: 'teams.roles:add' scope: 'permissions:type:delegate' state: 'absent' # Permissions to add - action: 'folders:read' scope: 'folder:*' - action: 'folders:write' scope: 'folder:*'

请注意:可以添加多个固定基本自定义的角色部分。他们的权限将被复制并添加到基本角色。
请注意例如:一定要增量要考虑的更改的角色版本。

您还可以使用API更改基本角色的权限。请参阅Rbac HTTP API欲知详情。

将基本角色重置为默认值

介绍重置基本角色的操作步骤。操作步骤

  1. 打开YAML配置文件,找到角色部分。

  2. 授予动作:“角色:写入”,范围:“权限:类型:升级”许可Grafana管理.请注意,默认情况下,此权限没有授予任何基本角色,因为用户可以通过基本角色权限重置获得比以前更多的权限。

    apiVersion: 2个角色:- name: 'basic:grafana_admin' global: true版本:3 from: - name: 'basic:grafana_admin' global: true permissions: #允许重置基本角色的权限- action: '角色:写入'范围:'权限:类型:升级'
  3. 作为一个Grafana管理,调用API端点将基本角色重置为默认值。请参阅Rbac HTTP API欲知详情。

使用Grafana provisioning删除自定义角色

当不再使用自定义角色时,可以删除自定义角色。删除自定义角色时,自定义角色将从所分配的用户和团队中删除。

在开始之前:

  • 确定要删除的角色。
  • 确保您可以访问YAML配置文件。

删除自定义角色。

  1. 打开YAML配置文件,找到角色部分。

  2. 请参考下表添加属性和值。

    属性 描述
    的名字 要删除的自定义角色的名称。您可以指定uid而不是角色名。这个角色的名字或者是uid是必需的。
    orgId 标识角色所属的组织。
    状态 设置为的角色状态缺席触发它的移除。
    当设置为真正的,即使存在分配,角色也会被删除。
  3. 重新加载供应配置文件。

    有关在运行时重新加载供应配置的详细信息,请参阅重新加载供应配置

使用实例删除自定义角色:

#配置文件版本apiVersion: 2个角色:- name: 'custom:reports:editor' orgId: 1 state: 'absent' force: true

您也可以使用API删除自定义角色。请参阅Rbac HTTP API欲知详情。