4.zookeeper权限控制

概述

zookeeper类似文件系统,client 可以创建节点、更新节点、删除节点。zookeeper的access control list 访问控制列表可以对节点权限的控制。acl权限列表特点如下:

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

acl权限控制,使用scheme:id:permission来标识,主要涵盖 3 个方面:

  • 权限模式(scheme):授权的策略
权限模式命令格式描述
worldsetAcl <path> world:anyone:<acl>只有一个用户:anyone,代表登录zokeeper所有人(默认)
ipsetAcl <path> ip:<ip>:<acl>对客户端使用IP地址认证
authsetAcl <path> auth:<user>:<acl>使用已添加认证的用户认证(密码使用明文)
digestsetAcl <path> digest:<user>:<password>:<acl>使用“用户名:密码”方式认证(密码使用密文)
  • 授权对象(id):授权的对象
    给谁授予权限,授权对象ID是指,权限赋予的实体,例如:IP 地址或用户。
  • 权限(permission):授予的权限
    授予的全下你包括,create、delete、read、write、admin也就是 增、删、查、改、管理权限, 这5种权限简写为cdrwa。注意:这5种权限中,delete是针对删除子节点和自身节点都有效的权限,create是只针对添加子节点有效的权限,其它3种权限指对自身节点的操作权限。
权限ACL简写描述
createc创建子节点权限
deleted删除自身节点和子节点权限
readr读取当前节点数据
writew设置当前节点数据权限
admina设置节点访问控制列表权限,即设置cdrwa权限的权限

授权的相关命令

命令描述
getAcl读取ACL权限
setAcl设置ACL权限
addauth添加认证用户

权限实操

  1. world授权模式
    在这里插入图片描述
    只演示删除权限,其他权限自行实操。

  2. ip授权模式
    准备两台机器(可以使用克隆),比如我的一台机器192.168.64.129连接自己本地的zookeeper服务,另外一台机器192.168.64.132连接192.168.64.129服务。
    在这里插入图片描述
    在这里插入图片描述

  3. auth授权模式
    使用auth授权模式,先添加认证用户,命令格式:addauth digest <user>:<password>
    在这里插入图片描述
    quit命令,退出当前会话,并使用./zkCli.sh重新连接客户端。
    在这里插入图片描述
    重新认证的密码要和设置权限明文密码一样,即使不一样也不会报错,只是没有节点相应操作而已。

  4. digest授权模式
    digest授权需要将密文加密后,用密文进行授权,明文加密成密文命令格式如下:
    echo -n <user>:<password> | openssl dgst -binary -sha1 | openssl base64
    在这里插入图片描述
    在这里插入图片描述
    auth模式和digest模式本质都一样的,只是前者用明文赋予权限,后者用密文赋予权限。前者先认证后授权,后者先授权后认证,所以auth授权后仍然能访问节点,后者授权后需要重新认证后才能访问节点。

  5. acl超级管理员
    zookeeper的权限管理模式有一种叫做super,该模式提供一个超管可以方便的访问 任何权限的节点。
    假设这个超管是:super:admin,需要先为超管生成密码的密文。
    echo -n super:admin | openssl dgst -binary -sha1 | openssl base64
    那么打开zookeeper目录下的{zkhome}/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}"
    在原来的配置上加上一个超级管理员配置项,格式如下:
    "-Dzookeeper.DigestAuthenticationProvider.superDigest=<超管用户>:<超管密文密码>"
    实操如下:
    在这里插入图片描述
    在这里插入图片描述
    记住在/的前面添加,重启zookeeper让配置生效。
    在这里插入图片描述

  6. 多种授权模式
    多种授权模式,用逗号分隔
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NPException.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值