首页主机资讯Zookeeper如何配置权限控制

Zookeeper如何配置权限控制

时间2025-12-12 16:46:04发布访客分类主机资讯浏览790
导读:Zookeeper权限控制配置指南 一 核心概念与默认行为 Zookeeper通过ACL(Access Control List)在znode级别进行访问控制,支持五种权限:CREATE©、DELETE(d 、READ®、WRITE(w ...

Zookeeper权限控制配置指南

一 核心概念与默认行为

  • Zookeeper通过ACL(Access Control List)znode级别进行访问控制,支持五种权限:CREATE©DELETE(d)READ®WRITE(w)ADMIN(a)
  • ACL由三部分组成:认证类型(scheme)身份标识(id)权限位(perms);默认ACL为world:anyone:cdrwa,表示对“任何用户”开放全部权限。
  • 重要特性:父节点的ACL不会继承到子节点,需要逐节点或按路径策略设置。
  • 3.5.6及以上版本,执行getAcl需要拥有该节点的READ权限。

二 快速上手 基于Digest的ACL配置

  • 连接客户端
    • 命令:sh zkCli.sh -server 192.168.0.151:2181(默认端口2181
  • 生成Digest身份标识
    • 规则:将“用户名:密码”做SHA1摘要并进行Base64编码,得到类似“zk:1LHmdzcxVxYZvefFlGjacOZfF8”的字符串。
  • 在zkCli中认证
    • 命令:addauth digest zk:test
  • 设置或更新ACL
    • 创建时设置:create /test “data” digest:zk:1LHmdzcxVxYZvefFlGjacOZfF8:cdrwa
    • 已有节点设置:setAcl /test digest:zk:1LHmdzcxVxYZvefFlGjacOZfF8:cdrwa
  • 查看ACL
    • 命令:getAcl /test
  • 验证
    • 另开一个未认证的zkCli会话访问或修改**/test**,应被拒绝;在已addauth的会话中操作应成功。

三 进阶 基于SASL Kerberos的安全模式

  • 启用SASL/Kerberos时,服务端在zoo.cfg中配置:
    • authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    • requireClientAuthScheme=sasl
    • jaasLoginRenew=3600000
  • 提供JAAS配置(示例:/etc/zookeeper/sasl/jaas.conf
    • Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_super=“password_super” user_zkuser=“password_zkuser”; }
  • 重启Zookeeper服务使配置生效
  • 客户端操作
    • 先获取票据:kinit admin
    • 连接:sh zkCli.sh -server 192.168.0.151:2181
    • 设置ACL:setAcl /test sasl:admin@HADOOP.COM:cdrwa
  • 注意
    • 在“普通模式”下启动的客户端无法使用SASL类型的ACL;需在启用了安全模式的集群中使用。

四 常用命令与典型场景

  • 常用命令
    • 查看ACL:getAcl /path
    • 设置ACL:setAcl /path scheme:id:perms
    • 创建并带ACL:create /path “data” scheme:id:perms
    • 会话认证:addauth scheme auth
  • 典型场景
    • 仅管理员完全控制:setAcl /app digest:admin:base64(SHA1(admin:pwd)):cdrwa
    • 保留匿名只读,管理员全权:setAcl /app world:anyone:r,digest:admin:base64(SHA1(admin:pwd)):cdrwa
    • 按IP网段只读:setAcl /app ip:192.168.1.0/24:r,digest:admin:base64(SHA1(admin:pwd)):cdrwa
    • 批量设置:对需要保护的父路径设置严格ACL,再按需为子路径放宽(因不继承)。

五 安全与运维注意事项

  • 修改ACL前务必先备份znode结构与数据,并在低峰期操作;错误的ACL可能导致业务中断。
  • 避免直接使用world:anyone:cdrwa;生产环境建议至少保留管理员(sasl/digest)ADMIN权限,必要时再为特定主体授予最小权限。
  • 3.5.6+版本,执行getAcl需要READ权限,否则会失败;为审计与排障保留必要的读取能力。
  • 使用SASL/Kerberos时,确保JAAS配置正确、票据有效,且客户端以安全模式连接;普通模式无法使用SASL ACL。
  • 除ACL外,建议配合网络层控制(如防火墙)限制对2181端口的访问,降低暴力尝试与嗅探风险。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Zookeeper如何配置权限控制
本文地址: https://pptw.com/jishu/770655.html
CentOS上PyTorch安装包从哪里下载 CentOS环境下PyTorch网络通信问题怎么解决

游客 回复需填写必要信息