美文网首页程序员大数据
Zookeeper的ACL权限控制

Zookeeper的ACL权限控制

作者: 木木与呆呆 | 来源:发表于2019-01-17 14:41 被阅读53次

    1.Zookeeper的节点有5种操作权限

    CREATE、READ、WRITE、DELETE、ADMIN
    也就是 增、查、改、删、管理权限,
    这5种权限简写为crwda(即:每个单词的首字符缩写)
    注意这5种权限中,
    delete是指对子节点的删除权限,
    其它4种权限指对自身节点的操作权限。

    2.身份的认证有4种方式

    world:默认方式,相当于全世界都能访问
    auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)
    digest:即用户名:密码这种方式认证,这也是业务系统中最常用的
    ip:使用IP地址认证

    3.设置访问控制

    3.1.方法一(推荐)

    3.1.1.增加一个认证用户

    addauth digest 用户名:密码明文
    eg. addauth digest user1:password1

    3.1.2.设置权限

    setAcl /path auth:用户名:密码明文:权限
    eg. setAcl /test auth:user1:password1:cdrwa

    3.1.3.查看Acl设置

    getAcl /path

    3.2.方法二

    setAcl /path digest:用户名:密码密文:权限
    注:这里的加密规则是SHA1加密,然后base64编码。

    4.使用auth进行身份认证的场景

    在zookeeper上面,使用yuwen:zdh1234用户,
    创建/test目录,进行增删改查。

    4.1.创建目录

    使用zkCli.sh客户端登陆,创建目录:
    create /test

    4.2.查看目录权限

    getAcl /test

    'world,'anyone
    : cdrwa
    

    可以看到任何人对/test目录都有增、删、改、查、管理权限。

    4.3.增加一个认证用户

    增加的用户名和密码可以自定义:
    addauth digest yuwen:zdh1234

    4.4.使用上面的认证用户设置目录的权限

    setAcl /test auth:yuwen:zdh1234:cdrwa

    4.5.查看目录权限

    getAcl /test

    'digest,'yuwen:zCY6ODYZ1NC2Ci6hz4bXA3AESFE=
    : cdrwa
    

    可以看到yuwen对/test目录有增、删、改、查、管理权限,
    而不是原来的anyone任何人了。
    ls /test
    可以看到命令执行成功。

    4.6.重新登陆查看目录

    新开一个zkCli.sh客户端重新登陆,
    查看/test目录:
    ls /test

    KeeperErrorCode = NoAuth for /test
    

    可以看到没有对/test目录的查看权限。

    4.7.使用认证用户查看

    增加一个认证用户:
    addauth digest yuwen:zdh1234
    查看/test目录:
    ls /test
    可以看到命令执行成功。

    4.8.一点说明

    上面第4.3步中如果不增加一个认证用户,
    则在设置权限的时候,直接使用如下命令:
    setAcl /path digest:用户名:密码密文:权限
    setAcl /test digest:yuwen:zCY6ODYZ1NC2Ci6hz4bXA3AESFE=:cdrwa
    但是ls /test的时候任然会没有执行权限。

    5.使用sasl进行身份认证的场景

    在zookeeper上面,使用yuwen用户,
    创建/testB目录,进行增删改查。

    使用zkCli.sh客户端登陆,
    创建/testB目录,同时设置sasl的ACL,
    赋予yuwen对/testB目录增、删、改、查、管理权限:
    create /testB sasl:yuwen:zdh1234:cdrwa
    create -s /testB data sasl:yuwen:zdh1234:cdrwa

    6.使用IP地址进行身份认证的场景

    create /testC ip:10.43.159.12:cdrwa

    相关文章

      网友评论

        本文标题:Zookeeper的ACL权限控制

        本文链接:https://www.haomeiwen.com/subject/qljidqtx.html