SaltStack – 访问控制系统
SaltStack – 访问控制系统
访问控制系统为用户组提供选项以执行具有权限的任务。Salt 访问控制系统用于配置对非管理控制界面的访问。您可以将此过程应用于所有系统。此控件可帮助非管理用户执行 Salt 命令。
Salt接口有以下三种类型 –
- 发布者 ACL 系统
- 外部认证系统
- 对等系统
让我们详细了解这些接口中的每一个。
发布者 ACL 系统
发布者 ACL 系统允许访问除 root 之外的用户以从 master 对 minions 执行 Salt 命令。通过publisher_acl配置选项在主配置文件中配置发布者ACL 系统。它的定义如下 –
publisher_acl: user1: - .* user2: - web*: - test.* - pkg.*
这里,
-
user1可以执行任何操作。
-
允许user2使用test和pkg,但只能在“web*”minions 上使用。
外部认证系统
的外部身份验证系统用于提供接入通过外部授权系统等执行特定的爪牙盐命令PAM,LDAP等如下所述该配置文件的主文件中定义的。
external_auth: pam: user1: - 'web*': - test.* - network.* user2: - .*
这里,
-
允许user1在与web*目标匹配的 minion 上执行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 Minion 可以使用对等接口传递命令。peer 接口通过 master 配置文件进行配置,以允许minions使用peer配置部分从 master 发送命令,或者允许minions使用peer_run配置从 master 执行运行程序。
让我们详细了解这两种配置。
对等配置
要在主文件中定义的简单配置如下 –
peer: .*: - .*
在这里,它可以为所有 Minion 启用通信,但仅推荐用于非常安全的环境。
要将 Minion 分配给特定 ID,需要如下定义配置: peer –
.*domain.com: - test.*
peer_run 配置
此配置是为了允许 minions 使用 master 文件上的 peer_run 选项从 master 执行运行程序。下面的例子是允许访问所有minion和所有runner。
peer_run: .*: - .*
要将 Minion 分配给特定 ID,需要定义如下配置 –
peer_run: .*domain.com: - test.*
如何执行命令
要在所有minion上执行test.ping,请使用salt-call命令和publish.publish模块。
salt-call publish.publish \* test.ping
要执行runner,请使用 salt-call 命令和publish.runner模块。
salt-call publish.runner manage.up