目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

微服务 教程

1085个小节阅读:196.6k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(255)
赞(0)

Zookeeper系统模型_权限控制 ACL

image-20211229152017745

在ZooKeeper的实际使用中,我们的做法往往是搭建一个共用的ZooKeeper集群,统一为若干个应用提供服务。在这种情况下,不同的应用之间往往是不会存在共享数据的使用场景的,因此需要解决不同应用之间的权限问题。

ACL 权限控制

  1. 权限模式(Schema)
  2. 授权对象(ID)
  3. 权限(Permission)`

参数:

  1. ZooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限
  2. 每个znode支持设置多种权限控制方案和多个权限
  3. 子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点

例子:

image-20211230171241691

schema

ZooKeeper内置了一些权限控制方案,可以用以下方案为每个节点设置权限:

方案描述
world只有一个用户:anyone,代表所有人(默认)
ip使用IP地址认证
auth使用已添加认证的用户认证
digest使用“用户名:密码”方式认证

image-20211230171357655

id

授权对象ID是指,权限赋予的用户或者一个实体,例如:IP 地址或者机器。授权模式 schema 与 授权对象 ID 之间关系:

权限模式授权对象
IP通常是一个IP地址或是IP段,例如“192.168.66.101”
Digest自定义,通常是“username:BASE64(SHA-1(username:password))”
World只有一个ID:"anyone"
Super与Digest模式一致

image-20211230171457334

权限permission

权限ACL简写描述
CREATEc可以创建子节点
DELETEd可以删除子节点(仅下一级节点)
READr可以读取节点数据及显示子节点列表
WRITEw可以设置节点数据
ADMINa可以设置节点访问控制列表权限

image-20211230171549205

权限相关命令

命令使用方式描述
getAclgetAcl 读取ACL权限
setAclsetAcl 设置ACL权限
addauthaddauth 添加认证用户

实战

World方案

语法格式:

客户端实例

IP方案

语法格式:

参数:

  • :可以是具体IP也可以是IP/bit格式,即IP转换为二进制,匹配前bit位,如192.168.0.0/16匹配192.168..

客户端实例

Auth方案

语法格式:

添加认证用户

客户端实例

刚才已经添加认证用户,可以直接读取数据,断开会话重连需要重新addauth添加认证用户

Digest方案

语法格式:

这里的密码是经过SHA1及BASE64处理的密文,在SHELL中可以通过以下命令计算:

先来计算一个密文

客户端实例

实时效果反馈

1.Zookeeper技术中如何获取权限信息。

A getAcl

B setAcl

C watch

D create

2. Zookeeper技术中如何设置权限信息。

A getAcl

B setAcl

C watch

D create

答案

1=>A 2=>B

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2