3 用户组

概述

用户组既可以用于组织目的,也可以用于向数据分配权限。对主机组和模板组的查看和配置权限是分配给用户组的,而不是单个用户的。

通常有必要区分一组用户可访问的信息与另一组用户可访问的信息。这可以通过将用户分组,然后对主机组和模板组分配不同的权限来实现。

一个用户可以属于任意数量的组。

配置

要配置用户组:

  1. 转到 Users > User groups
  2. 单击 Create user group(或单击组名以编辑现有组)。
  3. 在表单中编辑组属性。

User group 选项卡包含通用组属性:

所有必填输入字段都以红色星号标记。

Parameter Description
Group name 唯一的组名。
Users 要将用户添加到组中,请开始输入现有用户的名称。当出现匹配用户名的下拉列表时,向下滚动并选择。
或者,您也可以单击 Select 按钮,在弹出窗口中选择用户。
Frontend access 该组用户的身份验证方式。
System default - 使用默认身份验证方法(在全局设置)
Internal - 使用 Zabbix 内部身份验证(即使全局使用 LDAP 身份验证)。
如果 HTTP 身份验证是全局默认值,则忽略此项。
LDAP - 使用 LDAP 身份验证(即使全局使用内部身份验证)。
如果 HTTP 身份验证是全局默认值,则忽略此项。
Disabled - 禁止该组访问 Zabbix 前端
LDAP server 选择用于对用户进行身份验证的 LDAP server
仅当 Frontend access 设置为 LDAP 或 System default 时,此字段才可用。
Multi-factor authentication 选择用于对用户进行身份验证的多因素身份验证 method
Default - 使用在 MFA 配置中设为默认的方法;如果已启用 MFA,则新用户组默认选中此项;
<Method name> - 使用所选方法(例如,“Zabbix TOTP”);
Disabled - 对该组禁用 MFA;如果未启用 MFA,则新用户组默认选中此项。
请注意,如果某个用户属于多个已启用 MFA 的用户组(或至少有一个组启用了 MFA),则适用以下身份验证规则:如果任一组使用 “Default” MFA 方法,则将使用该方法对用户进行身份验证;否则,将使用按字母顺序排列的第一个方法进行身份验证。
Enabled 用户组及其成员的状态。
Checked - 启用用户组和用户
Unchecked - 禁用用户组和用户
Debug mode 勾选此复选框可为用户启用 debug mode

Template permissions 选项卡允许指定用户组对模板组(以及由此对模板)数据的访问权限:

Host permissions 选项卡允许指定用户组对主机组(以及由此对主机)数据的访问权限:

单击 以选择模板/主机组 (无论是父组还是嵌套组)并为其分配权限。开始输入组名 (会出现匹配组的下拉列表),或者单击 Select 打开一个列出所有组的弹出窗口。

然后使用选项按钮为所选组分配权限。可用权限如下:

  • Read-write - 对组具有读写访问权限;
  • Read - 对组具有只读访问权限;
  • Deny - 拒绝访问该组。

如果同一个模板/主机组在多行中被添加且设置了不同权限,则将应用最严格的权限。

请注意,Super admin 用户可以强制嵌套组与父组具有相同级别的权限;这可以在 host/template 组配置表单中完成。

Template permissionsHost permissions 选项卡支持相同的一组参数。

当前对各组的权限显示在 Permissions 区块中,并且可以对其进行修改或移除。

如果某个用户组对主机具有 Read-write 权限,而对链接到该主机的模板具有 Deny 或没有权限, 则该组用户将无法编辑主机上的模板监控项,并且模板名称将显示为 Inaccessible template

Problem tag filter 选项卡允许基于标签设置权限,使用户组能够查看按标签名称和值筛选的问题:

单击 以选择主机组。 要选择要应用标签过滤器的主机组,请单击 Select 获取 现有主机组的完整列表,或者开始输入主机组名称以获取匹配组的下拉列表。只会显示主机组,因为问题标签过滤器不能应用于模板组。

然后可以从 All tags 切换到 Tag list,以设置用于过滤的特定标签及其值。 可以添加没有值的标签名,但不能添加没有名称的值。只有前三个标签(如果有值则包含值) 会显示在 Permissions 区块中;如果有更多标签,可以通过单击或悬停在 图标上查看。

标签过滤器允许将对主机组的访问与查看问题的 能力分离开来。

例如,如果数据库管理员只需要查看 “MySQL” 数据库问题,则需要先为数据库管理员创建一个用户组,然后指定 “target” 标签名和 “mysql” 值。

如果指定了 “target” 标签名而值字段留空, 则该用户组将看到所选主机组中所有带有标签名 “target” 的问题。 如果选择 All tags,则该用户组将看到指定主机组的所有 问题。

请确保标签名和标签值 填写正确,否则该用户组将看不到 任何问题。

下面来看一个用户属于多个所选用户组的示例。 在这种情况下,过滤将对标签使用 OR 条件。

User group A User group B Visible result for a user (member) of both groups
Tag filter
Host group Tag name Tag value Host group Tag name Tag value
Databases target mysql Databases target oracle target:mysql or target:oracle problems visible
Databases set to: All tags Databases target oracle All problems visible
Not configured in the Problem tag filter Databases target oracle target:oracle problems visible

添加过滤器(例如,某个主机组 “Databases” 的所有标签)后,将无法 查看其他主机组的问题。

来自多个用户组的访问

一个用户可以属于任意数量的用户组。这些组可能对主机或模板具有不同的访问权限。

因此,了解未授权用户最终能够访问哪些实体非常重要。例如,让我们考虑对于属于用户组 A 和 B 的用户,访问主机 X(位于主机组 1)在不同情况下会受到怎样的影响。

  • 如果组 A 仅对主机组 1 具有 Read 访问权限,而组 B 对主机组 1 具有 Read-write 访问权限,那么该用户将获得对 'X' 的 Read-write 访问权限。

"Read-write" 权限优先于 "Read" 权限。

  • 在与上述相同的场景中,如果 'X' 同时也位于主机组 2,而该主机组对组 A 或 B 是 denied 的,那么尽管对主机组 1 具有 Read-write 访问权限,'X' 的访问仍将 不可用
  • 如果组 A 未定义任何权限,而组 B 对主机组 1 具有 Read-write 访问权限,那么该用户将获得对 'X' 的 Read-write 访问权限。
  • 如果组 A 对主机组 1 具有 Deny 访问权限,而组 B 对主机组 1 具有 Read-write 访问权限,那么该用户对 'X' 的访问将被 denied

其他详情

  • 拥有对一个主机的读写访问权限的管理员级别用户,如果无法访问模板所属的模板组,则无法链接/取消链接模板。如果他对模板组具有读取访问权限,则可以将模板链接/取消链接到主机,但不会在模板列表中看到任何模板,也无法在其他位置操作模板。
  • 拥有对一个主机的读取访问权限的管理员级别用户将无法在配置部分的主机列表中看到主机;然而,主机的触发器在IT服务配置中仍然可访问。
  • 任何非超级管理员用户(包括“访客”)只要网络地图为空或仅包含图像,就可以查看该地图。当向地图中添加主机、主机组或触发器时,系统将遵循权限设置。
  • 如果明确“拒绝”访问相关主机,Zabbix server将不会向定义为动作操作接收者的用户发送通知。