ZooKeeper ACL权限控制
1.1、ACL权限控制:
使用scheme、id、permission 来标识,主要涵盖 3 个方面:
权限模式(scheme):授权的策略
授权对象(id):授权的对象
权限(permission):授予的权限
1.2、Zookeeper ACL的特性:
Zookeeper的权限控制是基于znode节点的,需要对每个节点设置权限。
每个znode支持设置多种权限控制方案和多个权限。
子节点不会继承父节点的权限。客户端无法访问某个节点,但是可以访问他的子节点
1.3、权限模式
方案 描述
world 只有一个用户:anyone,代表登录zokeeper所有人(默认)
ip 对客户端使用IP地址认证
auth 使用已添加认证的用户认证
digest 使用“用户名:密码”方式认证
1.4、授予权限
create、delete、read、writer、admin也就是 增、删、改、查、管理权限,这5种权限简写为cdrwa,注意:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限。
权限 ACL简写 描述
create c 可以创建子节点
delete d 可以删除子节点(仅下一级节点)
read r 可以读取节点数据及显示子节点列表
write w 可以设置节点数据
admin a 可以设置节点访问控制列表权限
2.1、启动ZooKeeper集群
启动ZooKeeper集群,具体步骤可以参考ZooKeeper 安装与部署。
2.2、启动zkCli客户端
cd /usr/cstor/zookeeperbin/zkClin.sh
2.3、查看节点ACL
create /node1 “node1”getAcl /node1
这是创建节点时的默认acl ,表示任何连接到Zookeeper的客户端都能对该节点进行cdrwa操作。权限设置要使用模式 acl的模式为 scheme: id:permission 比如 world:anyone:cdwa。
2.4、world权限
world权限模式只有一种设置模式。就是 setAcl world:anyone:[r][w][c][d][a]
(1)、取消节点读取数据权限:
setAcl /node1 world:anyone:cdwa 取消节点读取数据权限getAcl /node1 查看节点权限get /node1 获取node1节点值
设置以后尝试读取/node1节点将是没有权限 Authentication is not valid。
(2)、取消节点设置数据的权限
setAcl /node1 world:anyone:cda 取消设置数据权限getAcl /node1 查看节点权限set /node1 "node111111" 修改node1节点值
(3)、取消节点创建子节点的权限
setAcl /node1 world:anyone:da 取消节点创建子节点权限getAcl /node1 查看节点权限create /node1/node2 "node2" 在node1节点下创建子节点node2并赋值 node2
(4)、取消删除子节点的权限
create /node8 "888" create /node8/node9 "999"setAcl /node8 world:anyone:a 取消删除子节点的权限delete /node8/node9 删除node8节点下的子节点node9
(5)、取消ACL相关权限
create /node666 "666"setAcl /node666 world:anyone: 取消node666 全部权限getAcl /node666setAcl /node666 world:anyone:rwcda
取消了a权限以后,getAcl setAcl命令都没有权限。
2.5、IP权限模式
该模式使用的ACL方式是 ip:10.30.196.4:[r][w][c][d][a]
create /node20 "node20"setAcl /node20 ip:10.30.196.4:rwcdagetAcl /node20get /node20
设置只有ip为10.30.196.3的客户端连接才能进行rwdca操作,其他ip啥操作都做不了。因为图中设置ACL的客户端不是这个ip,所以设置了后,他就失去对该节点的权限了,所以getAcl命令会没有权限。
getAcl /node20get /node20
我们用ip为10.30.196.4的客户端链接,有rwdca权限,所以能够执行getAcl操作和读读取节点数据。
2.6、auth授权模式
这个要配合addauth命令。
第一步:先添加授权用户 addauth digest username:password
第二步:设置该节点只有登录了该授权用户的客户端连接才能进行操作。
addauth digest admin:123456create /nodeAuth “nodeAuth”setAcl /nodeAuth auth:admin:rwdcagetAcl /nodeAuth
把客户端quit退出重新连接后:
get /nodeAuth
失去了对该节点的权限。需要使用addauth命令添加授权才行。类似登录之后才能对该节点有权限。
addauth digest admin:123456get /nodeAuth
2.7、digest授权模式
digest授权模式基于账号密码的授权模式,与Auth模式类似,只是他设置权限之前不用使用addauth digest username:password进行权限用户添加。直接使用命令 setAcl path digest:username:password:acl 进行授权就行(只是这里的密码要使用加密后的密码,不能使用铭文密码)。
linux命令行输入
echo -n admin:123456 | openssl dgst -binary -sha1 | openssl base64
zkCli客户端输入
create /nodeDigest "nodeDigest"setAcl /nodeDigest digest:admin:0uek/hZ/V9fgiM35b0Z2226acMQ=:rwdcagetAcl /nodeDigestget /nodeDigestaddauth digest admin:123456getAcl /nodeDigestget /nodeDigest
2.8多种授权模式
同一个节点可以同时使用多种模式授权
create /nodeManyAcl "nodeManyAcl"addauth digest admin:123456setAcl /nodeManyAcl ip:10.30.196.3:rdca,auth:admin:rwdca,digest:admin:0uek/hZ/V9fgiM35b0Z2226acMQ=:rwdcagetAcl /nodeManyAcl
ZooKeeper ACL权限控制相关推荐
- Apache ZooKeeper - ZK的ACL权限控制( Access Control List )
文章目录 概述 权限模式(Scheme) 口令验证 范围验证 Super权限模式 授权对象(ID) 权限信息(Permission) ACL相关命令 跳过ACL检测 实操ACL 生成授权ID 方式一 ...
- Ⅳ:zookeeper的acl权限控制
2021最新zookeeper系列 ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤ ...
- Kafka集群搭建及SASL/SCRAM,ACL权限控制
Kafka集群搭建及SASL/SCRAM,ACL权限控制 环境 部署zookeeper集群及安全认证 部署kafka集群及安全认证 环境 系统版本:Centos7.4 kafka版本:kafka_2. ...
- kafak集群部署配置,开启SASL_PLAINTEXT认证以及acl权限控制
SASL_PLAINTEXT认证 本人认为就是consumer连接broker开启了用户名,密码认证 acl权限控制 就是指针对用户 配置拥有哪些操作权限,如 topic的读,写,group的读,to ...
- Linux之ACL权限控制
ACL权限控制主要目的是提供传统的owner,group,other的read,wirte,execute权限之外的具体权限设置,可以针对单一用户或组来设置特定的权限 设置ACL权限:setfacl ...
- zookeeper的acl权限控制_zookeeper权限acl与四字命令
权限acl介绍,acl的构成与id acl是Access control lists 的缩写,也就是权限控制列表: 针对节点可以设置相关读写等权限,目的是为了保障数据安全性 权限permissions ...
- Zookeeper后端开发工具Curator的使用 | Curator对节点的增删改查 | ACL权限控制 | 分布式锁 | 分布式计数器 | 附带最新版本下载
前言 Curator是Apache开源的一个Java工具类,通过它操作Zookeeper会变得极度舒适! 前置条件:已掌握的基本操作,比如在后台可以增减节点.ACL权限设置等. 1.Zookeeper ...
- zookeeper的acl权限控制_Zookeeper 权限控制 ACL介绍
zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的.ACL 权限可以针对节点设置相关读写等权限,保障数据安全性.permissions 可以 ...
- kazoo扫盲指南,简述ZK ACL权限控制及使用方式
kazoo扫盲指南 kazoo是什么? 官方文档 基本用法 会话状态 zookeeper的增删改查 读取数据 更新数据 删除节点 监听器 kazoo事务 Zookeeper权限控制之ACL 创建ACL ...
最新文章
- 字节跳动Java高级工程师:java队列实现停车场出入
- service层加需要加锁吗_Redis分布式锁,你真的用对了吗?
- new Map的妙用
- python控制窗口显示隐藏
- 燃!Java全球标准中国人参与制定,阿里成首个受邀中国公司
- linux bash学习(一)
- python蓝牙模块_Python蓝牙模块lightblue在mac osx 10.8上不起作用
- 英伟达、英特尔、AMD显卡设置,减少游戏掉帧卡顿
- SAP Data Service操作简介
- APENFT TRON GameFi黑客松大赛成功落幕 50万美元大奖花落谁家
- 深信服“监控员工跳槽倾向”引争议,律师称未告知员工涉嫌违法
- 支付宝与微信对账文件解析
- DataFun: 微信NLP算法微服务治理
- display: flex属性介绍
- Impala自动同步Hive元数据
- 前端导出(JSON\数据流)
- 单尺度Retinex(SSR) + 代码实现
- Haffman编码实现文本压缩-C语言-万字长文,绝对详细
- 数据传输完整性_制造系统数据完整性的特殊性(二)
- QXmpp源码 GuiClient