ACL(Access Control List)访问控制列表

2023-07-08 10:41 18次浏览 问答

然后写一段代码测试一下:+ View Code输出结果:test-data节点创建成功!———————org。apache。zookeeper。KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /testorg。
apache。zookeeper。KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /testtest-data———————org。apache。
zookeeper。KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /testnew-data———————[31,s{‘digest,‘admin-user:mAlW21Phn07yOvWnKJYq2sCMoZw=}]———————节点删除成功!从zkclient的使用结果看,与cli操作效果一样。
最后:关于多级节点之间的ACL,并非继承关系,但是也有些一联系,这是初次接触ACL中比较难理解的地方:从这张图上可以发现,子节点/a/b的控制权限范围(全世界都能做任何事)可以超出父节点的范围(仅限:user-a:pwd:a具有read/admin权限)继续,看上面的这4条红线标注的地方,从上向下一个个解释:红线1:因为/a只有user-a:pwd-a有ra权限,即:没用户具有c(create)权限,所以不能创建子节点红线2:因为/a/b为world:anyone:cdrwa权限,即无限制,所以在/a/b下创建子节点b1,地球人已经无法阻止,创建成功红线3:给/a/b/b1指定了user-b1:pwd-b1的da权限(即:delete+admin)(注:重温下前面提到的setAcl 二种模式。
一种是setAcl /pathdigest:username:encrypedpwd:crwda 用这种方式时,encrypedpwd用户必须是密文。另一种方式是先addauthdigest:usrname:password 先把授权信息加入上下文,这里password用的是明文,然后再setAcl /pathauth:username:password:crdwa所以如果在cli控制台测试,强烈建议用第二种方式,否则象上图中的方式用错了方式,pwd-b1在zk中被认为是密文,要解密出来几乎不可能,所以设置后,相当于这个节点就废了,因为你不知道密码,要操作该节点时,提供不了正确的认证信息)红线4:还是刚才的理由,因为/a/b为world:anyone:cdrwa,没有限制,所以删除其下的子节点不受阻挡。
从上图可以看出,无法get父节点的内容,但是可以get子节点的内容,再次说明父、子节点的权限没直接关系,但是做delete时,上面的例子却遇到了麻烦:想删除/a/b时,由于父节点/a的ACL列表里,只有ra权限,没有d权限,所以无法删除子节点。
想删除/a时,发现下面还有子节点b,节点非空无法删除,所以这个示例就无解了(因为根据前面的操作,密码也还原不出来,也就无法修改ACL属性),而根节点/也无法删除,解决办法,只能到data目录里清空所有数据,再重启zk,但是这样就相当于所有数据全扔了,所以在设计ACL时,对于delete权限,要谨慎规划,在测试zk集群上做好测试,再转到生产环境操作。
最后给一些权限组合的测试结果:要修改某个节点的ACL属性,必须具有read、admin二种权限要删除某个节点下的子节点,必须具有对父节点的read权限,以及父节点的delete权限参考文章:
https://ihong5。
wordpress。com/2014/07/10/apache-zookeeper-acl-access-control-list-getting-permission-sets/https://ihong5。wordpress。com/2014/07/24/apache-zookeeper-setting-acl-in-zookeeper-client/https://ihong5。
wordpress。com/2014/06/24/znode-types-and-how-to-create-read-delete-and-write-in-zookeeper-via-zkclient/http://zookeeper。apache。
org/doc/r3。4。6/zookeeperProgrammers。html#sc_ZooKeeperAccessControlACL(Access Control List)访问控制列表。

相关推荐