使用角色管理访问
在 Grafana 企业版和 Grafana 云中,有基本、固定和自定义角色。
基本角色
有四个基本角色:管理员、编辑器、查看者和无基本角色。每个基本角色包含一系列固定角色。
无基本角色允许您通过为用户分配固定角色来进一步自定义访问权限,您也可以修改这些角色。您还可以为无基本角色的用户创建和分配自定义角色。
以下为基本角色的详细信息以及它们为 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 | 设置警报资源的配置规则。应与其他常规角色(通知写入者和/或规则写入者)一起使用。 |
如果您已启用 alertingApiServer
功能切换,则还可用一组额外的固定角色。
UI中的显示名称 / 固定角色 | 权限 | 描述 |
---|---|---|
联系点读取者: fixed:alerting.receivers:reader | alert.notifications.receivers:read 范围 receivers:* | 读取所有联系点。 |
联系点创建者: fixed:alerting.receivers:creator | alert.notifications.receivers:create | 创建一个新的联系点。用户将自动获得创建的联系点的全部访问权限。 |
联系点编写者: fixed:alerting.receivers:writer | alert.notifications.receivers:read 、alert.notifications.receivers:write 、alert.notifications.receivers:delete 对于 receivers:* 范围以及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 | 创建新的时间间隔并管理现有时间间隔。 |
创建自定义角色
创建自定义角色以管理权限。自定义角色包含权限、操作和范围的唯一组合。当基本角色和固定角色不符合您的权限要求时,请创建自定义角色。
有关创建自定义角色的更多信息,请参阅 创建自定义角色。
注意
不建议创建包含除receivers:*
范围外的alerting.notifications.receiver
操作的自定义角色。用于范围的 UID 不稳定,并且在联系点重命名时更改。
示例
以下示例为您展示了如何组合 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",
},
]
}
注意
如果您不使用简化通知路由,请删除最后两个权限。
分配角色
要分配角色,请完成以下步骤。
- 导航到“管理”>“用户和访问”>“用户”、“团队”或“服务帐户”。
- 搜索您要添加角色的用户、团队或服务帐户。
- 选择您要分配的角色。