salt扩展认证PAM篇

salt.states.external_auth

概述

salt 扩展认证 PAM,可以利用PAM 认证机制对系统账户做出功能操作上的限制

  1. 认证用户不允许使用root
  2. 可以限制认证用户可使用的功能模块
  3. 可以限定认证用户可管理的主机

官方文档:http://docs.saltstack.com/topics/eauth/index.html

开启PAM认证

编辑 /etc/salt/master

external_auth:
  pam:
    salt:
      - '*'

创建 salt 用户 设置密码

验证

salt PAM 认证用户 只能通过 “ -a pam ” 参数才能使用

salt -a pam test.ping

会提示登陆用户,输入密码,如果正确返回结果,说明pam认证已经生效

实例 :

/etc/salt/master

external_auth:
  pam:
    admin:
      - '*'                        # 所有模块                  
    salt:
      - test.ping                  # test.ping 模块 
    test:
      - 'dev*':                   # 主机配置规则 
        - test.ping                # Salt 模块

解释:

  • admin 用户可管理所有主机,使用所有salt功能模块
  • salt 用户可管理所有主机,仅能使用test.ping模块
  • test 用户只能管理部分主机,仅能使用test.ping模块

实例1: 以salt用户为例,认证用户必须打开PAM 参数才能操作

  • 失败操作:
    salt@fabrizio-vaio:~$ salt '*' test.ping
    Failed to authenticate, is this user permitted to execute commands?
  • 成功操作:
    salt@fabrizio-vaio:~$ salt -a pam '*' test.ping
    username: salt
    password:
    ubuntu-master:
    True

实例2: 以salt用户为例,执行未授权模块被拒绝

salt@fabrizio-vaio:~$ salt -a pam '*' state.highstate
username: salt
password:
Failed to authenticate, is this user permitted to execute commands?

实例3: 以test用户为例,操作未授权主机被拒绝
失败操作

salt@fabrizio-vaio:~$ salt -a pam '*' test 
username: test
password:
Failed to authenticate, is this user permitted to execute commands?

成功操作

salt@fabrizio-vaio:~$ salt -a pam 'test-001' test 
username: test
password:
test-001:
    True

你可能感兴趣的:(salt扩展认证PAM篇)