Zookeeper在Linux下的权限控制设置
一 操作系统层权限
sudo groupadd zookeeper && sudo useradd -g zookeeper zookeepersudo chown -R zookeeper:zookeeper /var/lib/zookeepersudo chmod -R 750 /var/lib/zookeepersudo chown -R zookeeper:zookeeper /var/log/zookeepersudo chmod -R 750 /var/log/zookeepersudo setenforce 0(仅测试用途)sudo firewall-cmd --permanent --zone=public --add-port=2181/tcp && sudo firewall-cmd --reload
以上措施确保Zookeeper进程对本地文件与端口具备所需的最小权限,降低被提权与越权访问的风险。二 Zookeeper内置ACL权限模型
digest:zk:1LHmdzcxVxYZvefFlGjacOZfF8:cdrwa。addauth digest zk:testgetAcl /pathsetAcl /path digest:zk:1LHmdzcxVxYZvefFlGjacOZfF8:cdrwacreate /test "data" digest:zk:1LHmdzcxVxYZvefFlGjacOZfF8:cdrwasetAcl /test-node-ip ip:192.168.0.33:cdwra
以上ACL机制用于细粒度控制对Znode的访问,是最核心的权限控制手段。三 快速上手示例
./zkCli.sh -server localhost:2181addauth digest admin:Admin@123create /app "hello" digest:admin:qiTlqPLa5W+jEKgFJwzS1vFptdSiEw=:cdrwasetAcl /app world:anyone:r,digest:reader:Uuq3IqWjf4+3e1uRK1vFptdSiEw=:rgetAcl /app(应看到admin为cdrwa、reader为r)addauth并在测试环境验证,避免把自己锁在外面。四 生产环境加固建议
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProviderrequireClientAuthScheme=sasl-Dzookeeper.DigestAuthenticationProvider.superDigest=super:Base64(SHA1(super:password))getAcl复核。