点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
zookeeper简介
常用于数据发布和订阅、负载均衡、分布式协调、集群管理与Master选举、分布式锁、分布式队列等场景中,保证分布式应用场景中数据的强一致性。
什么情况下使用zookeeper认证机制呢
zookeeper作为分布式架构中的一个重要中间件,通常会在其上面以节点的方式存储数据,默认情况下,所有应用都可以在zk读写任何节点,在复杂且对数据敏感性的应用中,这显然不安全,所以此时我们可以对zk做一些安全策略设置,可以使用以下几种手段。
修改zk 默认端口,使用其它端口服务; 限制访问来源地址; 添加访问控制; 不要将 zk 暴露在外网; 设置 zk 用户认证和 ACL。
如何使用zookeeper安全机制
Redhat/Centos 6/7:
iptables -I INPUT 1 -p tcp -m iprange --src-range 135.50.xxx13-135.50.xxx.16 --dport 2181 -j ACCEPT
iptables -I INPUT 2 -p tcp -s 135.10.xxx.155 --dport 2181 -j ACCEPT
iptables -I INPUT 3 -p tcp -s 192.168.xxx.112 --dport 2181 -j ACCEPT
iptables -I INPUT 4 -p tcp -s 192.168.xxx.113 --dport 2181 -j ACCEPT
iptables -I INPUT 5 -p tcp -s 192.168.xxx.114 --dport 2181 -j ACCEPT
iptables -I INPUT 6 -p tcp -s 127.0.0.1 --dport 2181 -j ACCEPT
iptables -I INPUT 7 -p tcp --dport 2181 -j DROP
zkCli.sh -server 192.168.XXX.112:2181
[zk: 192.168.XXX.114:2181(CONNECTED) 0] getAcl
'world,'anyone #表示任何人都可以访问
: cdrwa
[zk: 192.168.XXX.114:2181(CONNECTED) 1] setAcl /
ip:192.168.XXX.112:cdrwa,ip:192.168.XXX.114:cdrwa,ip:192.168.XXX.115:cdrwa
zk可以使用ACL访问控制列表来对节点的权限进行控制, 它与UNIX 文件访问权限非常相似,zk的节点类比文件,客户端可以删除节点、创建节点、修改节点:它使用权限位来允许/禁止对节点的各种操作以及这些位适用的范围。
ACL 指定一组 id 和与这些 id 关联的权限。acl权限控制使用scheme/id/permission来标志,主要包括三个方面:
·scheme #权限模式 ·id: #权限对象 ·permission #权限类型

zookeeper acl的特性:
zookeeper的权限控制是基于znode节点的,需要对每个节点设置权限。 每个znode支持设置多种权限控制方案和多个权限。 子节点不会继承父节点的权限。客户端无法访问某个节点,但是可以访问他的子节点。
命令 | 用法 | 描述 |
getAcl | getAcl path | 读取节点的ACL |
setAcl | setAcl path acl | 设置节点的ACL |
create | create path data acl | 创建节点时设置acl |
addAuth | addAuth scheme auth | 添加认证用户,类似于登录操作 |
3.2 使用zk ACL访问控制规则
[zk: localhost:2181(CONNECTED) 1] setAcl /chg1 world:anyone:rwdc
[zk: localhost:2181(CONNECTED) 0] setAcl / ip:192.168.XXX.112:cdrwa,ip:192.168.XXX.114:cdrwa,ip:192.168.XXX.115:cdrwa

[root@master2 ~]# zkCli.sh -server 192.168.XXX.112:2181

增加一个授权认证用户
[zk: 192.168.XXX.112:2181(CONNECTED) 11] addauth digest chg2:123456
设置权限
[zk: 192.168.XXX.112:2181(CONNECTED) 11] setAcl /chg2 auth:chg2:cdrwa


[zk: 192.168.XXX.112:2181(CONNECTED) 0] addauth digest chg2:123456


本文作者:陈洪刚(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




