Saltack 针对用户进行权限控制
一、 client_acl 配置使用
1.1 client_acl概述
开启对系统上非root的系统用户在master上执行特殊的模块,这些模块名可以使用正则表达式进行表示,不能指定对那些minion执行命令。执行命令只需要切换到具体的用户即可,不需要认证。
1.2开启配置
创建test用户并设置密码,此处的test用户为Linux系统用户。
开启方式:vim /etc/salt/master
client_acl:
test:
- test.ping
- cmd.*
以上配置解释:
test用户只能执行test.ping和cmd模块的命令。
重启salt-master服务:service salt-master restart
1.3验证配置结果
进入test账户:
su test
执行命令查看结果:
[test@deletedevweb01 root]$ salt \* test.ping
[WARNING ] Failed to open log file, do you have permission to write
to /var/log/salt/master?
以上错误,表明test用户没有写log权限,解决方式:把test用户加到root用户组,并对root用户组赋予/var/log/salt/master 文件的写权限
usermod -a -G root test
chmod g+w /var/log/salt/master
配置完成再执行命令
[test@deletedevweb01 salt]$ salt \* test.ping
deletesitweb01:
True
deletedevweb03:
True
[test@deletedevweb01 salt]$ salt \* cmd.run "echo test"
deletedevweb02:
test
deletesitweb01:
test
执行没有被赋予权限的模块命令
[test@deletedevweb01 salt]$ salt \* state.sls test
Failed to authenticate, is this user permitted to execute commands?
二、 client_acl_blacklist 配置使用
2.1 client_acl_blacklist概述
用户或模块黑名单,限制用户执行salt命令的权限。不能对root用户限制所有模块的命令。
2.2开启配置
创建dytest用户并设置密码,此处的dytest用户为Linux系统用户。把dytest用户加到root用户组,并对root用户组赋予/var/log/salt/master 文件的写权限。
开启方式:vim /etc/salt/master
client_acl_blacklist:
users:
- dytest
modules:
- cmd
重启salt-master服务:
service salt-master restart
以上配置解释:对于dytest用户不能执行cmd模块的所有命令。
2.3验证配置结果
进入dytest用户:
su dytest
执行命令查看结果:
[dytest@deletedevweb01 salt]$ salt \* cmd.run “echo hello”
Failed to authenticate, is this user permitted to execute commands?
执行限制外的模块命令
[dytest@deletedevweb01 salt]$ salt \deletedevapp01 test.ping
deletedevapp01:
True
三、 external_auth 权限配置使用
3.1 external_auth概述
salt 扩展认证 PAM,可以利用PAM 认证机制对系统账户做出功能操作上的限制
1. 认证用户不允许使用root
2. 可以限制认证用户可使用的功能模块
3. 可以限定认证用户可管理的主机
官方文档:http://docs.saltstack.com/topics/eauth/index.html
3.2配置
创建 salt 用户并设置密码,此处的salt用户为Linux系统用户。
vim /etc/salt/master
external_auth:
pam:
salt:
- '*'
此处使用PAM认证方式认证。PAM的英文全称是Pluggable Authentication Module系统,即此程序是有关执行用户鉴别和帐号维护的服务。鉴别部分通常通过一(合法性)质询-回应的交互来完成的。使用PAM,管理员可以通过不重编辑鉴定程序来定制一些使用方法。
PAM有四部分组成,第一部分是libpam,是实现PAM API的库,第二部分是PAM配置文件,/etc/pam.conf,第三部分有一套动态可装载两进位对象组成,常常用来调用一些处理实际鉴别(authentication)工作的服务模块。最后模块是使用PAM API的系统命令组成,如login,us,ftp,telnet,etc...
3.3验证配置结果
salt PAM 认证用户 只能通过 “ -a pam ” 参数才能使用
会提示登陆用户,输入密码,如果正确返回结果,说明pam认证已经生效
实例 :
vim /etc/salt/master
external_auth:
pam:
salt:
- '*' #所有模块
dytest:
- pillar.* #pillar模块
- cmd.run # cum.run 模块
test:
- '*dev*': # 主机配置规则
- test.ping # Salt 模块
以上配置的解释:
· salt 用户可管理所有主机,使用所有salt功能模块
· dytest 用户只能管理部分主机,仅能使用test.ping模块
· test 用户只能管理部分主机,仅能使用test.ping模块
执行查看结果:
[salt@deletedevweb01 root]$ salt \* test.ping -a pam
username: salt
password:
[WARNING ] Failed to open log file, do you have permission to write
to /var/log/salt/master?
以上错误,表明test用户没有写log权限,解决方式,把test用户加到root用户组,并对root用户组赋予/var/log/salt/master 文件的写权限
[salt@deletedevapp01 salt]$ salt \* test.ping -a pam
username: salt
password:
deletedevapp01:
True
deletepredb01:
True
实例1: 以salt用户为例,认证用户必须打开PAM 参数才能操作
失败操作:
[salt@deletedevapp01 salt]$ salt \* test.ping -a pam
username: dytest
password:
Failed to authenticate, is this user permitted to execute commands?
成功操作:
[salt@deletedevapp01 salt]$ salt \* cmd.run "echo hello" -a pam
username: dytest
password:
deletedevapp01:
hello
deletepredb01:
hello
实例2:以salt用户为例,执行未授权模块被拒绝
[salt@deletedevapp01 salt]$ salt -a pam '*' state.highstate
username: dytest
password:
Failed to authenticate, is this user permitted to execute commands?
实例3: 以test用户为例,操作未授权主机被拒绝
失败操作
[salt@deletedevapp01 salt]$ salt \* test.ping -a pam
username: test
password:
Failed to authenticate, is this user permitted to execute commands?
成功操作
[salt@deletedevapp01 salt]$ salt \deletedevapp01 test.ping -a pam
username: test
password:
fun: test.ping
deletedevapp01:
True
Saltack 针对用户进行权限控制的更多相关文章
- Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制
kafka系列文章 第一章 linux单机安装kafka 第二章 kafka--集群安裝部署(自带zookeeper) 第三章 Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制 Ka ...
- 使用JavaEE的ServerAuthModule模块和web.xml进行相应配置,实现对用户的权限控制
ServerAuthModule这里不细说,可以自行百度. 重点在注释: <!-- 声明用于安全约束的角色 --> <security-role> <role-name& ...
- MongoDB3.x中添加用户和权限控制
现在需要创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限.注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth) ? 1 2 3 4 5 6 7 8 9 10 ...
- 简单的RBAC用户角色权限控制
Java web项目中,无论项目是大是小,或多或少都会涉及到用户访问权限的控制,权限管理总体的设计思路就是,不该看的不看,不该做的不做!据我目前的了解,我所知道的几种实现访问权限控制的方式有: JQu ...
- kubernetes dashboard访问用户添加权限控制
前面我们在kubernetes dashboard 升级之路一文中成功的将Dashboard升级到最新版本了,增加了身份认证功能,之前为了方便增加了一个admin用户,然后授予了cluster-adm ...
- springboot-29-security(二)用户角色权限控制
本博客基于上一个http://www.cnblogs.com/wenbronk/p/7379865.html 增加了角色的权限表, 可以进行权限校验 一, 数据准备 1, 数据表建立 /* Navic ...
- Jenkins系列之-—04 配置用户和权限控制
一.安装插件 插件名称:Role-based Authorization Strategy Role Strategy Plugin插件可以对构建的项目进行授权管理,让不同的用户管理不同的项目. 二. ...
- MySQL 初学笔记 ① -- MySQL用户登录权限控制
1. MySQL 登录 MySQL -u username -p 2. MySQL 创建用户 use mysql //进入mysql 表 INSERT INTO user (Host,User,Pas ...
- mysql 用户管理 权限控制
添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...
随机推荐
- samba服务器的搭建和用户权限,文件夹权限设置
一.简介:samba服务是基于netbios 安装: 通过yum安装 [root@localhost ~]# yum install samba samba-client samba-swat 查看 ...
- Vue --- 组件练习
一 ad_data = { tv: [ {img: 'img/tv/001.png', title: 'tv1'}, {img: 'img/tv/002.png', title: 'tv2'}, {i ...
- janusgraph-遍历图的语言
精确查询 语句含义 测试语句 执行时间 查询顶点标签为FALV的顶点数量 g.V().hasLabel('FALV').count() 2400s 查询顶点属性中id为19012201 clockWi ...
- 雅克比(Jacobi)方法
可以用来求解协方差矩阵的特征值和特征向量. 雅可比方法(Jacobian method)求全积分的一种方法,把拉格朗阶查皮特方法推广到求n个自变量一阶非线性方程的全积分的方法称为雅可比方法. 雅克比迭 ...
- php 正则表达示中的原子
原子 原子是正则表达示里面的最小单位,原子说白了就是需要匹配的内容.一个成立的正则表达示当中必须最少要有一个原子.大理石平台精度等级 所有可见不可见的字符就是原子 说明:我们见到的空格.回车.换行.0 ...
- _purecall函数
默认纯虚拟函数调用错误处理程序. 当调用纯虚拟成员函数时,编译器生成调用此函数的代码. 原型: extern "C" int __cdecl _purecall(); _Purec ...
- sqler 集成 terraform v0.12 生成资源部署文件
terraform v0.12 发布了,有好多新功能的添加,包括语法的增强,新函数的引入,更好的开发提示 只是当前对于一些老版本的provider 暂时还不兼容,但是大部分官方的provider 都是 ...
- 【LA 3942】 Remember the word
题意 给定一个字符串和若干个单词,询问能把字符串分解成这些单词的方案数.比如abcd ,有单词a,b,ab,cd:就可以分解成a+b+cd或者ab+cd. 分析 trie树—>DP 代码 (感谢 ...
- 开机启动类似于Tencent Upd的弹窗解决方法
1.开机启动的程序,后台启动自动升级的exe,每次开机都弹出弹窗,一不小心就点错了,神烦. 解决方式:直接在windows系统 [ 本地安全策略>软件限制策略>其他规则 ] 里面把弹出的 ...
- 百度编辑器(ueditor)踩坑,图片转存无法使用
在使用 百度编辑器 的过程中碰到了一些问题,图片转存功能无法使用, 即便是疯狂地在官方 Demo.文档.论坛甚至是 GitHub 上也没找到理想的答案.(┗|`O′|┛) (真是日了狗) 问题描述 默 ...