最近使用Zookeeper作为配置管理服务,因为配置数据有很高的安全要求,需要有权限控制,也就是需要登录才能看到Zookeeper上面的数据。
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进行权限控制。
创建节点数据时:
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读取节点数据时:
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上的节点数据设置多个用户,用于不同的权限操作。
分享到:
相关推荐
针对zookeeper的安全漏洞,增加了对访问ip地址的限制。
java的spring-boot工程使用digest方式对zookeeper进行权限控制,包括初始化zk,以及增删改查等
一款好用的zookeeper配置内容导入导出工具,适用平台是windows,但是也可以修改run.bat为shell脚本,适合linux。 带图形界面,修改config中的config.xml,添加需要管理的zookeeper地址信息,同时可以定义两个用户...
主要介绍了为zookeeper配置相应的acl权限的相关实例,具有一定参考价值,需要的朋友可以了解下。
zookeeper-3.4.14,包含添加系统服务插件及添加bat. 1. zookeeper-3.4.14源包 2. commons-daemon-1.1.0-bin-windows.zip 插件 3. 配置好插件的zookeeper-3.4.14包,右键管理员权限执行zk-server-install.bat
zookeeper的Acl权限控制 zookeeper的javaApi zookeeper 事件监听机制 zookeeper 集群搭建 一致性协议:zab协议 zookeeper的leader选举 observer角色及其配置 zookeeperAPI连接集群 zookeeper 开源客户端curator介绍 ...
权限管理:ZooInspector 允许用户查看和管理 ZooKeeper 节点的权限信息,以保障节点数据的安全性。 连接多个 ZooKeeper 服务器:对于分布式 ZooKeeper 集群,ZooInspector 可以连接多个 ZooKeeper 服务器,方便用户...
jdk1.8.0_131、apache-zookeeper-3.8.0、hadoop-3.3.2、hbase-2.4.12 mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 ...
文章还探讨了Zookeeper在分布式系统中的经典应用,如配置中心、注册中心和分布式锁等,提供了丰富的实操示例和技术细节。此外,还涵盖了Zookeeper的ACL权限控制和内存数据与持久化机制,为读者提供了全面深入的技术...
zookeeper集群SASL认证&KAFKA权限配置SASL/PLAIN身份验证 配置环境 JKD: 1.8 Kafka: 2.3.0 Zookeeper: 3.4.14 服务器名 kafka内网IP:PORT kafka外网IP:PORT zookeeper内网IP:PORT KAFKA01 192.168.1.157:...
docker管理kafka与zookeeper带来使用docker-compose启动服务配置3台kafka基线2台动物园管理员使用自定义频谱网络进行网络级联通信注意kafka的advertised.listeners配置,需要配置成托管机的IP和映射端口,这样才能被...
1、Zookeeper 下 Server工作状态 2、ZooKeeper定义了几种权限 4、客户端如何获取配置信息 5、会话管理 6、四种类型的数据节点 Zno
项目概述:本项目是一个基于SSM...- 引入Spring Security,确保了系统的安全性,加强了身份验证和权限控制。 综合来说,这是一个集成了前沿技术栈的健康医疗项目,旨在通过高效的IT解决方案提升医疗服务质量和效率。
ZooKeeper 权限管理机制; ZooKeeper 服务器工作原理和流程; ZooKeeper 实现共享锁; Hadoop 最佳实践; 通过Hadoop 的API 管理Job; Hadoop 集群的配置调优; Hadoop 平台的Java 规范及经验; MapReduce 开发经验...
zkdash是一个zookeeper的管理界面,也可以作为任何基于zookeeper的配置管理项目比如:Qconf 开发规划 zkdash目前正在开发第二版本,更易用,更开发,拥有完善权限管理,支持zk,更易用。 第二版已经在着手开源相关...
简单权限控制下的zookeeper管理项目 步骤: 1,使用maven构建项目 2,修改 项目\src\main\resources\zk.properties 文件为可用配置 userquery只能查询的用户 useradmin可修改数据的用户 h2con , h2user , h2password ...
zookeeper的常规配置? ! zookeeper的节点状态? ! zookeeper客户端使用? ! zookeeper如何搭建集群? ! zookeeper集群架构说明? ! zookeeper的master 选举机制? ! zookeeper主从复制机制? ! zookeeper的典型使用场景有...
部署简便,可以一键启动,不需要配置数据库、不需要搭建web容器;支持zookeeper ui界面化操作;支持多环境管理;支持redis ui界面化操作;支持多环境管理;支持权限控制,可以自定义不同环境的新增、修改、删除权限;...
kafka broker 常规配置 ----总结自《kafka 权威指南》 ...该配置参数是用冒号分隔的一组 hostname:/port/path(path 是可选的 zookeeper 路径,默认为根路径) 列表。如果指定的 chroot 路径不存