通过 SaltStack Config 的基于角色的访问控制 (RBAC) 系统,可以一次为多个用户定义权限设置,因为一个角色的权限设置将应用于该角色中包含的所有用户。可以在用户界面的“角色”工作区中定义这些设置。

SaltStack Config 附带许多无法删除的内置角色。
  • 用户 - 分配给所有新本地用户、SSO 和 LDAP 用户的默认角色。用户角色包含执行许多基本功能所需的基本权限,如读取访问权限。分配有此角色的用户可以查看和运行作业,还可以查看某些工作节点和作业类型的作业历史记录、作业返回数据以及报告,但仅限于角色的资源访问设置。
  • 管理员 - 此角色需要访问比用户角色更高级的工具,因此可以访问“系统管理”。管理员可以查看(在某些情况下,还可以编辑)用户设置和 pillar 中的敏感数据。该角色可以创建、更新和删除文件、作业和目标等资源。管理员还可以在配置新节点时根据需要管理密钥。
  • 超级用户 - 超级用户可以在 SaltStack Config 中执行任何操作,包括访问“系统管理”。root 分配为超级用户角色。无法删除或克隆该角色。您可以向角色添加任何组或用户,但不能修改任何角色的其他设置。仅应在超级用户角色中添加高级用户,因为可以有效地绕过权限限制。

此外,还可以根据组织的独特需求创建自定义角色。

要授予角色完成任务的权限,必须定义允许的任务,同时还必须分配对资源或功能区的访问权限。权限是允许操作的宽泛范畴,而资源访问权限用于定义可以针对其完成操作的特定资源(例如作业或目标)。

某些资源类型和功能区的资源访问权限必须在 API (RaaS) 中定义,而不是在角色编辑器中定义。

创建角色后,可以选择克隆该角色、设置允许的任务以及分配对作业或目标的访问权限。

要在 SaltStack Config 中为基于角色的访问控制 (RBAC) 定义角色,必须定义允许的任务,同时还必须分配资源访问权限。任务是可以在用户界面中执行的特定操作,例如创建、编辑或运行作业。资源是环境的一个元素,例如特定主节点、工作节点、目标、文件数据等。

允许的任务是允许操作的宽泛范畴,而资源访问权限更精细,用于指定可以针对其运行操作的特定资源(例如作业或目标)。


显示 SaltStack Config 中的任务和资源之间关系的图表

在此示例中,角色可以使用以下权限设置在 Linux 目标组上运行 test.ping

  • 对 Linux 目标的读取访问权限
  • 对包含 test.ping 命令的作业的读取/运行访问权限

显示 test.ping 命令的任务与资源访问之间关系的图表。

任务

任务选项卡包括以下选项。

任务

说明

创建新目标并删除新目标

角色可以创建新目标。分配了此角色的用户可以编辑和删除自己创建的目标,或在资源访问权限下定义的其他目标。

目标是一个或多个 Salt 主节点中的一组工作节点,会对其应用作业的 Salt 命令。Salt 主节点也可以像工作节点一样进行管理,如果正在运行工作节点服务,也可以成为目标。请参见如何创建目标

修改支柱数据

角色可以查看、编辑和删除在 pillar 中存储的敏感信息。属于该角色的用户可以编辑或删除自己创建的支柱。如果为这些用户授予了资源访问权限(只能通过 API (RaaS) 实现),则他们还可以编辑或删除其他 pillar。

Pillar 是在 Salt 主节点上定义的数据结构,并使用目标传递到一个或多个工作节点。它们仅允许将机密的目标数据安全地发送到相关工作节点。请参见如何创建状态文件和 pillar 数据

修改文件服务器

角色可以查看文件服务器,并可以创建、编辑或删除文件。属于该角色的用户可以编辑或删除自己创建的文件。如果为这些用户授予了资源访问权限(只能通过 API (RaaS) 实现),则他们还可以编辑或删除其他文件。

文件服务器是存储 Salt 特定文件(如 top 文件或状态文件)以及可分发到工作节点的文件(如系统配置文件)的位置。请参见如何创建状态文件和 pillar 数据

在工作节点上运行任意命令

角色可以触发作业之外的命令,以便 Salt 主节点选取。角色不限于仅运行包含在给定作业定义中的命令。

工作节点是运行工作节点服务的节点,可以侦听 Salt 主节点发出的命令并执行请求的任务。

接受、删除或拒绝密钥

角色可以根据初始配置的需要接受、删除和拒绝工作节点密钥。

工作节点密钥允许在 Salt 主节点和 Salt 工作节点之间进行加密通信。

读取和修改用户、角色、权限

角色可以查看用户和关联数据,还可以编辑角色和权限设置。

注意:此任务仅适用于内置的管理员和超级用户角色。

角色用于为具有一组共同需求的多个用户定义权限。

在 Salt 主节点上运行命令

角色可以在 Salt 主节点上运行命令,例如,运行编排。

针对 Salt 主节点运行的命令也称为 Salt 运行程序。Salt 运行程序是用于在 Salt 主节点上执行便捷函数的模块。请参见如何创建作业。添加此权限后,角色能够使用“工作节点”选项卡下运行命令功能中的 salt-run 选项。

