使用角色管理访问权限
在 Grafana Enterprise 和 Grafana Cloud 中,有基本、固定和自定义角色。
基本角色
有四个基本角色:管理员、编辑器、查看器和无基本角色。每个基本角色包含多个固定角色。
无基本角色允许您通过将固定角色分配给用户来进一步自定义访问权限,您也可以修改这些固定角色。您还可以创建自定义角色并将其分配给具有无基本角色的用户。
以下是基本角色的详细信息以及它们为 Grafana 警报提供的访问权限。
角色 | 访问权限 |
---|---|
管理员 | 对警报规则、通知资源(通知 API、联系点、模板、时间间隔、通知策略和静默)、以及预置的写入权限。 |
编辑器 | 对警报规则、通知资源(通知 API、联系点、模板、时间间隔、通知策略和静默)、以及预置的写入权限。 |
查看器 | 对警报规则、通知资源(通知 API、联系点、模板、时间间隔、通知策略和静默)的读取权限。 |
无基本角色 | 一个空白画布,可以分配固定或自定义角色,并更精确地构建权限。例如,如果您想授予用户查看警报规则但不能查看通知设置的权限,请添加无基本角色,然后添加固定角色规则阅读器。 |
固定角色
固定角色是多个权限的组。
与仅使用基本角色相比,固定角色为用户提供了更细粒度的访问权限,以创建、查看和更新警报资源。
以下是固定角色的详细信息以及它们为 Grafana 警报提供的访问权限。
UI 中的显示名称 / 固定角色 | 权限 | 描述 |
---|---|---|
静默写入器:fixed:alerting.instances:writer | 来自 fixed:alerting.instances:reader 的所有权限,以及alert.instances:create alert.instances:write 用于组织范围alert.instances.external:write 用于范围 datasources:* | 在 Grafana 和外部提供程序中添加和更新静默。 |
实例和静默阅读器:fixed:alerting.instances:reader | alert.instances:read 用于组织范围alert.instances.external:read 用于范围 datasources:* | 读取 Grafana 和外部提供程序中的警报实例和静默。 |
通知写入器:fixed:alerting.notifications:writer | 来自 fixed:alerting.notifications:reader 的所有权限,以及alert.notifications:write 用于组织范围alert.notifications.external:read 用于范围 datasources:* | 在 Grafana 和外部提供程序中添加、更新和删除通知策略和联系点。 |
通知阅读器:fixed:alerting.notifications:reader | alert.notifications:read 用于组织范围alert.notifications.external:read 用于范围 datasources:* | 读取 Grafana 和外部提供程序中的通知策略和联系点。 |
规则写入器:fixed:alerting.rules:writer | 来自 fixed:alerting.rules:reader 的所有权限,以及alert.rule:create alert.rule:write alert.rule:delete alert.silences:create alert.silences:write 用于范围 folders:* alert.rules.external:write 用于范围 datasources:* | 创建、更新和删除所有警报规则,并管理特定规则的静默。 |
规则阅读器:fixed:alerting.rules:reader | alert.rule:read 、alert.silences:read 用于范围 folders:* alert.rules.external:read 用于范围 datasources:* 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 和外部提供程序中的警报规则、警报实例、静默、联系点和通知策略。 |
通过预置 API 读取 + 导出密钥:fixed:alerting.provisioning.secrets:reader | alert.provisioning:read 和 alert.provisioning.secrets:read | 使用预置 API 读取警报规则、警报实例、静默、联系点和通知策略,并使用已解密密钥进行导出。 |
访问警报规则预置 API:fixed:alerting.provisioning:writer | alert.provisioning:read 和 alert.provisioning:write | 使用预置 API 管理组织中的所有警报规则、通知策略、联系点和模板。 |
设置预置状态:fixed:alerting.provisioning.status:writer | alert.provisioning.provenance:write | 设置警报资源的预置规则。应与其他常规角色(通知写入器和/或规则写入器)一起使用。 |
创建自定义角色
创建您自己的自定义角色来管理权限。自定义角色包含权限、操作和范围的独特组合。当基本角色和固定角色无法满足您的权限要求时,创建自定义角色。
有关创建自定义角色的更多信息,请参阅 创建自定义角色。
示例
以下示例让您了解如何组合 Grafana 报警的权限。
文件夹 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",
},
]
}
注意
如果您未使用简化通知路由,请删除最后两个权限。
分配角色
要分配角色,请完成以下步骤。
- 导航到管理 > 用户和访问 > 用户、团队或服务帐户。
- 搜索您要添加角色的用户、团队或服务帐户。
- 选择您要分配的角色。