zookeeper——权限控制ACL

概述

ACL,全称:access control list,与linux系统对文件的权限控制类似,主要涵盖三个方面:

  • 权限模式(scheme):授权的策略
  • 授权对象(id):anyone、ip地址
  • 权限(permission)

特点如下:

  • zookeeper的权限控制是基于每个znode节点的,对每个节点设置权限
  • 每个znode支持设置多种权限控制方案核多个权限
  • 子节点不会继承父节点的权限,客户端无权访问某节点,但是可以访问它的子节点。

授权模式

  • world:默认授权模式,代表登录zookeeper的所有用户,anyone
  • ip:对客户端使用ip地址认证
  • auth:使用一个认证的用户认证
  • digest:使用 用户名/密码 的方式认证

权限

  • create:创建子节点
  • delete:删除子节点(仅限于下一级节点)
  • read:读取节点数据以及显示子节点列表
  • write:设置节点数据
  • admin:设置节点访问控制列表权限

相关命令

getAcl [-s] path

setAcl [-s] [-v version] [-R] path acl

addauth scheme auth

getAcl

代表针对登录zookeeper的所有用户拥有 创建、删除、读取、设置节点数据、设置权限列表的权限

setAcl

Auth授权模式

添加认证用户

addauth digest leolee:lyl512240816

用户名leolee,密码:xxxxxxx

认证用户授权

 setAcl  /node1 auth:leolee:cdrwa

查看认证用户授权后的权限

之后连接zookeeper之后,需要执行 addauth digest 用户名:密码 才可以操作 /node1 节点。

digest授权模式

该模式需要提供一个加密的密码。

授权命令

setAcl <path> digest:<user>:<password>:<acl>

计算密码的密文

在linux系统中使用如下命令:

echo -n <user>:<password> | openssl dgst -binary -sha1 | openssl base64

执行之后会返回一个针对这个用户名的密码密文

授权操作

使用密文设置授权

setAcl <path> digest:<user>:<密文>:<acl>

登录授权用户

addauth digest <user>:<密码明文>

之后就可以操作该节点了。

多种授权模式

针对某个节点可以同时使用多种授权模式进行授权。

setAcl <path> ip:<ip:port>:<acl>,auth:<user>:<acl>,digest:<user>:<密文>:<acl>

Acl超级管理员

zookeeper提供一个超级管理员模式,使用超管可以方便的访问呢任何权限的节点。比如在忘记认证用户密码的时候,就可以使用超管进行相应的权限操作。

设置超管

生成密码密文:

echo -n <user>:<password> | openssl dgst -binary -sha1 | openssl base64

打开zookeeper目录下的/bin/zkServer.sh服务器启动脚本,找到如下信息:

nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \
"-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \

这是脚本中启动zookeeper的命令,默认是只有以上两个配置,超管模式需要增加一项配置:

"-Dzookeeper.DigestAuthenticationProvider.superDigest=<user>:<密码密文>"

之后启动zookeeper之后,就通过如下命令添加权限(登录超管用户):

addauth digest <超管用户名>:<密码明文>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值