ZooKeeper的数据模型提供了ACL机制来控制访问znode。 在创建znode时,ACL将确定你可以在znode上执行的各种操作的权限。 ZooKeeper ACL模型与Unix / Linux文件许可类似,允许或阻止通过设置/取消权限位在znode上执行操作。 但是,ZooKeeper节点并不具有Unix/Linux文件系统中所有权的概念。 ACL是基于客户端和ZooKeeper服务的认证机制来确定的。

ZooKeeper基于ACL提供了以下内置认证机制:

  • World:这代表任何人都可以连接到ZooKeeper服务
  • Auth:这表示任何经过身份验证的用户,但不使用任何ID
  • Digest:这代表了用户名和密码的认证方式
  • IP address:这表示使用客户端的IP地址进行身份验证

除了前面列出的认证方案外,ZooKeeper还支持可插入的认证机制,如果需要,可以集成第三方认证方案。 ZooKeeper中的任何认证方案都包含以下两个主要认证操作:

  • 首先,ZooKeeper中的认证框架对客户端进行认证。 客户端验证发生在客户端通过客户端信息验证连接到ZooKeeper服务时。

  • 其次,认证框架查找ACL中与客户端对应的表项。 ACL条目是由<IDs,Permissions>组成的对,其中ID是标识客户端的字符串。

有关znode ACL的重要的一点是,与特定znode关联的ACL不会传播给其子节点。 客户使用ZooKeeper进行认证是可选的; 如果与znode相关的ACL需要客户端进行身份验证,则必须使用前面提到的身份验证机制进行身份验证。 ACL是身份和一组权限组合的认证机制。

ZooKeeper的ACL支持以下权限:

操作 ACL 权限
CREATE 创建一个子节点
READ 获取子节点列表和与znode相关的数据
WRITE 将数据设置(写入)到znode
DELETE 删除一个孩子子节点
ADMIN 设置ACL(权限)

任何连接到ZooKeeper服务的客户端都有权检查是否存在znode。 这个exist操作是不需要权限的,它允许检索一个znode的stat结构。

ZooKeeper中有许多预定义的ACL。 这些由ZooKeeper ACL定义的ID如下表所示:

ACL 权限
ANYONE_ID_UNSAFE 这个ID代表任何人
AUTH_IDS 这是用来设置ACL,用被认证的客户端的ID代替
OPEN_ACL_UNSAFE 这表示完全打开的ACL,并授予除ADMIN权限之外的所有权限
CREATOR_ALL_ACL 该ACL将所有权限授予znode的创建者
READ_ACL_UNSAFE 这个ACL赋予所有人读取的能力

6. ZooKeeper访问控制列表的更多相关文章

  1. Centos下ACL(访问控制列表)介绍(转)

    我们知道,在Linux操作系统中,传统的权限管理分是以三种身份(属主.属組以及其它人)搭配三种权限(可读.可写以及可执行),并且搭配三种特殊权限(SUID,SGID,SBIT),来实现对系统的安全保护 ...

  2. Add-VMNetworkAdapterAcl(添加访问控制列表)

    Add-VMNetworkAdapterAclCreates an ACL to apply to the traffic through a virtual machine network adap ...

  3. [转载]ACM(访问控制模型),Security Identifiers(SID),Security Descriptors(安全描述符),ACL(访问控制列表),Access Tokens(访问令牌)

    对于<windows核心编程>中的只言片语无法驱散心中的疑惑.就让MSDN中的解释给我们一盏明灯吧.如果要很详细的介绍,还是到MSDN仔细的看吧,我只是大体用容易理解的语言描述一下. wi ...

  4. 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。

    场景:IIS中遇到无法预览的有关问题(HTTP 异常 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置 IIS中遇到无法预览的问题(HTTP ...

  5. CCNA网络工程师学习进程(8)访问控制列表ACL

    前面几节我们介绍了路由器的路由配置,接下来几节我们将介绍路由器的高级配置应用,包括ACL.NAT.DHCP.PPP.VPN和远程连接等的配置.     (1)ACL概述:   ACL(Access C ...

  6. 浅谈访问控制列表(ACL)

    1.ACL简介2.前期准备3.ACL的基本操作:添加和修改4.ACL的其他功能:删除和覆盖5.目录的默认ACL6.备份和恢复ACL7.结束语 1.ACL简介 用户权限管理始终是Linux系统管理中最重 ...

  7. windows访问控制列表 --ACL(Access Control List)

    1.定义 ACL是一个windows中的表示用户(组)权限的列表. Access Control List(ACL) Access Control Entry(ACE) ... 2.分类 ACL分为两 ...

  8. 神州数码标准访问控制列表配置(ACL)

    实验要求:熟练掌握标准访问控制列表配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip ad ...

  9. 用访问控制列表(ACL)实现包过滤

      用访问控制列表(ACL)实现包过滤 一.ACL概述 1.ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的 2.ACL可以应用于诸多方面 a>.b包过滤 ...

随机推荐

  1. Java 浅拷贝和深拷贝的理解和实现方式

    Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去.举例说明:比如,对象A和对象B都属于类S,具有属性a和b.那么对对象A进行拷贝 ...

  2. HDU5661 Claris and XOR

    我们求二进制是怎么求的呢:先看看二进制的每一位代表多大:.......32 16 8 4 2 1 假如n=10, ..... 32>n ,不要. 16>n,不要. 8<=n,要,然后 ...

  3. 【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用

    [网络爬虫入门02]HTTP客户端库Requests的基本原理与基础应用 广东职业技术学院  欧浩源 1.引言 实现网络爬虫的第一步就是要建立网络连接并向服务器或网页等网络资源发起请求.urllib是 ...

  4. 胡小兔的OI日志3 完结版

    胡小兔的 OI 日志 3 (2017.9.1 ~ 2017.10.11) 标签: 日记 查看最新 2017-09-02 51nod 1378 夹克老爷的愤怒 | 树形DP 夹克老爷逢三抽一之后,由于采 ...

  5. Django入门教程(二)

    建议直接阅读末尾!!! Writing your first Django app, part 2 本节将设置数据库,创建您的第一个模型(model),并简单介绍Django自动生成的管理页面. 数据 ...

  6. ASP.NET Core 认证与授权[3]:OAuth & OpenID Connect认证

    在上一章中,我们了解到,Cookie认证是一种本地认证方式,通常认证与授权都在同一个服务中,也可以使用Cookie共享的方式分开部署,但局限性较大,而如今随着微服务的流行,更加偏向于将以前的单体应用拆 ...

  7. win10 uwp 绑定密码

    win10 下,密码框无法绑定到ViewModel,Password是不可以绑定. 我们可以自己使用简单方法去绑定 我们之前在WPF 使用绑定密码框,我写了一篇,关于如何绑定,我提供一个我自己试了可以 ...

  8. win10 uwp 右击浮出窗在点击位置

    本文主要让MenuFlyout出现在我们右击位置. 我们一般使用的MenuFlyout写在前台,写在Button里面,但是可能我们的MenuFlyout显示的位置和我们想要的不一样. 通过使用后台写S ...

  9. 张高兴的 Xamarin.Android 学习笔记:(四)常用控件

    示例地址 GitHub : https://github.com/ZhangGaoxing/xamarin-android-demo/tree/master/ControlsDemo

  10. MySQL存储过程/存储过程与自定义函数的区别

    语法: 创建存储过程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parame ...