4.8. zookeeper 授权
当 Kafka 和 ZooKeeper 间启用身份验证时,您可以使用 ZooKeeper Access Control List(ACL)规则自动控制对存储在 ZooKeeper 中的 Kafka 元数据的访问。
4.8.1. ACL 配置
ZooKeeper ACL 规则的强制由 config/server.properties
Kafka 配置文件中的 zookeeper.set.acl
属性控制。
该属性默认是禁用的,并通过设置为 true
来启用。
zookeeper.set.acl=true
如果启用了 ACL 规则,在 ZooKeeper 中创建 znode
时,创建它的 Kafka 用户可以修改或删除它。所有其他用户具有只读访问权限。
Kafka 只为新创建的 ZooKeeper znodes
设置 ACL 规则。如果在集群第一次启动后启用 ACL,则 zookeeper-security-migration.sh
工具可以为所有现有 znodes
设置 ACL。
ZooKeeper 中数据的机密性
ZooKeeper 中存储的数据包括:
- 主题名称及其配置
- 使用 SASL SCRAM 身份验证时,alted 和 hashed 用户凭据.
但是 ZooKeeper 不会存储使用 Kafka 发送和接收的任何记录。在 ZooKeeper 中存储的数据假定为非机密性。
如果要将数据视为机密(例如,主题名称包含客户 ID),唯一的保护选项是隔离网络级别的 ZooKeeper,仅允许访问 Kafka 代理。