基于角色的访问控制 (RBAC)
注意
适用于
RBAC 提供了一种标准化的方式来授予、更改和撤销访问权限,以便查看和修改 Grafana 资源,例如仪表盘、报告和管理设置。
- 规划您的 Grafana RBAC 推行策略
- 在 Grafana 中配置 RBAC
- 分配 Grafana RBAC 角色
- 管理 Grafana RBAC 角色
- 使用 Grafana 配置 RBAC
- 使用 Terraform 配置 RBAC
- Grafana RBAC 角色定义
- Grafana RBAC 权限、操作和范围
- 应用插件的 RBAC
- RBAC 故障排除
关于 RBAC
基于角色的访问控制 (RBAC) 提供了一种标准化的方式来授予、更改和撤销访问权限,以便用户可以查看和修改 Grafana 资源,例如用户和报告。RBAC 扩展了 Grafana OSS 中包含的基本角色,并允许更细粒度地控制用户的操作。
通过使用 RBAC,您可以为用户提供扩展基本角色的权限。例如,您可以使用 RBAC 来
- 修改现有的基本角色:例如,允许编辑者创建报告
- 为用户和团队分配固定角色:例如,授予工程团队创建数据源的能力
- 创建自定义角色:例如,一个允许用户创建和编辑仪表盘但不允许删除的角色
RBAC 角色包含多个权限,每个权限都有一个操作和一个范围
- 角色:
fixed:datasources:reader
- 权限
- 操作:
datasources:read
- 范围:
datasources:*
- 操作:
- 权限
有关 RBAC API 的信息,请参阅 RBAC API。
基本角色
基本角色是 Grafana OSS 中提供的标准角色。如果您已购买 Grafana Enterprise 许可证,您仍然可以使用基本角色。
Grafana 包括以下基本角色
- Grafana 管理员
- 组织管理员
- 编辑者
- 查看者
- 无
每个基本角色都由许多权限组成。例如,查看者基本角色包含以下权限等
操作:datasources.id:read, 范围:datasources:*
:使查看者能够查看数据源的 ID。操作:orgs:read
:使查看者能够查看其组织详情操作:annotations:read, 范围:annotations:*
:使查看者能够查看其他用户添加到仪表盘的注释。操作:annotations:create, 范围:annotations:type:dashboard
:使查看者能够向仪表盘添加注释。操作:annotations:write, 范围:annotations:type:dashboard
:使查看者能够修改仪表盘的注释。操作:annotations:delete, 范围:annotations:type:dashboard
:使查看者能够从仪表盘中移除注释。
注意
没有分配基本角色的 Grafana 用户无法存在。
None
角色不包含任何权限。
基本角色修改
您可以使用 RBAC 修改与任何基本角色关联的权限,这将改变查看者、编辑者或管理员可以执行的操作。您不能删除基本角色。
请注意,对任何基本角色的任何修改都不会传播到其他基本角色。例如,如果您修改查看者基本角色并授予额外权限,编辑者或管理员不会获得该额外权限。
有关与每个基本角色关联的权限的更多信息,请参阅基本角色定义。要与 API 交互并查看或修改基本角色权限,请参阅将基本角色名称映射到关联 UID 的表格。
注意
您不能使用服务账号通过 RBAC API 修改基本角色。要更新基本角色,您必须是 Grafana 管理员并使用基本认证进行请求。
对于 Cloud 客户,请联系支持人员重置角色。
固定角色
Grafana Enterprise 包含为您分配独立固定角色给用户、团队和服务账号的能力。这使得您比仅使用基本角色拥有更细粒度的用户权限控制。这些角色被称为“固定”,因为您不能更改或删除固定角色。您还可以创建自己的自定义角色;请参阅下面的自定义角色部分了解更多信息。
当基本角色不满足您的权限要求时,分配固定角色。例如,您可能希望拥有基本查看者角色的用户也能编辑仪表盘。或者,您可能希望拥有编辑者角色的任何人也能添加和管理用户。固定角色为用户提供了更细粒度的访问权限,以创建、查看和更新以下 Grafana 资源
要了解有关您可以为每个资源授予的权限的更多信息,请参阅RBAC 角色定义。
自定义角色
如果您是 Grafana Enterprise 客户,您可以创建自定义角色来管理用户权限,以满足您的安全要求。
自定义角色包含权限的唯一组合:操作和范围。操作定义了用户可以在 Grafana 资源上执行的动作。例如,teams.roles:read
操作允许用户查看与每个团队关联的角色列表。
范围描述了可以在何处执行操作。例如,teams:id:1
范围将用户的操作限制为 ID 为 1
的团队。当与 teams.roles:read
操作配对时,此权限禁止用户查看除团队 1
之外的团队的角色。
当固定角色不满足您的权限要求时,考虑创建自定义角色。
自定义角色创建
您可以使用以下任一方法创建、分配和管理自定义角色
- Grafana 配置:您可以使用 YAML 文件配置角色。有关使用配置创建自定义角色的更多信息,请参阅管理 RBAC 角色。有关使用配置将 RBAC 角色分配给用户或团队的更多信息,请参阅分配 RBAC 角色。
- RBAC API:作为替代方案,您可以使用 Grafana HTTP API 创建和管理角色。有关 HTTP API 的更多信息,请参阅RBAC API。
限制
如果您创建了一个名为 General
或 general
的文件夹,您不能使用 RBAC 管理其权限。
如果您为名为 General
或 general
的文件夹设置了文件夹权限,则启用 RBAC 时系统会忽略该文件夹。