- ACL是什么
zookeeper使用Access Control List (ACL) 来控制client对znode的操作权限。ACL的格式为(scheme:expression, permmission),每个znode可以有多个ACL。其中scheme表示zookeeper校验client身份的方式,expression是每种scheme对应的校验表达式,permission表示对znode的权限。
- zookeeper内置支持的scheme
- world:expression只能是‘anyone’, 例如,(‘world’,’anyone’),表示所有客户端都能通过鉴权。
- auth: 这种scheme会忽略任何expression,而是使用当前客户端的user, credentials作为expression。所以这种scheme实际上为一种使用场景提供了方便,例如我们只想让创建这个znode的client可以访问这个znode.
- digest: expression是username:base64 (SH1(password)),校验client的用户名和密码是否与expression一致。
- ip: expression是addr/bits,例如19.22.0.0/16
- x509 不知道是神马鬼玩意?
-
ACL权限
- CREATE: you can create a child node
- READ: you can get data from a node and list its children.
- WRITE: you can set data for a node
- DELETE: you can delete a child node
- ADMIN: you can set permissions