Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于STM32的嵌入式语音识别模块设计实现「建议收藏」
介绍了一种以ARM为核心的嵌入式语音识别模块的设计与实现。模块的核心处理单元选用ST公司的基于ARM Cortex-M3内核的32位处理器STM32F103C8T6。本模块以对话管理单元为中心,通过以LD3320芯片为核心的硬件单元实现语音识别功能,采用嵌入式操作系统μC/OS-II来实现统一的任务调度和外围设备管理。经过大量的实验数据验证,本文设计的语音识别模块具有高实时性、高识别率、高稳定性的优点。本文引用地址:http://www.eepw.com.cn/article/201706/347845.htm
全栈程序员站长
2022/09/13
2.5K0
零基础入门STM32编程(二)
上篇文章初步认识了STM32,了解了STM32的分类及型号命名规则,本篇内容继续STM32串口编程入门学习。
全栈程序员站长
2022/10/04
8660
零基础入门STM32编程(二)
ARM 与 STM32 的关系
1978年,奥地利籍物理学博士Hermann Hauser,和他朋友,一位英国工程师Chris Curry,共同创建了一 家名为“Cambridge Processor Unit,CPU”的公司,中文字面意思就是“剑桥处理器单元”,主要从事研发 当地电子仪器设备的业务,比如街头游戏机之类的。
韦东山
2022/05/05
5760
ARM 与 STM32 的关系
STM32型号详解
微处理器(MPU)通常代表一个功能强大的CPU,但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。中央处理器,或简称为处理器,英文缩写为CPU,即Central Processing Unit,是电子计算机的主要设备之一,其功能主要是解译计算机指令以及处理计算机软件中的数据。CPU为电子计算机设计提供了基本的数字计算特性。CPU、存储设备和输入/输出设备是现代微型电脑的三大核心部件。由集成电路制造的CPU通常称为微型处理器。从20世纪70年代中期开始,单芯片微型处理器几乎取代了所有其他类型的CPU,如今CPU这个术语几乎成为了所有微型处理器的代称。
怪兽
2023/03/06
2.8K0
STM32型号详解
STM32设计的物联网智能鱼缸
随着人们生活水平的提高,家居环境中的绿色生态和健康生活越来越受到重视。鱼缸作为家居装饰的一部分,不仅需要美观,还需要关注鱼儿的健康和生存环境。为了满足这一需求,当前设计了基于STM32的智能鱼缸系统。
屿小夏
2024/11/01
6921
STM32设计的物联网智能鱼缸
【论文复现】STM32设计的物联网智能鱼缸
随着居民生活品质的提升,家居空间内的绿色生态理念与健康生活方式日益受到人们的青睐。鱼缸,作为家居美化的一环,不仅要求外观雅致,更需兼顾鱼类的健康及其所居环境的优劣。为此,一款基于STM32技术的智能鱼缸系统应运而生。
Eternity._
2024/11/18
7150
【论文复现】STM32设计的物联网智能鱼缸
STM32F103RCT6,STM32F103RCT6中文资料,STM32F103RCT6数据手册
意法半导体的STM32F1系列主流MCU满足了工业、医疗和消费类市场的各种应用需求。凭借该产品系列,意法半导体在全球Arm Cortex-M内核微控制器领域处于领先地位,同时树立了嵌入式应用历史上的里程碑。
电子交流圈
2022/03/22
1.3K0
【STM32】STM32单片机入门
这是一个新的系列,stm32单片机系列,资料都是从网上找的,主要参考江协科技还有正点原子以及csdn博客等资料,以一个一点没有接触过单片机但有一点编程基础的小白视角开始stm32单片机的学习,希望能对也没有学过51直接学32的同学们有一定的作用和帮助 文章内容有很多是自己的理解,希望各位嵌入式大佬们可以看一下文章然后帮忙指正一下错误,感谢!
s-little-monster
2024/08/09
3190
【STM32】STM32单片机入门
MCU缺货涨价后的国产化浪潮(三):全球 MCU 市场高度集中,多因素共振加速国产替代
中国MCU当前市场存量约250-300亿元,本土厂商超过100家,但合计市占率却不足15%,虽然在性价比方面有独特优势,但产品系列及生态建设方面差距不小,且大多数厂商集中在消费类市场,工控和汽车还有待拓展。国内MCU厂商该如何发力?
AI 电堂
2021/10/09
1.1K0
ESP32与STM32哪种更适合初学者?
无论是刚入坑的小白,还是想扩展技术栈的老鸟,在选择主力 MCU 时,学习曲线绝对是重要的考量因素。
不脱发的程序猿
2025/04/13
4380
ESP32与STM32哪种更适合初学者?
STM32F103资料下载和介绍
读者可以从百问网资料下载中心(http://download.100ask.net/)下载本开发板的所有资料。进入下载中心后,在左侧标签栏找到“100ASK_STM32F103开发板”并点击,根据页面提示下载资料。
韦东山
2022/05/05
6590
STM32F103资料下载和介绍
STM32 结构
从“2.2 ARM与STM32的关系”可知,ARM公司负责设计内核,半导体芯片厂商拿到内核授权后,根据产品需求,添加各类组件,生产芯片售卖。如图 6.1.1 所示,为STM32的组成示意图,其中Cortex-M3内核、调试系统都是ARM公司设计,内部总线、外设、存储、时钟复位等都由ST公司开发。
韦东山
2022/05/05
1.2K0
STM32 结构
stm32学习笔记
单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片
是小北a
2023/10/21
2870
stm32学习笔记
STM32与S3C2440的区别
在学习嵌入式的路上,我们可能会接触到这两个比较典型的MCU。其中最大的区别就是S3C2440能跑linux操作系统,常常作为学习嵌入式linux的硬件平台。可能大家会问既然S3C2440能跑linux操作系统,似乎比stm32厉害多了,为什么不直接去学习S3C2440呢? 下面我就大概解释一下大家遇到的困惑:
全栈程序员站长
2022/08/13
1.4K0
stm32编程入门书籍_STM32开发板
STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。
全栈程序员站长
2022/10/04
1.5K0
stm32编程入门书籍_STM32开发板
STM32WB-双核无线多协议MCU
无线STM32WB MCU基于两个独立的内核(以64 MHz运行的Arm® Cortex®‐M4内核(应用处理器)和以32 MHz运行的Arm® Cortex®‐M0+内核(网络处理器)),可以提高无线电协议栈的实时执行效率,同时降低功耗。
云深无际
2025/02/25
1520
STM32WB-双核无线多协议MCU
stm32可以跑Linux操作系统吗?
STM32是一款单片机,它由意法半导体公司制造。ST是意法半导体的简称,M是指微控制器(也就是单片机的)MCU的第一个英文字母,32是指32位的CPU,它的CPU是采用的ARM公司的Cortex-M系列的内核设计。
混说Linux
2023/02/24
5K0
stm32可以跑Linux操作系统吗?
STM32F103C8T6单片机简介「建议收藏」
STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。除了被我们熟知的STM32,ST公司还有SPC5X系列、STM8系列等,具体参数如下:
全栈程序员站长
2022/08/10
13.8K0
STM32F103C8T6单片机简介「建议收藏」
STM32F103C8T6芯片的重要引脚功能有哪些?
STM32F103C8T6 是 STM32F1 系列中的一款基于 ARM Cortex-M3 内核的微控制器,具有丰富的外设和引脚功能。
不脱发的程序猿
2024/11/28
1.3K0
STM32F103C8T6芯片的重要引脚功能有哪些?
ARM概念区分
ARM7、ARM9、ARM11: 都是内核的名称,由ARM公司设计的内核。ARM既是一家公司,也是一类处理器核心的统称。他们使用了不同的架构,ARM7使用ARMv4架构,ARM7使用ARMv5架构,ARM11使用ARMv6架构。ARM7没有MMU单元也就没有办法为多用户多进程分配进程自己的地址空间,所以ARM7无法运行Linux这种多用户多进程操作系统,而ARM9、ARM11带有MMU内存管理单元。
mindtechnist
2024/08/08
2310
ARM概念区分
相关推荐
基于STM32的嵌入式语音识别模块设计实现「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验