菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 告警breadcrumb arrow 附加配置breadcrumb arrow 配置 RBACbreadcrumb arrow 使用角色管理访问权限
Enterprise Grafana Cloud

使用角色管理访问权限

在 Grafana Enterprise 和 Grafana Cloud 中,有基本角色 (Basic)、固定角色 (Fixed) 和自定义角色 (Custom)。

基本角色

有四种基本角色:Admin、Editor、Viewer 和 No basic role。每个基本角色都包含多个固定角色。

“无基本角色”(No basic role) 允许您通过为用户分配固定角色来进一步自定义访问权限,您也可以修改这些固定角色。您还可以为“无基本角色”的用户创建和分配自定义角色。

下面是基本角色及其为 Grafana Alerting 提供的访问权限的详细信息。

角色访问权限
Admin对告警规则、通知资源(通知 API、联系点、模板、时间间隔、通知策略和静默)以及 Provisioning 的写访问权限。
Editor对告警规则、通知资源(通知 API、联系点、模板、时间间隔、通知策略和静默)以及 Provisioning 的写访问权限。
Viewer对告警规则、通知资源(通知 API、联系点、模板、时间间隔、通知策略和静默)的读访问权限。
无基本角色一个空白画布,可用于分配固定角色或自定义角色,并更精确地制定权限。例如,如果您想授予用户查看告警规则但不能查看通知设置的能力,请添加“无基本角色”,然后添加固定角色“规则读取者”(Rules reader)。

固定角色

固定角色是多个权限的组合。

与仅使用基本角色相比,固定角色为用户提供了更精细的访问权限,以便创建、查看和更新 Alerting 资源。

下面是固定角色及其为 Grafana Alerting 提供的访问权限的详细信息。

UI 中显示名称 / 固定角色权限描述
静默写入者:fixed:alerting.instances:writer来自 fixed:alerting.instances:reader 的所有权限,以及
alert.instances:create
组织范围的 alert.instances:write
范围 datasources:*alert.instances.external:write
在 Grafana 和外部提供商中添加和更新静默。
实例和静默读取者:fixed:alerting.instances:reader组织范围的 alert.instances:read
范围 datasources:*alert.instances.external:read
在 Grafana 和外部提供商中读取告警实例和静默。
通知写入者:fixed:alerting.notifications:writer来自 fixed:alerting.routes:writer 的所有权限,
fixed:alerting.receivers:creator,
fixed:alerting.receivers:writer,
fixed:alerting.templates:writer,
fixed:alerting.time-intervals:writer 以及
组织范围的 alert.notifications:write
范围 datasources:*alert.notifications.external:read
在 Grafana 和外部提供商中添加、更新和删除通知策略和联系点。
通知读取者:fixed:alerting.notifications:reader来自 fixed:alerting.routes:reader 的所有权限,
fixed:alerting.receivers:reader,
fixed:alerting.templates:reader,
fixed:alerting.time-intervals:reader 以及
组织范围的 alert.notifications:read
范围 datasources:*alert.notifications.external:read
在 Grafana 和外部提供商中读取通知策略和联系点。
规则写入者:fixed:alerting.rules:writer来自 fixed:alerting.rules:reader 的所有权限,以及
alert.rule:create
alert.rule:write
alert.rule:delete
alert.silences:create
范围 folders:*alert.silences:write
范围 datasources:*alert.rules.external:write
创建、更新和删除所有告警规则,并管理规则特定的静默。
规则读取者:fixed:alerting.rules:reader范围 folders:*alert.rule:read, alert.silences:read
范围 datasources:*alert.rules.external:read
alert.notifications.time-intervals:read
alert.notifications.receivers:list
在 Grafana 和外部提供商中读取所有告警规则和规则特定的静默。
完全访问权限:fixed:alerting:writer来自 fixed:alerting.rules:writer 的所有权限
fixed:alerting.instances:writer
fixed:alerting.notifications:writer
在 Grafana 和外部提供商中添加、更新和删除告警规则、静默、联系点和通知策略。
完全只读访问权限:fixed:alerting:reader来自 fixed:alerting.rules:reader 的所有权限
fixed:alerting.instances:reader
fixed:alerting.notifications:reader
在 Grafana 和外部提供商中读取告警规则、告警实例、静默、联系点和通知策略。
通过 Provisioning API 读取 + 导出密钥:fixed:alerting.provisioning.secrets:readeralert.provisioning:readalert.provisioning.secrets:read使用 Provisioning API 读取告警规则、告警实例、静默、联系点和通知策略,并使用导出功能(包含已解密的密钥)。
访问告警规则 Provisioning API:fixed:alerting.provisioning:writeralert.provisioning:readalert.provisioning:write使用 Provisioning API 管理组织中的所有告警规则、通知策略、联系点、模板。
设置 Provisioning 状态:fixed:alerting.provisioning.status:writeralert.provisioning.provenance:write设置 Alerting 资源的 Provisioning 规则。应与其他常规角色(通知写入者和/或规则写入者)一起使用。
联系点读取者:fixed:alerting.receivers:reader范围 receivers:*alert.notifications.receivers:read读取所有联系点。
联系点创建者:fixed:alerting.receivers:creatoralert.notifications.receivers:create创建新的联系点。用户自动获得对创建的联系点的完全访问权限。
联系点写入者:fixed:alerting.receivers:writer范围 receivers:*alert.notifications.receivers:read, alert.notifications.receivers:write, alert.notifications.receivers:delete 以及
alert.notifications.receivers:create
创建新的联系点并管理所有现有联系点。
模板读取者:fixed:alerting.templates:readeralert.notifications.templates:read读取所有通知模板。
模板写入者:fixed:alerting.templates:writeralert.notifications.templates:read, alert.notifications.templates:write, alert.notifications.templates:delete创建新通知模板并管理现有通知模板。
时间间隔读取者:fixed:alerting.time-intervals:readeralert.notifications.time-intervals:read读取所有时间间隔。
时间间隔写入者:fixed:alerting.time-intervals:writeralert.notifications.time-intervals:read, alert.notifications.time-intervals:write, alert.notifications.time-intervals:delete创建新时间间隔并管理现有时间间隔。
通知策略读取者:fixed:alerting.routes:readeralert.notifications.routes:read读取所有时间间隔。
通知策略写入者:fixed:alerting.routes:writeralert.notifications.routes:read alert.notifications.routes:write创建新时间间隔并管理现有时间间隔。

