使用角色管理访问权限
在 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:reader | alert.provisioning:read 和 alert.provisioning.secrets:read | 使用 Provisioning API 读取告警规则、告警实例、静默、联系点和通知策略,并使用导出功能(包含已解密的密钥)。 |
访问告警规则 Provisioning API:fixed:alerting.provisioning:writer | alert.provisioning:read 和 alert.provisioning:write | 使用 Provisioning API 管理组织中的所有告警规则、通知策略、联系点、模板。 |
设置 Provisioning 状态:fixed:alerting.provisioning.status:writer | alert.provisioning.provenance:write | 设置 Alerting 资源的 Provisioning 规则。应与其他常规角色(通知写入者和/或规则写入者)一起使用。 |
联系点读取者:fixed:alerting.receivers:reader | 范围 receivers:* 的 alert.notifications.receivers:read | 读取所有联系点。 |
联系点创建者:fixed:alerting.receivers:creator | alert.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:reader | alert.notifications.templates:read | 读取所有通知模板。 |
模板写入者:fixed:alerting.templates:writer | alert.notifications.templates:read , alert.notifications.templates:write , alert.notifications.templates:delete | 创建新通知模板并管理现有通知模板。 |
时间间隔读取者:fixed:alerting.time-intervals:reader | alert.notifications.time-intervals:read | 读取所有时间间隔。 |
时间间隔写入者:fixed:alerting.time-intervals:writer | alert.notifications.time-intervals:read , alert.notifications.time-intervals:write , alert.notifications.time-intervals:delete | 创建新时间间隔并管理现有时间间隔。 |
通知策略读取者:fixed:alerting.routes:reader | alert.notifications.routes:read | 读取所有时间间隔。 |
通知策略写入者:fixed:alerting.routes:writer | alert.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",
},
]
}
注意
如果您不使用简化通知路由,请删除最后两个权限。
分配角色
要分配角色,请完成以下步骤。
- 导航到管理 > 用户和访问 > 用户、团队或服务账号。
- 搜索要添加角色的用户、团队或服务账号。
- 选择要分配的角色。