05_zookeeper的ACL

【ACL概述】

ACL:access control Lists,权限控制。

* 针对节点可以设置相关的读写等权限,目的是为了保障数据安全性。

* 权限permissions可以指定不同的权限范围以及角色。

 

【ACL命令行】

[ getAcl ]

获取某个节点的ACL权限信息。

[ setAcl ]

设置某个节点的ACL权限信息

[ addauth ]

输入认证授权信息,注册时输入明文密码(登录),但是在zk的系统里,密码是以加密的形式存在的。

 

【ACL的构成】

zk的acl通过[scheme:id:permissions]来构成权限列表的

  scheme:代表采用某种权限机制

  id:代表允许访问的用户

  permissions:权限组合字符串

【ACL的构成——scheme】

*  world 

world下只有一个id,即只有一个用户,也就是anyone,那么组合的写法就是world:anyone:[permissions]

* auth

auth代表认证登录,需要注册用户有权限就可以,形式为auth:user:passworld:[permissions]

* digest

需要对密码加密才能访问,组合形式为 digest:username:BASE64(SHA1(passworld)):[permissions]

[注意]  

简而言之,auth和digest的区别就是,前者明文,后者密文。

setAcl /path auth:lee:lee:cdrwa

与setACl /path digest:lee:BASE64(SHA1(passworld)) cdrwa是等价的,在通过addauth digest lee:lee后都能操作指定节点的权限。

* ip

当设置为ip指定的ip地址,此时限制ip进行访问,比如ip:192.168.1.1:[permissions]

* super

代表超级管理员,拥有所有的权限。

【ACL的构成——permisssions】

权限字符串缩写 crdwa

* CREATE:创建子节点,注意,是子节点

* READ:获取节点/子节点

* WRITE:设置节点数据

* DELETE:删除子节点

* ADMIN:设置权限的权限

 

【ACL命令行】

[ world:anyone:cdrwa ]

 【ACL的常用使用场景】

* 开发/测试环境分离,开发者无权操作测试库的节点,只能看。

* 生产环境上控制指定ip的服务可以访问相关节点,防止混乱。

 

posted @ 2018-09-17 00:50  HigginCui  阅读(275)  评论(0编辑  收藏  举报