通过 SaltStack Config 的基于角色的访问控制 (RBAC) 系统,可以一次为多个用户定义权限设置,因为一个角色的权限设置将应用于该角色中包含的所有用户。可以在用户界面的“角色”工作区中定义这些设置。
- 用户 - 分配给所有新本地用户、SSO 和 LDAP 用户的默认角色。用户角色包含执行许多基本功能所需的基本权限,如读取访问权限。分配有此角色的用户可以查看和运行作业,还可以查看某些工作节点和作业类型的作业历史记录、作业返回数据以及报告,但仅限于角色的资源访问设置。
- 管理员 - 此角色需要访问比用户角色更高级的工具,因此可以访问“系统管理”。管理员可以查看(在某些情况下,还可以编辑)用户设置和 pillar 中的敏感数据。该角色可以创建、更新和删除文件、作业和目标等资源。管理员还可以在配置新节点时根据需要管理密钥。
- 超级用户 - 超级用户可以在 SaltStack Config 中执行任何操作,包括访问“系统管理”。
root
分配为超级用户角色。无法删除或克隆该角色。您可以向角色添加任何组或用户,但不能修改任何角色的其他设置。仅应在超级用户角色中添加高级用户,因为可以有效地绕过权限限制。
此外,还可以根据组织的独特需求创建自定义角色。
要授予角色完成任务的权限,必须定义允许的任务,同时还必须分配对资源或功能区的访问权限。权限是允许操作的宽泛范畴,而资源访问权限用于定义可以针对其完成操作的特定资源(例如作业或目标)。
某些资源类型和功能区的资源访问权限必须在 API (RaaS) 中定义,而不是在角色编辑器中定义。
创建角色后,可以选择克隆该角色、设置允许的任务以及分配对作业或目标的访问权限。
要在 SaltStack Config 中为基于角色的访问控制 (RBAC) 定义角色,必须定义允许的任务,同时还必须分配资源访问权限。任务是可以在用户界面中执行的特定操作,例如创建、编辑或运行作业。资源是环境的一个元素,例如特定主节点、工作节点、目标、文件数据等。
允许的任务是允许操作的宽泛范畴,而资源访问权限更精细,用于指定可以针对其运行操作的特定资源(例如作业或目标)。
在此示例中,角色可以使用以下权限设置在 Linux 目标组上运行 test.ping
:
- 对 Linux 目标的读取访问权限
- 对包含
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 策略。除了授予此任务的权限外,还必须为希望角色对其执行操作的任何目标定义资源访问权限。例如,如果希望 此任务不允许角色修复 SaltStack SecOps Compliance 策略。 SaltStack SecOps Compliance 是 SaltStack Config 的加载项,用于管理环境中所有系统的安全合规性状态。有关详细信息,请参见使用和管理 SaltStack SecOps。
注:
需要 SaltStack SecOps 许可证。 |
合规性 - 修复 |
角色可以修复在 SaltStack SecOps Compliance 评估中检测到的任何不合规工作节点。 SaltStack SecOps Compliance 是 SaltStack Config 的加载项,用于管理环境中所有系统的安全合规性状态。有关详细信息,请参见使用和管理 SaltStack SecOps。
注:
需要 SaltStack SecOps 许可证。 |
合规性 - 更新 SaltStack 内容 |
角色可以将更新下载到 SaltStack SecOps Compliance 安全库。 |
漏洞 - 创建、编辑、删除和评估 |
角色可以创建、编辑、删除和评估 SaltStack SecOps Vulnerability 策略。除了授予此任务的权限外,还必须为希望角色对其运行评估的任何目标定义资源访问权限。 此任务不允许角色修复 SaltStack SecOps Vulnerability 策略。 SaltStack SecOps Compliance 是 SaltStack Config 的加载项,用于管理环境中所有系统的安全合规性状态。有关详细信息,请参见使用和管理 SaltStack SecOps。
注:
需要 SaltStack SecOps 许可证。 |
漏洞 - 修复 |
角色可以修复在 SaltStack SecOps Vulnerability 评估中检测到的漏洞。 SaltStack SecOps Vulnerability 是 SaltStack Config 的加载项,用于管理环境中所有系统上的漏洞。有关详细信息,请参见使用和管理 SaltStack SecOps。
注:
需要 SaltStack SecOps 许可证。 |
资源访问权限
通过资源访问权限选项卡,可以定义目标和作业的资源访问权限。目标是一个或多个 Salt 主节点中的一组工作节点,会对其应用作业的 Salt 命令。Salt 主节点也可以像工作节点一样进行管理,如果正在运行工作节点服务,也可以成为目标。作业用于运行远程执行任务、应用状态和启动 Salt 运行程序。
资源类型 | 访问级别 |
---|---|
目标 |
|
作业 |
|
其他资源类型 - 必须使用 API (RaaS) 定义对以下资源类型的访问
|
在 API (RaaS) 中定义 |
要创建和定义角色,请执行以下操作:
前提条件
要定义用户角色,您必须具有管理员访问权限。