SaltStack - 访问控制系统

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

Salt接口有以下三种类型 :

  • 发布商ACL系统

  • 外部认证系统

  • 对等系统

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

发布者ACL系统

发布者ACL系统允许访问对于除root之外的用户,从主服务器对minions执行Salt命令.发布者ACL系统通过 publisher_acl 配置选项在主配置文件中配置.它被定义如下 :

publisher_acl:
   user1:
      - .*

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

此处,

  • user1 可以执行任何操作.

  • user2 被允许使用测试 pkg ,但仅限于"web *"小兵.

外部认证系统

外部认证系统用于提供执行盐的访问权限通过外部授权系统(如 PAM,LDAP 等)对特定minions执行命令.此配置文件在主文件中定义,如下所述.

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

此处,

  • user1 可以执行测试网络模块中的功能匹配 web * 目标.

  • 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

对等系统

盐奴才可以使用对等接口传递命令.通过主配置文件配置对等接口,以允许minions使用 peer 配置部分从master发送命令,或允许minions使用 peer_run 配置.

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

对等配置

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

 
 peer:
.*:
  - .*

在这里,它可以为所有小兵提供通信,但仅建议用于非常安全的环境.

分配小兵对于特定的ID,配置需要定义如下:peer :

 
.* domain.com:
  -  test .*

peer_run配置

此配置允许小兵使用pe从主人执行跑步者主文件上的er_run选项.以下示例允许访问所有小兵和所有参赛者.

 
 peer_run:
.*:
 - .*

要将小兵分配给特定ID,需要将配置定义为下面给出的减去;

 
 peer_run:
.* domain.com:
  -  test.*

如何执行命令

要对所有小兵执行 test.ping ,请使用 salt-call 命令以及 publish.publish 模块.

 
 salt-call publish.publish \ * test.ping

要执行 runner ,请使用salt-call命令以及 publish.runner 模块.

 
 salt-call publish.runner manage.up