针对节点设置相关读写权限,保证数据的安全性

ACL命令行

  • 获取某个节点的ACL权限 getAcl path

    默认权限: ‘world,’anyone: cdrwa

  • 设置某个节点的ACL权限 setAcl

  • 输入认证授权信息,注册时输入明文密码(登录) addauth

但是在zk里,密码是以加密的形式存在的

ACL的构成

举例: [scheme:id:permissions]
scheme和id是捆绑使用的
scheme: 采用某种权限机制
id: 代表允许访问的用户
permissions: 权限组合字符串

scheme

1. world

world:anyone:crdwa 任何人都可以做 setAcl /zhaojy world:anyone:crdwa

2. auth 和 digest(常用)

代表认证登录,需要注册用户有权限就可以 (明文)
auth:user:password:crdwa
先注册 addatuh digest zhaojy:zhaojy
登录 setAcl /zhaojy auth:zhaojy:zhaojy:cdrwa

需要对密码加密才能访问 (密文)
digest:username:BASE64(SHA1(password)):crdwa

3. ip

ip:192.168.1.1:crdwa
限制ip进行访问

4. super超级管理员

超级管理员,拥有所有权限
修改zkServer.sh/cmd 增加超级管理员,并重启server

permissions

缩写: crdwa
create / read/ delete / write/ admin(设置权限的权限)

ACL使用场景

  1. 开发/测试环境分离 命名空间