← 文章 / 未分类
signoz 18小时前 · 2026-09-18 00:46:12 · 1 阅读

角色

细粒度访问控制目前处于测试阶段(Beta)。

概述

角色是 SigNoz 访问控制的核心单元。角色将各项操作(transactions)打包在一起——当某个主体(principal)被分配角色后,将获得该角色包含的所有操作权限。

前置条件

Info

目前,用户角色分配仅能由具备 signoz-admin 角色的主体管理。针对用户资源的细粒度访问控制尚未上线。

托管角色

SigNoz 内置了四个托管角色:

  • SigNoz-Admin — 对所有 SigNoz 资源拥有完整管理权限。
  • SigNoz-Editor — 可创建和修改仪表盘、告警及管道等可观测性资源,但无法管理用户、角色或服务账号。
  • SigNoz-Viewer — 对可观测性数据和资源拥有只读权限。
  • SigNoz-Anonymous — 仅可访问公开资源(如公开共享的仪表盘),系统会自动分配此角色。
Warning

托管角色不可编辑或删除。打开托管角色详情时,其中的操作以只读模式展示。

设置 > 角色页面,显示托管角色和自定义角色
设置中的角色列表页 —— 包含托管角色和自定义角色

创建自定义角色

  1. 导航至 设置 > 角色
  2. 点击 Custom role,进入角色创建页面。
  3. 输入角色 名称(Name) 和可选的 描述(Description)。名称仅限使用小写字母和连字符,长度不超过 50 个字符(例如 service-ownerplatform-readonly)。
  4. Transaction Groups 部分配置该角色的操作权限(见下文 配置操作)。
  5. 点击 Create role
创建角色页面,展示 Name、Description 以及 Interactive 模式下的 Transaction Groups 编辑器
创建自定义角色并配置其 Transaction Groups
Info

角色名称创建后无法修改,请选择一个能体现角色用途的描述性名称。

配置 Transactions

角色的访问权限由其 Transaction Groups 定义,即角色在每个资源上授予的关系集合。在 Transaction Groups 区域顶部的切换开关中,可以选择两种配置模式:InteractiveJSON。两种模式可以互相切换,配置会保留(前提是 JSON 合法)。

Interactive 模式

Interactive 模式为每个资源展示一张卡片,例如 DashboardsRolesService AccountsAPI Keys 以及遥测相关资源。可以使用 Expand all / Collapse all 一次性展开或收起所有卡片。在每张卡片内,为每个操作(relation)设置作用范围:

  • All — 在该资源类型的所有实例上授予该事务。
  • Only selected — 仅在指定实例上授予该事务。输入每个实例的 selector(例如角色名或 Service Account ID),然后点击 Add。各资源使用的 selector 格式请参阅 Transactions Reference
  • None — 不在该资源类型的任何实例上授予该事务。

JSON 模式

切换到 JSON 模式可以直接编辑角色的事务配置,适合批量修改、在角色之间复制配置,或设置精细的 selector。编辑器会根据 transaction-group schema 进行校验,并内联显示解析和 schema 错误;可使用复制按钮复制当前 JSON。

每个条目是一个事务组,包含一个 objectGroup(资源及其 selector)和一个 relation。selector 设为 ["*"] 表示在所有实例上授予该关系;列出具体的 ID 或名称即可限定范围。

Copy
[
  {
    "objectGroup": {
      "resource": { "kind": "role", "type": "role" },
      "selectors": ["*"]
    },
    "relation": "read"
  },
  {
    "objectGroup": {
      "resource": { "kind": "serviceaccount", "type": "serviceaccount" },
      "selectors": ["my-service-account-id"]
    },
    "relation": "read"
  }
]
Info

如果 JSON 存在错误,切回交互模式时会提示你丢弃无效的更改。请先修复错误,否则无法保留编辑内容。

查看角色

点击列表中的任意角色以打开其详情页面。该页面会显示角色的描述、创建时间、最后修改时间以及其事务组(Transaction Groups)。使用列表/JSON 切换开关,可在卡片预览和同一配置的只读 JSON 视图之间切换。

  • 对于自定义角色,可以使用更新删除操作(受限于你自身的事务权限)。
  • 对于托管角色,事务为只读——更新操作不可用。
角色查看页面,在列表模式下显示描述、时间戳和事务组
角色查看页面 — 事务组预览

编辑自定义角色

  1. 打开该角色的详情页面。
  2. 点击更新
  3. 在交互模式或 JSON 模式下编辑描述并调整事务组。角色名称不可修改。
  4. 点击保存更改

未保存的编辑会显示未保存更改标识。如果带有未保存的更改而离开页面,系统会提示你丢弃更改或继续编辑。

角色编辑页面,包含可编辑的描述、事务组和保存更改按钮
编辑自定义角色 — 名称固定;描述和事务组可编辑

删除自定义角色

  1. 打开该角色的详情页面。
  2. 点击删除
  3. 在确认对话框中,点击删除角色
警告

仅当角色未分配给任何主体,且未在任何 SSO 组映射中使用时,才可删除该角色。删除前,请移除所有分配对象及引用该角色的 SSO 组映射。角色删除操作不可撤销。

后续步骤

原始来源: signoz

评论 (0)