ZooKeeper的ACL权限控制, 可以控制节点的读写操作, 保证数据的安全性,ZookeeperACL权限设置分为3部分组成, 分别是:权限模式(Scheme)、授权对象I(ID)、权限信息(Permission )。最终组成一条例如“scheme:id:permission"格式的ACL请求信息。
一、ACL组成
ZookeeperACL权限设置分为3部分组成, 分别是:权限模式(Scheme)、授权对象I(ID)、权限信息(Permission )。最终组成一条例如“scheme:id:permission"格式的ACL请求信息。下面我们具体看一下这3部分代表什么意思:
(1)权限模式(scheme):授权的策略。
(2)权限对象(id):授权的对象。
(3)权限(permission):授予的权限。
1.1 权限模式(Scheme)
权限模式(scheme):授权的策略
描述 | 模式 |
---|---|
world | 这种模式方法的授权对象只有一个anyone,代表登录到服务器的所有客户端都能对该节点执行某种权限 |
ip | 对连接的客户端使用IP地址认证方式进行认证 |
auth | 使用以添加认证的用户进行认证 |
digest | 使用用户:密码方式验证 |
1.2 权限类型(permission)
权限(permission):授予的权限:
类型 | ACL简写 | 描述 |
---|---|---|
read | r | 读取节点及显示子节点列表的权限 |
write | w | 设置节点数据的权限 |
create | c | 创建子节点的权限 |
delete | d | 删除子节点的权限 |
admin | a | 设置该节点ACL权限的权限 |
1.3 授权的命令
命令 | 用法 | 描述 |
---|---|---|
getAcl | getAcl path | 读取节点的ACL |
setAcl | setAcl path acl | 设置节点的ACL |
create | create path data acl | 创建节点时设置acl |
addAuth | addAuth scheme auth | 添加认证用户,类似于登录操作 |
1.4 ZK ACL的特性
(1)ZooKeeper的权限控制是基于znode节点的,需要对每个节点设置权限。
(2)每个znode支持设置多种权限控制方案和多个权限。
(3)子节点不会继承父节点的权限。客户端无法访问某个节点,但是可以访问他的子节点。