前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Zookeeper-权限管控(ACL)

Zookeeper-权限管控(ACL)

作者头像
运维小路
发布于 2025-05-17 06:37:30
发布于 2025-05-17 06:37:30
11900
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

前面我们介绍介绍了几个常用的代理服务器,本章节我们讲来讲解Zookeeper这个中间件

前面的操作无论是控制台也好,还是通过SDK的方式去链接(后面案例讲解),实际上都是没有认证的。在目前很多环境都有类似弱密码或者无密码的扫描,所以针对ZooKeeper 也需要进行权限管控,也是安全需要。

ZooKeeper 的权限管控通过ACL(Access Control List,访问控制列表实现,用于控制客户端对 znode(数据节点)的访问权限。以下是关于 ZooKeeper ACL 的详细说明:

1.ACL 的基本概念

ACL 是 ZooKeeper 权限控制的核心机制,用于定义哪些客户端可以访问特定的 znode,以及它们可以执行哪些操作。ACL 的实现类似于 UNIX 文件系统的权限控制,但它更加灵活。

2. 支持的权限模式

模式

描述

示例

world

默认模式,所有用户可访问。ID固定为anyone。

world:anyone:cdrwa

auth

使用当前会话中已认证的用户,无需指定ID。需先调用addauth。

auth::cdrwa

digest

用户名+密码认证,密码以SHA1哈希存储。需提前调用addauth digest user:pass。

digest:user:XDkd2dsEuhj9inqu2qjqQ==:cdrwa

ip

基于客户端IP地址认证。

ip:192.168.1.1:cdrwa

sasl

集成Kerberos等安全协议,适用于企业级认证。

sasl:user@REALM:cdrwa


3. 权限类型

权限

缩写

描述

CREATE

c

允许创建子节点。

READ

r

允许读取节点数据及子节点列表。

WRITE

w

允许修改节点数据。

DELETE

d

允许删除子节点(仅对子节点有效)。

ADMIN

a

允许设置节点的ACL。

4.权限操作

添加或者修改认证,这个认证不具有继承性,当前设置只确保/path有认证,但是/path/1及其他子znode不会有认证。

需要注意就是已经跑上业务的ZooKeeper集群并不是添加密码认证,因为这个涉及到业务端的修改。

4.1 密码生成

这里的密码生成的时候,会把账号也包括进去进行hash计算,所以这里对应的账号密码需要和实际添加acl规则的时候保持一致,否则就会出现认证失败的情况。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# java -cp "/opt/zookeeper1/lib/*" org.apache.zookeeper.server.auth.DigestAuthenticationProvider user1:pass123
14:16:03.407 [main] INFO org.apache.zookeeper.server.auth.DigestAuthenticationProvider - ACL digest algorithm is: SHA1
user1:pass123->user1:3pSOxG2XvEeQTEHYsoM/cfCyoO4=

4.2 添加访问权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 未认证时访问被拒绝
get /secure-node
# 输出:Authentication is not valid : /secure-node

# 添加认证后允许访问,这个地方使用明文
addauth digest user:pass123
get /secure-node

4.3 设置权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#设置修改历史目录权限 
#这里需要使用上面生成的密文 
setAcl /path digest:user:密文:crwda
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setAcl /test1 digest:user:LQIBOXBNEwStXazl6y5HKgpmPjo=:crdwa
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#创建时候带权限,这里也需要使用密文 
create /myznode mydata digest:user:密文:cdrwa

4.4 删除认证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#其实就是设置为默认权限 
setAcl /path world:anyone:crwda

4.5 忘记密码找回

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#修改配置文件
zoo.cfg 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
skipACL=yes 
#重启zk服务器,再进入就不需要密码
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
你的简历写了 “熟悉” zookeeper ?那这些你会吗?
Zookeeper 它作为Hadoop项目中的一个开源子项目,是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调服务。
程序员小富
2020/07/13
4730
你的简历写了 “熟悉” zookeeper ?那这些你会吗?
Zookeeper权限管理与Quota管理
Zookeeper的ACL机制和Quota机制网上资料较少,这里做一个总结,以供大家参考。 1 Zookeeper ACL ZooKeeper的权限管理亦即ACL控制功能通过Server、Client两端协调完成: Server端: 一个ZooKeeper的节点(znode)存储两部分内容:数据和状态,状态中包含ACL信息。创建一个znode会产生一个ACL列表,列表中每个ACL包括: l 验证模式(scheme) l 具体内容(Id)(当scheme=“digest”时,Id为用户名密码,例如“root:
三丰SanFeng
2018/01/16
1.4K0
Zookeeper权限管理与Quota管理
zookeeper ACL 权限控制
zooKeeper使用acl(Access Control List)来控制对其znode(zooKeeper数据树的数据节点)的访问。 不过,zookeeper的acl并不像HDFS系统的acl一样,可以递归控制权限。zookeeper的acl不是递归的,仅适用于特定的znode。比如/app这个znode,设置一些权限,只能某用户可以访问,但是/app/status的权限是与/app没有关系的,默认是world:anyone:cdrwa。
create17
2019/04/17
6.5K0
zookeeper ACL 权限控制
答应我,不会这些概念,简历不要写 “熟悉” zookeeper
本文主要分享一下zookeeper的一些基本概念,在正式进入正题前,和大家聊一聊刚入行时我的面试经验,可以说是耿直的有些可爱。
程序员小富
2020/03/31
4730
答应我,不会这些概念,简历不要写 “熟悉” zookeeper
玩转zookeeper命令
-r 只读模式, 当半数zk节点down,此时对zk集群不能操作。如果加上这个参数,能连接上集群,对zk集群进行操作(只读)读取数据。
sunsky
2020/08/20
9650
ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表
zk做为分布式架构中的重要中间件,通常会在上面以节点的方式存储一些关键信息,默认情况下,所有应用都可以读写任何节点,在复杂的应用中,这不太安全,ZK通过ACL机制来解决访问权限问题,详见官网文档:http://zookeeper.apache.org/doc/r3.4.6/zookeeperProgrammers.html#sc_ZooKeeperAccessControl 总体来说,ZK的节点有5种操作权限: CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,
菩提树下的杨过
2018/01/19
2.7K0
ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表
Zookeeper ACL权限配置及zkclient示例
zk做为分布式架构中的重要中间件,通常会在上面以节点的方式存储一些关键信息,默认情况下,所有应用都可以读写任何节点,在复杂的应用中,这不太安全,ZK通过ACL机制来解决访问权限问题,详见官网文档:http://zookeeper.apache.org/doc/r3.4.6/zookeeperProgrammers.html#sc_ZooKeeperAccessControl ZK的节点有5种操作权限: CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限
斯武丶风晴
2018/03/01
5K0
zookeeper权限acl与四字命令
如果设置了权限后,再次进行设置,就可以不用加上用户名和密码了。而且就算是使用其他用户进行设置,也只会根据第一次设置的用户来进行配置:
端碗吹水
2020/09/23
1.1K0
zookeeper权限acl与四字命令
ZooKeeper ACL权限设置
ZK的节点有5种操作权限: CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写) 注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限
全栈程序员站长
2022/07/20
2.4K0
ZooKeeper ACL权限控制机制
ZooKeeper 的 ACL 权限控制和 Unix/Linux 操作系统的ACL有一些区别,我们可以从三个方面来理解 ACL 机制,分别是:权限模式(Scheme)、授权对象(ID)和权限(Permission),通常使用 scheme:id:perm 来标识一个有效的ACL信息。
smartsi
2019/11/26
3.1K0
zookeeper入门(1)「建议收藏」
维护配置信息 如java编程经常遇到配置项,比如数据路连接的url,password等等。通常这些配置文件需要放在服务器上,但需要更改配置文件的时候需要去服务器上更改。但是随着分布式系统的兴起,由于许多服务器都有配置文件,一台台的更改配置文件相当麻烦,因此需要一种服务,能够高效且可靠的完成配置项的更改等操作,并保证各配置项在每台服务器上的一致性。所以有必要将zookeeper当成所有集群的一个配置中心,当zookeeper中过的配置发生变华的时候,会通知集群中的服务器重新获取最新的配置信息。 分布式锁 分布式环境中,一个服务可能部署在多台机器上,一个调用也可能设计多台机器多个进程,zookeeper提供了一种临时有序节点机制,可以生成分布式锁,进而保证分布式环境下的数据一致性。 集群管理 一个集群中的某些服务器宕机或者加入到该集群时,zookeeper会将这些消息通知给集群中的其他服务器,以调整存储和计算等任务的分配和执行等,此外zookeeper还会对故障的服务器做出诊断并尝试修复 生成分布式ID 在过去的单表单库型系统中,通常可以使用数据库字段自带的AUTO_INCREMENT属性来属性来唯一标识一条记录。此时我们就可以用zookeeper在分布式环境下生成全局唯一ID。做法如下:每次要生成一个新的id时,创建一个持久顺序节点,创建操作返回的节点序号,然后把比自己节点小的删除即可。
全栈程序员站长
2022/09/21
4780
zookeeper入门(1)「建议收藏」
zookeeper使用详解(命令、客户端、源码)
  zookeeper我们常用来做分布式协调中间件,很多时候我们都接触不到它的原理和用法,我对他的了解也仅限于知道它可以做分布式协调、配置管理、分布式锁,并且有个watch节点监听常常能听到。接下来我要系统的学下zookeeper的功能和原理,一起走进zookeeper的世界
老梁
2019/09/10
2.5K0
zookeeper使用详解(命令、客户端、源码)
Zookeeper
即所谓的配置中心.发布订阅一般有两种设计模式,分别为: Push模式和Pull模式. ZK采用推拉模式相结合的方式: 客户端向服务端注册自己需要监听的节点,一旦该节点数据发生变更,服务端向客户端发送Watcher事件通知,客户端收到通知之后主动向服务端获取最新数据. 基于ZK配置中心的配置信息有如下特点:
spilledyear
2020/02/18
1.5K0
Zookeeper
acl权限控制
zookeeper 类似文件系统,client 可以创建节点、更新节点、删除节点,那么 如何做到节点的权限的控制呢?
chenchenchen
2020/05/27
1.6K0
分布式服务Dubbo+Zookeeper安全认证
由于之前的服务都是在内网,Zookeeper集群配置都是走的内网IP,外网不开放相关端口。最近由于业务升级,购置了阿里云的服务,需要对外开放Zookeeper服务。
小柒2012
2019/12/09
1.3K0
分布式服务Dubbo+Zookeeper安全认证
Zookeeper的基础
数据发布和订阅(配置中心,config,disconf,diamond,appollo)
HUC思梦
2020/09/03
6360
Zookeeper的基础
Apache ZooKeeper - ZK的ACL权限控制( Access Control List )
ACL全称为Access Control List(访问控制列表),用于控制资源的访问权限,可以控制节点的读写操作,保证数据的安全性 。
小小工匠
2021/08/17
4.6K0
探索:从入门到放弃之Zookeeper3.6.0
目前zookeeper的版本是3.6.0,同时增加了几个新特性,同时拥抱了Prometheus.
公众号: 云原生生态圈
2021/11/15
1.3K0
zookeeper(4)——alc
权限控制(access control lists) 针对节点可以设置相关读写等权限,目的是为了保证数据安全性。 权限permissions 可以指定不同的权限访问以及角色
羊羽shine
2019/05/29
6900
ZooKeeper学习第六期---ZooKeeper机制架构
ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制。ACL的实现和Unix文件访问许可非常相似:它使用许可位来对一个节点的不同操作进行允许或禁止的权 限控制。但是和标准的Unix许可不同的是,Zookeeper对于用户类别的区分,不止局限于所有者(owner)、组 (group)、所有人(world)三个级别。Zookeeper中,数据节点没有"所有者"的概念。访问者利用id标识自己的身份,并获得与之相应的 不同的访问权限。
用户5640963
2019/07/26
6630
ZooKeeper学习第六期---ZooKeeper机制架构
相关推荐
你的简历写了 “熟悉” zookeeper ?那这些你会吗?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验