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权限控制相关推荐

  1. Apache ZooKeeper - ZK的ACL权限控制( Access Control List )

    文章目录 概述 权限模式(Scheme) 口令验证 范围验证 Super权限模式 授权对象(ID) 权限信息(Permission) ACL相关命令 跳过ACL检测 实操ACL 生成授权ID 方式一 ...

  2. Ⅳ:zookeeper的acl权限控制

    2021最新zookeeper系列 ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤ ...

  3. Kafka集群搭建及SASL/SCRAM,ACL权限控制

    Kafka集群搭建及SASL/SCRAM,ACL权限控制 环境 部署zookeeper集群及安全认证 部署kafka集群及安全认证 环境 系统版本:Centos7.4 kafka版本:kafka_2. ...

  4. kafak集群部署配置,开启SASL_PLAINTEXT认证以及acl权限控制

    SASL_PLAINTEXT认证 本人认为就是consumer连接broker开启了用户名,密码认证 acl权限控制 就是指针对用户 配置拥有哪些操作权限,如 topic的读,写,group的读,to ...

  5. Linux之ACL权限控制

    ACL权限控制主要目的是提供传统的owner,group,other的read,wirte,execute权限之外的具体权限设置,可以针对单一用户或组来设置特定的权限 设置ACL权限:setfacl ...

  6. zookeeper的acl权限控制_zookeeper权限acl与四字命令

    权限acl介绍,acl的构成与id acl是Access control lists 的缩写,也就是权限控制列表: 针对节点可以设置相关读写等权限,目的是为了保障数据安全性 权限permissions ...

  7. Zookeeper后端开发工具Curator的使用 | Curator对节点的增删改查 | ACL权限控制 | 分布式锁 | 分布式计数器 | 附带最新版本下载

    前言 Curator是Apache开源的一个Java工具类,通过它操作Zookeeper会变得极度舒适! 前置条件:已掌握的基本操作,比如在后台可以增减节点.ACL权限设置等. 1.Zookeeper ...

  8. zookeeper的acl权限控制_Zookeeper 权限控制 ACL介绍

    zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的.ACL 权限可以针对节点设置相关读写等权限,保障数据安全性.permissions 可以 ...

  9. kazoo扫盲指南,简述ZK ACL权限控制及使用方式

    kazoo扫盲指南 kazoo是什么? 官方文档 基本用法 会话状态 zookeeper的增删改查 读取数据 更新数据 删除节点 监听器 kazoo事务 Zookeeper权限控制之ACL 创建ACL ...

最新文章

  1. 字节跳动Java高级工程师:java队列实现停车场出入
  2. service层加需要加锁吗_Redis分布式锁,你真的用对了吗?
  3. new Map的妙用
  4. python控制窗口显示隐藏
  5. 燃!Java全球标准中国人参与制定,阿里成首个受邀中国公司
  6. linux bash学习(一)
  7. python蓝牙模块_Python蓝牙模块lightblue在mac osx 10.8上不起作用
  8. 英伟达、英特尔、AMD显卡设置,减少游戏掉帧卡顿
  9. SAP Data Service操作简介
  10. APENFT TRON GameFi黑客松大赛成功落幕 50万美元大奖花落谁家
  11. 深信服“监控员工跳槽倾向”引争议,律师称未告知员工涉嫌违法
  12. 支付宝与微信对账文件解析
  13. DataFun: 微信NLP算法微服务治理
  14. display: flex属性介绍
  15. Impala自动同步Hive元数据
  16. 前端导出(JSON\数据流)
  17. 单尺度Retinex(SSR) + 代码实现
  18. Haffman编码实现文本压缩-C语言-万字长文,绝对详细
  19. 数据传输完整性_制造系统数据完整性的特殊性(二)
  20. QXmpp源码 GuiClient

热门文章

  1. 钉钉小程序sjs日期对象
  2. 招募 | “壹脑云科研圈“招募新成员啦
  3. Node.js 批量下载图片
  4. 虚拟机上网问题(设置NAT依然无法上网)
  5. 指导思想——人不成熟的五大特征
  6. 读书笔记:《你想活出怎样的人生》
  7. WTL for MFC Programmers,Part IV - Dialogs and Controls
  8. 【H5U PLC应用】
  9. 无字天书之Python爬虫第一页
  10. An Opinionated Guide to ML Research(机器学习研究指南)