ZooKeeper权限控制!

一个 ACL 权限设置可以分为 3 部分,分别是:权限模式(Scheme)、授权对象(ID)、权限信息(Permission)。

最终组成一条:例如scheme:id:permission格式的 ACL 请求信息。

每个节点都有维护自身的 ACL 权限数据,即使是该节点的子节点也是有自己的 ACL 权限而不是直接继承其父节点的权限

权限模式:Scheme:

权限模式是用来设置 ZooKeeper 服务器进行权限验证的方式。

ZooKeeper 的权限验证方式分为两种类型,一种是范围验证,另外一种是口令验证。

  • 范围验证:ZooKeeper 可以针对一个 IP 或者一段 IP 地址授予某种权限。

  • 口令验证:可以理解为用户名密码的方式。

  • World模式:设置了 World 权限模式系统中的所有用户操作都可以不进行权限验证。

授权对象(ID):

授权对象就是说我们要把权限赋予谁,如果我们选择采用 IP 方式,使用的授权对象可以是一个 IP 地址或 IP 地址段。

如果使用 Digest 或 Super 方式,则对应于一个用户名。

如果是 World 模式,是授权系统中所有的用户。

权限信息(Permission):

数据节点(create)创建权限,可以在数据节点下创建子节点。

数据节点(wirte)更新权限,可以更新该数据节点。

数据节点(read)读取权限,可以读取该节点的内容以及子节点的信息。

数据节点(delete)删除权限,可以删除该数据节点的子节点。

数据节点(admin)管理者权限,可以对该数据节点体进行 ACL 权限设置。