基于角色的访问控制(RBAC),以前被称为细粒度访问控制(FGAC),是Grafana的新授权系统。它在一年前的Grafana 8.0版本中作为测试版功能推出,现在我们很高兴将其推广到通用状态。随着Grafana9.0在2022年GrafanaCONline期间的发布,所有实例都默认启用了RBAC。(开始使用Grafana 9的最简单方法?今天就注册一个免费的Grafana云账户)。
如果你正在运行Grafana,作为大量团队和用户的监控服务的一部分,你可能希望你对Grafana的访问设置有更多的控制。例如,你可能希望允许所有组织编辑创建报告,或允许某个特定团队的所有成员管理警报。或者,当你只需要一个API密钥来访问管理功能的一个子集时,你对授予组织管理员权限感到不安。
我们听取了您的反馈意见,并在今年努力为您提供一个更加灵活和安全的访问控制系统,这样您就可以高枕无忧,知道正确的人和应用程序可以做他们需要做的一切--没有他们不应该做的。
如果你正在使用Grafana的开源版本,从传统的访问控制到RBAC的过渡是无缝的,你不应该注意到你的访问设置有任何不同。你仍然可以为你的用户和服务账户分配查看者、编辑和管理员角色,定制仪表盘和文件夹权限,并使用团队。
作为Grafana企业版或Grafana云版的用户,你还将体验到向RBAC的无缝过渡,所有传统的权限都会自动迁移过来。
此外,Grafana企业版和Grafana云高级版用户还可以使用额外的RBAC功能,允许你完全定制每个用户对当前由RBAC覆盖的每个Grafana资源的访问级别。你可以给用户、团队和服务账户分配RBAC角色,如Dashboard Writer、Team Creator或Data Source Reader。你也可以通过以适合你的方式组合行动和作用域来创建自定义角色。例如,一个包含teams:createpermission 和org.users:readpermission 的作用域users:id:10,users:id:11...的自定义角色将允许把用户的一个子集归入团队。
为了进一步管理他们的RBAC设置,Grafana企业版和Grafana云高级版用户还可以通过Grafana配置(见下面的例子)或Terraform配置角色和角色分配;使用Grafana用户界面中的RBAC角色选择器;以及使用RBAC API。
看看我们的RBAC推广策略规划指南,了解更多关于如何充分利用RBAC的信息:
- 扩展的资源覆盖范围- 所有主要的Grafana资源现在都被RBAC覆盖,包括仪表盘、文件夹、用户、团队和数据源。我们为这些资源创建了方便的读者和作者角色,你也可以定义你自己的自定义角色。我们的文档包含了RBAC和RBAC角色定义 所涵盖的资源的完整列表。
- 对用户、团队和服务账户的角色分配- 你现在可以直接对用户、团队和服务账户进行角色分配。这使你能够完全控制每个用户被授权做什么,同时提供一个简单的方法来管理一组用户或像Terraform这样的集成应用程序的权限。
- RBAC的审计日志- 任何对RBAC端点的调用现在都被登记在审计日志中,所以你有一个权限变化的记录,以及谁执行了这些变化。
- 经过实战检验--RBAC已经在Grafana的大规模安装中使用了整整一年,以确保这一过渡尽可能的安全和方便。
- 角色选择器- 你现在可以直接从Grafana的用户界面查看和管理用户、团队和服务账户的角色分配,如下图所示。按照我们的指南,学习如何使用角色选择器来分配角色。
Grafana 9.0版本包含了几个针对RBAC的突破性变化:
- 内置角色现在被称为基本角色,而且它们现在由权限而不是角色组成。
- Terraformbuiltin_role_assignment资源将消失。
- 基本角色不再支持权限的继承。以前,当Viewer基本角色的权限被修改时,它会被传播到Editor和Admin基本角色。现在不是这种情况了。例如,如果你想授予查看者和编辑者对仪表盘的编辑权限,你需要把这个权限分配给两个基本角色,而不是只给查看者角色。
- Grafana供应有一个新的模式,请参考Grafana文档以了解更多信息。
- 一些RBAC动作已经被重新命名,以提高动作名称的一致性。我们已经为所有使用传统操作名称的数据库条目提供了迁移,但配置文件和脚本将必须由用户更新。这一变化还意味着,如果Grafana从9.0降级到较低的版本,一些RBAC权限将无法正确解决。
我们有一个令人兴奋的路线图,其中充满了Grafana中的RBAC改进。下面是对未来内容的预览:
- 应用程序插件的RBAC- 我们的下一步是促进控制Grafana云插件的访问,如Grafana OnCall和合成监控的RBAC。
- 简化用户、团队和服务账户创建流程- 目前的资源创建流程是一个多步骤的过程。你首先需要创建资源,然后为其分配角色。我们希望通过在创建用户时呈现角色选择器来使这个工作流程更加顺畅。
- 简化范围--我们想让对一组实体(如数据源、服务账户和报告)的权限范围变得更容易。这将涉及到思考实体分组的方式,类似于目前文件夹为仪表盘提供的方式和团队为用户提供的方式,然后扩大我们的范围的实现。
- RBAC角色同步--我们希望允许Grafana企业版和Grafana云高级版用户将外部认证供应商的角色映射到RBAC角色,类似于目前Grafana的查看器、编辑器和管理员的角色映射。