关键字:Zookeeper中ACL(访问控制列表)
Zookeeper对权限的控制是节点级别的,而且不继承,即对父节点设置权限,其子节点不继承父节点的权限。
Zookeeper提供了几种认证方式
* world:有个单一的ID,anyone,表示任何人。
* auth:不使用任何ID,表示任何通过验证的用户(是通过ZK验证的用户?连接到此ZK服务器的用户?)。
* digest:使用 用户名:密码 字符串生成MD5哈希值作为ACL标识符ID。权限的验证通过直接发送用户名密码字符串的方式完成,
* ip:使用客户端主机ip地址作为一个ACL标识符,ACL表达式是以 addr/bits 这种格式表示的。ZK服务器会将addr的前bits位与客户端地址的前bits位来进行匹配验证权限。
digest方式比较适合我们的业务,因此采用此种方式对Zookeeper进行权限控制。
创建节点数据时:
Java代码 收藏代码
List<ACL> acls = new ArrayList<ACL>(2);
Id id1 = new Id("digest", DigestAuthenticationProvider.generateDigest("admin:admin123"));
ACL acl1 = new ACL(ZooDefs.Perms.ALL, id1);
Id id2 = new Id("digest", DigestAuthenticationProvider.generateDigest("guest:guest123"));
ACL acl2 = new ACL(ZooDefs.Perms.READ, id2);
acls.add(acl1);
acls.add(acl2);
ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", 10000, new DefaultWatcher());
zk.create("/test", new byte[0], acls, CreateMode.PERSISTENT);
登录Zookeeper读取节点数据时:
Java代码 收藏代码
ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", 10000, new DefaultWatcher());
zk.addAuthInfo("digest", "guest:guest123".getBytes());
byte[] value = zk.getData("/test", null, new Stat());
分享到:
相关推荐
ZooKeeper本身没有提供访问控制列表(ACL)的机制,但它提供了一个可扩展的权限模式,允许用户自己定义谁可以做什么。 在ZooKeeper中,节点的操作权限分为五种:CREATE、READ、WRITE、DELETE和ADMIN,它们的简写...
ACL 权限是指访问控制列表权限,它是 ZooKeeper 的一种安全机制,用于控制对 ZooKeeper 服务器的访问。 ACL 权限可以控制谁可以访问 ZooKeeper 服务器,谁可以执行哪些操作等。 增加 ACL 权限 增加 ACL 权限是指...
ZooKeeper 的 ACL 系统提供了一个灵活而强大的机制来控制对 ZNode 的访问。通过合理配置 ACL,可以确保分布式系统中的数据安全和完整性。本文详细介绍了 ZooKeeper 中的节点权限级别、如何设置和管理这些权限,并...
- ACL管理:ZooInspector支持查看和修改节点的访问控制列表(ACL),用于控制对节点的访问权限。 - 显示统计信息:提供关于Zookeeper服务器的统计信息,如会话数量、节点数等。 - 快照和恢复:可以对Zookeeper的...
Zookeeper 提供了丰富的Java和C语言API,包括创建、删除、设置和获取Znode,注册和触发Watcher,以及获取Znode的ACL(访问控制列表)等操作。 **六、Zookeeper的部署与运维** 1. **集群配置**: 配置文件`zoo.cfg`...
每个ZNode都可以存储数据、拥有ACL(访问控制列表)、有一定的生命周期,并可以监听其他ZNode的变化。 批量删除Zookeeper节点的功能通常在需要清理过期数据或重构数据结构时变得尤为重要。这个工具类的实现主要涉及...
5. **安全性**:Zookeeper支持ACL(访问控制列表)来保护节点,防止未经授权的访问。prettyZoo客户端的安全特性有助于用户管理和保护其Zookeeper资源。 综上所述,prettyZoo是一个实用的Zookeeper客户端工具,尤其...
Znode是数据存储的基本单元,它们类似于文件系统的文件和目录,有生命周期管理,并支持版本控制和ACL(访问控制列表)。会话是客户端与ZooKeeper服务器之间的连接,它提供了心跳检测和会话超时机制,确保在短暂的...
5. **ACL权限**:ZooKeeper提供了一套访问控制列表(ACL)机制,用于限制对节点的访问。ACL由一个权限标识符(scheme)和一个凭证(auth)组成,常见的scheme有世界(world)、IP地址(ip)、用户名/密码(digest)...
1.2 数据模型:ZooKeeper的数据结构类似于文件系统,由节点(ZNode)组成,支持读写操作,并且具备版本控制和ACL(访问控制列表)。 二、Windows上的ZooKeeper部署 2.1 安装:下载解压Zookeeper-3.4.9压缩包,将...
- **权限管理**:显示并编辑节点的ACL(访问控制列表),控制对节点的访问权限。 - **集群监控**:显示服务器状态,包括连接状态、会话信息、内存和磁盘使用情况等。 - **事件日志**:记录客户端的操作日志,便于...
ACL机制(访问控制列表)用于控制Zookeeper中节点的访问权限。 7.4.1 ACL机制概述 ACL机制规定了谁可以对节点做什么操作。 7.4.2 ACL的机制 ACL机制提供了一种方法,用于定义哪些用户或者组可以执行哪些操作。 ...
4. **权限管理**:Zookeeper支持ACL(访问控制列表)权限管理,`Zookeeper Visualizer`清晰地展示了每个节点的权限设置,使权限管理更加直观。 5. **无须安装**:`zookeeper-visualizer-master.zip`文件包含了工具...
4. **权限管理**:检查ZNode的ACL(访问控制列表),添加、修改或删除权限设置。 5. **监控与告警**:实时监控ZooKeeper集群的健康状况,包括节点状态、网络延迟等,并在发现问题时发送告警。 6. **集群操作**:执行...
- ZooKeeper支持ACL(访问控制列表),通过`Ids`类提供的静态常量如`OPEN_ACL_UNSAFE`、`READ_ACL_UNSAFE`、`ALL_ACL`来设定不同级别的权限。 6. **集群状态查询**: - `getChildren()`:获取ZNode的子节点列表,...
在实际使用中,ZooKeeper支持多种数据模型,如节点(Znode)、ACL(访问控制列表)和watcher(观察者)。Znodes是ZooKeeper中的基本数据单元,可以存储数据和元数据。ACL用于控制对Znodes的访问权限,而watcher则是...
- **ACL(访问控制列表)**:Zookeeper提供了细粒度的权限控制,每个Znode都有自己的ACL,用于限制对Znode的访问。 - **Watcher(观察者)**:一种事件监听机制,可以注册在Znode上,当Znode发生改变时,Watcher会...
Zookeeper的数据模型类似于文件系统,由节点(ZNode)构成,每个节点都可以存储数据,并具有版本号、ACL(访问控制列表)和时间戳等属性。节点分为临时节点(会话结束自动删除)和持久节点(直到被显式删除)两种。 ...
- **ACL(访问控制列表)**:用于控制节点的访问权限,包括读、写、执行等操作。 - **会话(Session)**:客户端与Zookeeper服务器之间的连接,会话期间可以有多个请求。 - **Watcher**:一种事件监听机制,可以...
ZNode的状态包括数据、ACL(访问控制列表)、版本号(数据版本、ACL版本和子节点版本)以及时间戳。这些属性使得Zookeeper能够实现强一致性。 ZookeeperTest JAR包中包含了Zookeeper的客户端库,这是连接到...