ZooKeeper访问控制列表(ACL)

ZooKeeper访问控制列表(ACL)

摘自《apache zookeeper essentials》

ZooKeeper数据模型提供了一种机制,就是使用ACL去控制访问znode的ACL。在创建znode的时候,ACL就决定了你对znode的权限相关的各种操作。ZooKeeper的ACL模型和linux/unix中的文件权限中允许和阻止操作相似,通过设置权限位作用在znode上。但是Zookeeper中没有linux和unix文件中所有者的观念。ACL决定了ZooKeeper Service与客户端的认证机制

ZooKeeper提供了以下基于ACL的内置的认证机制:

  • World: 任何人都可以连接到ZooKeeper Service
  • Auth: 任何已经认证的user,但不使用ID
  • Digest 基于用户名和密码的认证
  • IP Address 基于客户端IP地址的认证

除了以上涉及的认证模式,ZooKeeper还支持可插拔式(pluggable)的认证机制,这使用在需要的时候可以集成第三方认证。ZooKeeper中任何认证机制者由下面两个操作组成:

  • 首先,ZooKeeper是基于客户端的认证架构,当客户端连接到ZooKeeper Service时通过校验客户端信息产生客户端的认证
  • 其次,认证架构找到ACL中与客户端绑定的entriesACL是一组由<IDs,Permissions> pairs组成的,IDs就是校验客户端的字符串

关于znodeACL中重要的一点,ACL相关的znode是不会传播到它的子结点的。ZooKeeper的客户端认证是可选的,ACL就是认证机制,认证的身份和一组权限的组合

ZooKeeper中ACL支持的权限:

OperationACL Permissioin
CREATE创建znode的子结点
READ获取znode的子结点和znode上的数据
WRITE对znode设置数据
DELETE删除znode子结点
ADMIN设置ACL的权限

任何连接到ZooKeeper Service的客户端都有权限去校验znode的存在性,exist操作是无需权限的,这就使得可以去检索znode的统计结构(the stat structure of a znode)。ZooKeeper中内置了一些预定义的ACL:

ACLDescription
ANYONE_ID_UNSAFEID代表任何人
AUTH_IDS可以设置ACL,代替了已经认证过客户端的IDs
OPEN_ACL_UNSAFE表示完全开放的ACL,授于了除ADMIN以外的所有权限
CREATOR_ALL_ACL创建znode的权限
READ_ACL_UNSAFE给于world的能力去读数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值