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

任务

任务表示 SaltStack Config 中的常见用例。启用任务会为角色授予完成该任务所需的所有权限。

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

任务

说明

创建新目标并删除新目标

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

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

修改支柱数据

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

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

修改文件服务器

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

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

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

角色可以触发作业之外的命令,以便 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 VulnerabilitySaltStack Config 的加载项,用于管理环境中所有系统上的漏洞。请参见使用和管理 SaltStack SecOps

注:

需要 SaltStack SecOps 许可证。

漏洞 - 修复

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

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

注:

需要 SaltStack SecOps 许可证。

资源访问权限

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

下面介绍了不同的资源访问权限级别:

  • 目标
    • 只读 - 角色可以查看指示的目标及其详细信息,但无法对其进行编辑或删除。
    • 读取/写入 - 角色可以查看和编辑指示的目标。
    • 读取/写入/删除 - 角色可以查看、编辑和删除指示的目标。
  • 作业
    • 只读 - 角色可以查看指示的作业及其详细信息,但无法进行编辑或删除,也无法运行。
    • 读取/运行 - 角色可以查看和运行指示的作业。
    • 读取/运行/写入 - 角色可以查看和编辑指示的作业,以及运行该作业。
    • 读取/运行/写入/删除 - 角色可以查看、编辑和删除指示的作业,以及运行该作业。
  • 其他资源类型 - 必须使用 API (RaaS) 定义对以下资源类型的访问。如需帮助,请参见设置 API 权限或联系管理员。
    • 文件服务器中的文件
    • Pillar 数据
    • 身份验证配置

所有其他资源类型(不包括作业、目标和上面列出的资源类型)不需要任何特定的资源访问设置。

允许的任务和资源访问权限之间的区别。

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


权限资源概念

在以下示例中,角色可以在 Linux 目标组上运行 test.ping。该角色具有以下权限设置:

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

权限资源示例

默认情况下,克隆的角色从原始角色继承允许的任务。克隆的角色不会继承资源访问权限,必须单独进行定义。请参见分配对作业或目标的访问权限