合规性 - 创建、编辑、删除和评估

角色可以创建、编辑、删除和评估 SaltStack SecOps Compliance 策略。除了授予此任务的权限外,还必须为希望角色对其执行操作的任何目标定义资源访问权限。例如,如果希望 OracleLinuxAdmin 角色为 OracleLinux 目标定义策略,则需要为此角色分配完成此任务的权限以及对 OracleLinux 目标的读取访问权限。

此任务不允许角色修复 SaltStack SecOps Compliance 策略。

SaltStack SecOps ComplianceSaltStack Config 的加载项,用于管理环境中所有系统的安全合规性状态。有关详细信息,请参见使用和管理 SaltStack SecOps

注:

需要 SaltStack SecOps 许可证。

合规性 - 修复

角色可以修复在 SaltStack SecOps Compliance 评估中检测到的任何不合规工作节点。

SaltStack SecOps ComplianceSaltStack Config 的加载项,用于管理环境中所有系统的安全合规性状态。有关详细信息,请参见使用和管理 SaltStack SecOps

注:

需要 SaltStack SecOps 许可证。

合规性 - 更新 SaltStack 内容

角色可以将更新下载到 SaltStack SecOps Compliance 安全库。

漏洞 - 创建、编辑、删除和评估

角色可以创建、编辑、删除和评估 SaltStack SecOps Vulnerability 策略。除了授予此任务的权限外,还必须为希望角色对其运行评估的任何目标定义资源访问权限。

此任务不允许角色修复 SaltStack SecOps Vulnerability 策略。

SaltStack SecOps ComplianceSaltStack Config 的加载项,用于管理环境中所有系统的安全合规性状态。有关详细信息,请参见使用和管理 SaltStack SecOps

注:

需要 SaltStack SecOps 许可证。

漏洞 - 修复

角色可以修复在 SaltStack SecOps Vulnerability 评估中检测到的漏洞。

SaltStack SecOps VulnerabilitySaltStack Config 的加载项,用于管理环境中所有系统上的漏洞。有关详细信息,请参见使用和管理 SaltStack SecOps

注:

需要 SaltStack SecOps 许可证。

资源访问权限

通过资源访问权限选项卡,可以定义目标和作业的资源访问权限。目标是一个或多个 Salt 主节点中的一组工作节点,会对其应用作业的 Salt 命令。Salt 主节点也可以像工作节点一样进行管理,如果正在运行工作节点服务,也可以成为目标。作业用于运行远程执行任务、应用状态和启动 Salt 运行程序。

注: 表中未定义的资源类型不需要任何特定的资源访问权限设置。
资源类型 访问级别
目标
  • 只读 - 角色可以查看指示的目标及其详细信息,但无法对其进行编辑或删除。
  • 读取/写入 - 角色可以查看和编辑指示的目标。
  • 读取/写入/删除 - 角色可以查看、编辑和删除指示的目标。
作业
  • 只读 - 角色可以查看指示的作业及其详细信息,但无法进行编辑或删除,也无法运行。
  • 读取/运行 - 角色可以查看和运行指示的作业。
  • 读取/运行/写入 - 角色可以查看和编辑指示的作业,以及运行该作业。
  • 读取/运行/写入/删除 - 角色可以查看、编辑和删除指示的作业,以及运行该作业。
其他资源类型 - 必须使用 API (RaaS) 定义对以下资源类型的访问
  • 文件服务器中的文件
  • Pillar 数据
  • 身份验证配置
在 API (RaaS) 中定义

要创建和定义角色,请执行以下操作:

前提条件

要定义用户角色,您必须具有管理员访问权限。

过程

  1. 从侧边菜单中,单击管理 > 角色
  2. 单击创建,然后输入角色的名称。
  3. 任务下,选择要授予角色的允许操作。
  4. 单击保存
  5. 要分配对作业或目标的访问权限,请从“角色”工作区中选择角色,在资源访问权限下找到所需的作业或目标,然后选择所需的访问级别。例如,要允许角色运行作业,请选择读取/运行,然后单击保存
  6. (可选)要包含组,请从“角色”工作区中选择角色,从中选择要包含的组,然后单击保存
    注: 角色权限可以累加。分配了多个角色的组中的用户可以访问每个角色授予的所有项目的组合。所选组(包括这些组中的所有用户)被授予角色设置中定义的所有允许任务和资源访问权限。
  7. (可选)要克隆角色,请从“角色”工作区中选择角色,单击克隆,输入角色的新名称,然后单击保存
    注: 默认情况下,克隆的角色从原始角色继承允许的任务。克隆的角色不会继承资源访问权限,必须单独进行定义。
  8. (可选)在某些情况下,可能需要配置更精细的权限。要授予高级权限,请单击管理 > 角色 > 高级,选择角色,然后选择/取消选择其他权限。单击保存。有关高级权限和项目类型的详细信息,请参见高级权限和项目类型
    注: 对于典型用户操作,建议的最小权限以蓝色突出显示。
    SaltStack Config 中典型用户的选定权限