ZooKeeper学习之zookeeper的ACL(AUTH)

zookeeper的ACL(AUTH)
ACL(Access Control List),Zookeeper作为一个分布式协调框架,其内部存储的都是一些关于分布式
系统运行时状态的元数据,尤其是设计到一些分布式锁,Master选举和协调等应用场景。我们需要有
效地保障Zookeeper中的数据安全,Zookeeper提供了三种模式。权限模式,授权对象,权限。
权限模式:Scheme,开发人员最多使用的如下四种权限模式:
    IP:ip模式通过ip地址粒度进行权限控制模式,例如配置了:192.168.110.135即表示权限控
           制都是针对这个ip地址的,同时也支持按网段分配,比如:192.168.110.*
    Digest:digest是最常用的权限控制模式,也更符合我们对权限控制的认识,其类似于
               "username:password"形式的权限标识进行权限配置。ZK会对形成的权限标识先后进
                行两次编码处理,粉笔是SHA-1加密算法和Base64编码。
        World:World是一直最开放的权限控制模式。这种模式可以看做为特殊的Digest,他仅仅是
               一个标识而已。
        Super:超级用户模式,在超级用户模式下可以对ZK任意进行操作。
 
权限对象:值得是权限赋予的用户或者是一个指定的实体,例如ip地址或机器等。在不同的模式下,
授权对象是不同的。这种模式和权限对象一一对应。
 
权限:权限就是指那些通过权限检测后可以被允许执行的操作,在ZK中,对数据的操作权限分为以下
五大类:create,delete,read,write,admin

设置访问控制:

方式一:(推荐)
1)增加一个认证用户
addauth digest 用户名:密码明文
eg. addauth digest user1:password1
2)设置权限
setAcl /path auth:用户名:密码明文:权限
eg. setAcl /test auth:user1:password1:cdrwa
3)查看Acl设置
getAcl /path

方式二:
setAcl /path digest:用户名:密码密文:权限

注:这里的加密规则是SHA1加密,然后base64编码。  加密代码

DigestAuthenticationProvider.generateDigest("xmr:123456")

猜你喜欢

转载自blog.csdn.net/pf1234321/article/details/83791469