苏童 发表于 2019-1-8 10:27:23

zookeeper 的权限控制


  ZK的节点有5种操作权限:

CREATE、READ、WRITE、DELETE、ADMIN 也就是增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)
注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限
身份的认证有4种方式:
world:默认方式,相当于全世界都能访问
auth:代表已经认证通过的用户(cli中可以通过addauth digestuser:pwd 来添加当前上下文中的授权用户)
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的
ip:使用Ip地址认证
设置访问控制:
方式一:(推荐)
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编码。
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
一、ip scheme
设置可以访问的ip地址(比如127.0.0.1)或ip地址段(比如192.168.1.0/16)
10.194.157.58这台机器上创建/test并设置ip访问权限
create /test "123"
Created /test
setAcl /test ip:10.194.157.58:crwda
cZxid =0x740021e467
ctime = Wed Dec02 18:09:09 CST 2015
mZxid =0x740021e467
mtime = Wed Dec02 18:09:09 CST 2015
pZxid =0x740021e467
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner =0x0
dataLength = 5
numChildren = 0
ls /test
[]
可以看到,本机是可以访问的。

在10.205.148.152上登陆
ls /test
Authenticationis not valid : /test
可以看到,连接的ip不在授权中,提示访问错误。
  二、设置用户和密码
   create /test '12345678'
  Created /test
   addauth digest user1:123456
   setAcl /test auth:user1:123456:r
  cZxid = 0x200000003
  ctime = Mon Sep 25 18:59:03 CST 2017
  mZxid = 0x200000003
  mtime = Mon Sep 25 18:59:03 CST 2017
  pZxid = 0x200000003
  cversion = 0
  dataVersion = 0
  aclVersion = 1
  ephemeralOwner = 0x0
  dataLength = 10
  numChildren = 0
   getAcl /test
  'digest,'user1:HYGa7IZRm2PUBFiFFu8xY2pPP/s=
  : r
  
  




页: [1]
查看完整版本: zookeeper 的权限控制