@xtccc
2015-10-16T09:07:37.000000Z
字数 1523
阅读 2314
ZooKeeper
参考
+ 使用ZooKeeper ACL特性进行znode控制
+ ZooKeeper access control using ACLs
+ Setting ACL in ZooKeeper Client
+ SASL Authentication with ZooKeeper
+ What are HBase znodes?
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。
ZK支持以下权限:
ZK有以下的内置schemes:
ZK内置的authentication scheme也使用了pluggable authentication framework。
Authentication framework是怎样工作的?首先看看framework最主要的两个authentication operations: