第2关:ACL访问控制列表

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云防火墙,500元 1000GB
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 第2关:ACL访问控制列表

任务描述


本关任务:熟练掌握ZooKeeper的ACL(Acess Control List)访问控制列表机制并掌握节点的ACL设置方法。


相关知识


为了完成本关任务,你需要掌握:1.ZooKeeper服务器开启及客户端启动,2.命令行基本操作,3.ZooKeeper节点ACL机制和基本操作。


ACL访问控制列表


Zookeeper作为一个分布式协调框架,其内部存储的都是一些关于分布式系统运行时状态的元数据,尤其是涉及到一些分布式锁,Master选举和协调等应用场景,这就需要保障ZooKeeper的节点数据安全。因此ZooKeeper使用ACL来控制节点的访问。


ACL实现与UNIX文件访问权限非常相似:它使用权限位来允许/禁止针对节点的各种操作及范围。与标准UNIX权限不同,ZooKeeper节点不受user,group和world的三个标准范围的限制。 ZooKeeper没有节点所有者的概念。相反,节点ACL指定一组ID集合及这些ID的权限。


另外请注意, ACL不是递归的,仅适用于特定的节点,它不适用于该节点的子节点。例如,如果/app只能通过ip:172.16.16.1读取,那么其他ip不能读取该节点数据,但是/app/status节点权限为world(任意用户可读的),那么任何用户都可以读取/app/status,不能读取/app(除ip:172.16.16.1以外)。


ZooKeeper支持可插拔身份验证方案。ID通常表示为scheme:id,其中scheme表示id的认证方式,id表示用户。例如,host:host1.corp.com是名为host1.corp.com的主机的ID。


当客户端连接到ZooKeeper并对其自身进行身份验证时,ZooKeeper会与客户端对应的所有ID与客户端连接相关联。当客户端尝试访问节点时,将根据节点的ACL检查这些ID。 ACL由(scheme:expression,perms)对组成。每种scheme拥有特定的expression格式。例如,ACL对(ip:19.22.0.0/16,READ)表示为任何IP地址以19.22开头的客户端提供READ权限。


ACL权限


ZooKeeper支持以下权限:


  • CREATE:创建子节点。
  • READ:获取数据并列出其子节点。
  • WRITE:设置数据。
  • DELETE:删除子节点。
  • ADMIN:设置权限。


总体来说,ZooKeeper的节点有5种操作权限就是增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)。


注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限。


身份认证方式


身份认证有以下4种方式:


world:默认方式,相当于每个用户都能访问(cli中以world:anyone:cdrwa设置,其中权限可修改)。


auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd来添加当前上下文中的授权用户)。


digest:即用户名:密码这种方式认证,这也是业务系统中最常用的(cli中以digest:username:password:cdrwa设置,其中权限可修改)。


ip:使用Ip地址认证(cli中以ip:xxx.xxx.xxx.xxx:cdrwa设置,其中权限可修改)。


权限设置


首先,需要添加认证,添加认证才可以进行节点权限的设置。这里我们以用户名、密码的方式为例。使用以下命令:


addauth digest user1:12345


ba3f0f39155d22b06687c5ae6aff2861.png


创建具有ACL控制权限的节点。例如, 创建/auth节点,数据是auth, auth认证方式(代表已经认证通过的用户),读写权限。使用以下命令:


create /auth "auth" auth::rw


cfa01eb35a02aec11fed7529b9a37890.png


使用getAcl命令,可以查看当前节点控制权限。例如,查看/auth节点控制权限,使用以下命令:


getAcl /auth


cb3d775663d987f989c3421d610bcf17.png


  • 由于第一步中添加了认证,这里会显示该节点的权限是user1的读写。


  • 更新节点权限使用setAcl命令(更新节点权限,必须要拥有该节点的ADMIN权限)。例如,首先创建具有rwa权限的/auth节点,增加CREATE权限。使用以下命令:


setAcl /auth auth::rwca


341818e0da92efd1c51890e6b5d4f924.png


  • :如果需要修改节点权限为所有用户,使用更新命令更新该节点权限为world即可。


编程要求


本关任务是使用命令行,进行以下操作:


  • 开启ZooKeeper服务器。
  • 使用客户端(zkCli.sh)连接客户端(IP:127.0.0.1,端口号:2181)。
  • 添加digest认证,用户名testZK,密码testZK
  • 创建/zknode持久节点(节点数据为ZK),ACL设置为用户testZK的密码认证,用户testZK对该节点拥有读,写,管理权限。
  • 断开客户端(zkCli.sh)与客服端连接。


测试说明


本关的测试需要用户在右侧的命令行下完成,用户只需将需要完成的命令在右侧命令行下直接操作即可,然后点击评测按钮,平台会自动验证用户是否按照要求去检测结果。


开始你的任务吧,祝你成功!


zkServer.sh start
zkCli.sh -server 127.0.0.1:2181
addauth digest testZK:testZK
create /zknode "ZK" digest:testZK:testZK:rwa




目录
相关文章
|
24天前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
117 7
|
25天前
|
网络协议 安全 网络性能优化
了解访问控制列表 (ACL):概念、类型与应用
了解访问控制列表 (ACL):概念、类型与应用
38 2
|
27天前
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
32 2
|
2月前
|
网络协议 网络虚拟化 数据安全/隐私保护
访问控制列表(ACL)配置
访问控制列表(ACL)配置
访问控制列表(ACL)配置
|
2月前
|
网络协议 安全 网络安全
Cisco-命名ACL访问控制列表
Cisco-命名ACL访问控制列表
|
2月前
|
安全 网络协议 网络安全
Cisco-扩展ACL访问控制列表
Cisco-扩展ACL访问控制列表
|
2月前
|
安全 网络安全 数据安全/隐私保护
Cisco-标准ACL访问控制列表
Cisco-标准ACL访问控制列表
ly~
|
3月前
|
消息中间件 搜索推荐 大数据
一般情况下在 RocketMQ 中添加 access key 的步骤: 一、确定配置文件位置 RocketMQ 的配置文件通常位于安装目录下的 conf 文件夹中。你需要找到 broker.conf 或相关的配置文件。 二、编辑配置文件 打开配置文件,查找与 ACL(访问控制列表)相关的配置部分。 在配置文件中添加以下内容:
大数据广泛应用于商业、金融、医疗和政府等多个领域。在商业上,它支持精准营销、客户细分及流失预测,并优化供应链管理;金融领域则利用大数据进行风险评估、市场预测及欺诈检测;医疗行业通过大数据预测疾病、提供个性化治疗;政府运用大数据进行城市规划和公共安全管理;工业领域则借助大数据进行设备维护、故障预测及质量控制。
ly~
150 2
|
7月前
|
安全 网络安全 数据安全/隐私保护
【专栏】IT 知识百科:访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限
【4月更文挑战第28天】访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限。ACL工作原理包括定义规则、匹配规则和执行操作。标准ACL基于源IP过滤,扩展ACL则提供更多筛选条件。时间及用户基础的ACL提供更细化的控制。优点在于增强安全性和精细管理,但管理复杂性和性能影响也是挑战。未来,ACL将趋向智能化和自动化,与更多安全技术结合,以提升网络安全。**
417 0
|
4月前
|
安全 Linux 数据库