SaltStack - 访问控制系统


访问控制系统为用户或组提供选项以执行具有权限的任务。Salt 访问控制系统用于配置对非管理控制接口的访问。您可以将此过程应用于所有系统。此控件可帮助非管理用户执行 Salt 命令。

Salt接口有以下三种类型 -

  • 发布者ACL系统
  • 外部认证系统
  • 同行系统

让我们详细了解每个接口。

发布者ACL系统

Publisher ACL 系统允许除 root 之外的用户访问,以便从 master 对 minion 执行 Salt 命令。发布者ACL系统是通过publisher_acl配置选项在主配置文件中配置的。它的定义如下 -

publisher_acl:
   user1:
      - .*

   user2:
      - web*:
         - test.*
         - pkg.*

这里,

  • user1被允许执行任何操作。

  • user2可以使用testpkg,但仅限于“web*”minion。

外部认证系统

外部身份验证系统用于通过外部授权系统(如PAM、LDAP等)提供在特定 Minions 上执行 salt 命令的访问权限。此配置文件在主文件中定义,如下所述。

external_auth:
   pam:
      user1:
         - 'web*':
            - test.*
            - network.*
      user2:
         - .*

这里,

  • 允许user1在与web*目标匹配的 Minions 上执行测试网络模块中的函数。

  • 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 可以使用对等接口传递命令。对等接口通过 master 配置文件进行配置,以允许 minions 使用对等配置部分从 master 发送命令,或者允许 minions 使用peer_run配置从 master 执行运行程序。

让我们详细了解这两种配置。

对等配置

在主文件中定义的简单配置如下 -

peer:
   .*:
      - .*

在这里,它支持所有 Minion 的通信,但仅建议在非常安全的环境中使用。

要将 minions 分配给特定 ID,需要定义配置,如下所示:peer -

.*domain.com:
   - test.*

对等运行配置

此配置允许 Minions 使用 master 文件上的 peer_run 选项从 master 执行运行器。以下示例允许访问所有小兵和所有跑步者。

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