==背景==
阿里云ECS服务器提示“ZooKeeper未授权访问高危风险”
==相关组件及版本==
Linux:Centos 8.0
Zookeeper:3.5.6
Hadoop:2.8.3
Flink:1.10.0
==Zookeeper ACL介绍==
【ACL 权限控制】
使用:scheme:id:perm 来标识,主要涵盖 3 个方面:
权限模式(Scheme):授权的策略
授权对象(ID):授权的对象
权限(Permission):授予的权限
其特性如下:
ZooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限
每个znode支持设置多种权限控制方案和多个权限
子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点
《scheme》
采用何种方式授权
world:默认方式,相当于全部都能访问
auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的。用username:password 字符串来产生一个MD5串,然后该串被用来作为ACL ID。
认证是通过明文发送username:password 来进行的,当用在ACL时,表达式为username