写点什么

zookeeper-ACL 权限相关

作者:zarmnosaj
  • 2022 年 7 月 15 日
  • 本文字数:721 字

    阅读完需:约 2 分钟

acl 权限模式

acl 权限模式有 3 种:

  1. world:授权任何登录 zookeeper 的人

  2. ip:对客户端指定 ip 授权

  3. auth:对已添加的认证用户进行授权

  4. digest:使用用户名:密码进行授权

授权方式:

scheme:id:permission


其中 scheme 表示指定授权的策略 id 表示指定授权的对象 permission 指定授予的权限

特性

  1. zooKeeper 的权限控制是基于每个 znode 节点进行授权的,所以需要对每个节点进行设置权限

  2. 每个 znode 可以支持设置多种权限控制方案,也可以授予多个权限

  3. 子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点

权限列表

对节点授予的权限主要包含 5 种:增、删、改、查、管理


增:可以创建子节点,acl 简写为 c 删:可以删除子节点(仅下一级节点)改:可以设置节点数据查:可以读取节点数据及显示子节点列表管理:可以设置节点访问控制列表权限

授权相关命令

  1. getAcl:读取 acl 权限信息用法:getAcl path

  2. setAcl:设置 ACL 权限用法:setAcl <path> world:anyone:<acl>

  3. addauth:添加认证用户用法:addauth digest <user>:<password> #添加认证用户setAcl <path> auth:<user>:<acl>

zookeeper 超级管理员

zookeeper 的权限管理模式有一种叫做 super,该模式提供一个超管可以方便的访问任何权限的节点。首先需要添加超管账号,添加方式如下:第一步:先为超管生成密码的密文,命令:


echo -n 超管账户名:超管密码 | openssl dgst -binary -sha1 | openssl base64
复制代码


第二步:打开 zookeeper 目录下的/bin/zkServer.sh 服务器脚本文件,找到如下信息:


nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}"
复制代码


在这之后加上超管的配置项第三步:重启 zookeeper,输入命令,添加权限用户


addauth digest 超管账户名:超管密码
复制代码


注意需要输入 base64 的密码

发布于: 刚刚阅读数: 2
用户头像

zarmnosaj

关注

靡不有初,鲜克有终 2020.02.06 加入

成都后端混子

评论

发布
暂无评论
zookeeper-ACL权限相关_7月月更_zarmnosaj_InfoQ写作社区