ZooKeeperACL机制
官网:http://zookeeper.apache.org/doc/r3.4.6/zookeeperProgrammers.html#sc_ZooKeeperAccessControl
项目中不同的服务节点接入同一个zookeeper时,考虑到安全问题,可以通过ACL来解决
身份的认证有4种方式(scheme):
world:默认方式,相当于全世界都能访问
auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的
ip:使用Ip地址认证
ZK的节点有5种操作权限(permissions):
CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda
默认是 world,anyone的认证方式,具有cdrwa所有权限
1、创建\查看节点
ls /
2、设置ACL访问权限
setAcl /test auth:cjh:123456:r
直接get /test会提示权限不足
3、设置上下文认证用户
addauth digest cjh:123456
重新访问正常
删除节点
delete /test
根目录操作注意点
addauth digest zookeeper:zookeeper
最后因为在acl中节点是没有继承关系的,只能放弃这种方式,改成用防火墙方式做安全控制
转载请注明博客出处:http://www.cnblogs.com/cjh-notes/