创建自定义角色

创建自己的自定义角色来管理权限。自定义角色包含权限、操作和范围的独特组合。当基本角色和固定角色无法满足您的权限需求时,请创建自定义角色。

有关创建自定义角色的更多信息,请参阅创建自定义角色

注意

不建议创建包含 alerting.notifications.receiver 操作且范围不是 receivers:* 的自定义角色。范围内使用的 UID 不稳定,并且在联系点重命名时会发生变化。

示例

以下示例向您展示了如何组合 Grafana Alerting 的权限。

文件夹 F 中对告警规则具有读取权限的自定义角色

PUT access-control/roles
{
	"name": "custom:alert_rules_reader",
	"displayName": "Alert rule reader in folder F",
	"description": "Read access to rules in folder F that use DS1 and DS2",
	"permissions": [
    	{
        	"action": "alert.rules:read",
        	"scope": "folders:uid:UID_F"
    	},
    	{
        	"action": "folders:read",
        	"scope": "folders:uid:UID_F"
    	}
	]
}

具有告警规则写入权限且使用简化路由的自定义角色

PUT access-control/roles
{
	"name": "custom:alert_rules_updater",
	"displayName": "Alert rules editor in folder F",
	"description": "Edit access to rules in folder F that use DS1 and DS2",
	"permissions": [
    	{
        	"action": "alert.rules:read",
        	"scope": "folders:uid:UID_F"
    	},
    	{
        	"action": "alert.rules:read",
        	"scope": "folders:uid:UID_F"
    	},
    	{
        	"action": "alert.rules:write",
        	"scope": "folders:uid:UID_F"
    	},
    	{
        	"action": "alert.rules:create",
        	"scope": "folders:uid:UID_F"
    	},
    	{
        	"action": "alert.notifications.receivers:list",
    	},
{
        	"action": "alert.notifications.time-intervals:read",
    	},
	]
}

注意

如果您不使用简化通知路由,请删除最后两个权限。

分配角色

要分配角色,请完成以下步骤。

  1. 导航到管理 > 用户和访问 > 用户、团队或服务账号。
  2. 搜索要添加角色的用户、团队或服务账号。
  3. 选择要分配的角色。