SaltStack - 访问控制系统
访问控制系统为用户或组提供选项,以执行具有权限的任务。Salt 访问控制系统用于配置对非管理控制接口的访问。您可以将此过程应用于所有系统。此控制可帮助非管理用户执行 Salt 命令。
Salt 接口有以下三种类型 −
- 发布者 ACL 系统
- 外部身份验证系统
- 对等系统
让我们详细了解每个接口。
发布者 ACL 系统
发布者 ACL 系统允许除 root 之外的用户从主节点对 minions 执行 Salt 命令。发布者 ACL 系统在主配置文件中通过 publisher_acl 配置选项进行配置。其定义如下 −
publisher_acl: user1: - .* user2: - web*: - test.* - pkg.*
此处,
user1 可以执行任何操作。
user2 可以使用 test 和 pkg,但只能在"web*"minions 上使用。
外部身份验证系统
外部身份验证系统 用于通过外部授权系统(如 PAM、LDAP 等)提供对特定 minions 执行 salt 命令的访问权限。此配置文件在主文件中定义,如下所述。
external_auth: pam: user1: - 'web*': - test.* - network.* user2: - .*
此处,
user1 被允许在与 web* 目标匹配的 minions 上执行 test 和 network 模块 中的函数。
user2 被允许执行所有函数。
在命令中启用外部身份验证系统
Salt 服务器提供了一个选项'-a'来启用外部身份验证。
salt -a pam web\* test.ping
此处,-a pam 选项用于启用 PAM 外部身份验证。每当我们执行命令时,Salt Server 都会询问身份验证详细信息。为了限制 Salt Server 仅在第一次询问身份验证详细信息,我们可以使用 T 选项。此 -T 选项 会缓存接下来 12 小时的身份验证详细信息(默认设置),并使用它来对用户进行身份验证。
salt -T -a pam web\* test.ping
对等系统
Salt minions 可以使用对等接口传递命令。对等接口通过主配置文件进行配置,以允许 minions 使用 peer 配置部分从主服务器发送命令,或允许 minions 使用 peer_run 配置从主服务器执行运行器。
让我们详细了解这两种配置。
对等配置
主文件中要定义的简单配置如下 −
peer: .*: - .*
此处,它启用了所有 minions 的通信,但仅建议在非常安全的环境中使用。
要将 minions 分配给特定 ID,需要定义配置,如下所示:peer −
.*domain.com: - test.*
peer_run 配置
此配置允许 minions 使用主文件上的 peer_run 选项从主服务器执行运行器。以下示例允许访问所有 minions 和所有运行器。
peer_run: .*: - .*
要将 minions 分配给特定 ID,需要定义配置,如下所示−
peer_run: .*domain.com: - test.*
如何执行命令
要在所有 minions 上执行 test.ping,请使用 salt-call 命令以及 publish.publish 模块。
salt-call publish.publish \* test.ping
要执行 runner,请使用 salt-call 命令以及 publish.runner 模块。
salt-call publish.runner manage.up