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/

原文地址:https://www.cnblogs.com/cjh-notes/p/10707926.html