[关闭]
@xtccc 2015-10-16T09:07:37.000000Z 字数 1523 阅读 2293

ACL

给我写信
GitHub

此处输入图片的描述


ZooKeeper


参考
+ 使用ZooKeeper ACL特性进行znode控制
+ ZooKeeper access control using ACLs
+ Setting ACL in ZooKeeper Client
+ SASL Authentication with ZooKeeper
+ What are HBase znodes?


ACL in ZK


ZooKeeper用ACL来控制对znode的访问,这一点类似于UNIX/Linux的文件权限机制,但是znode没有owner的概念 —— ACL指定了一组ID,以及与这些ID相关联的permissions。

针对某个znode,ACL会指定一个ID集合,以及与这些IDs相对应的权限。

ACL只对某一个znode有效,不能自动传递到它的children。

ZK支持pluggable authentication schemes。ID以scheme:id,这里scheme是id对应的authentication scheme。例如,ip:172.16.34.12就是地址为172.16.34.12的主机的ID。

当一个client连接到ZK并且通过authentication之后,ZK会将该client对应的所有ID都与client connection关联起来。当client试图访问znode时,ZK将会检查根据该znode的ACL来检查这些ID。

ACL形如(scheme:expression, perms),例如,(ip:19.22.0.0/16, READ)将READ权限赋予了所有IP以19.22开头的clients。


ACL Permissions

ZK支持以下权限:


Builtin ACL Schemes

ZK有以下的内置schemes:

Pluggable Authentication

ZK内置的authentication scheme也使用了pluggable authentication framework。

Authentication framework是怎样工作的?首先看看framework最主要的两个authentication operations:

  1. framework首先要验证client的身份:当client去连接一个ZK server时,ZK会验证关于该client的信息,并将其与该connection关联起来;
  2. framework会找到与该client对应的ACL entry。ACL entry形如< idspec, permissions >。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注