4.7.3. 添加 ACL 规则
AclAuthorizer
使用访问控制列表(ACL),定义一组规则,说明用户可以和无法执行的操作。
这个步骤描述了如何在 Kafka 代理中使用 AclAuthorizer
插件时添加 ACL 规则。
使用 kafka-acls.sh
工具添加规则并存储在 ZooKeeper 中。
先决条件
- AMQ Streams 安装在用作 Kafka 代理 的所有主机上。
- 在 Kafka 代理中启用了 授权。
流程
使用
--add
选项运行kafka-acls.sh
。示例:
允许
user1
和user2
使用MyConsumerGroup
消费者组从myTopic
读取。bin/kafka-acls.sh --authorizer-properties zookeeper.connect=zoo1.my-domain.com:2181 --add --operation Read --topic myTopic --allow-principal User:user1 --allow-principal User:user2 bin/kafka-acls.sh --authorizer-properties zookeeper.connect=zoo1.my-domain.com:2181 --add --operation Describe --topic myTopic --allow-principal User:user1 --allow-principal User:user2 bin/kafka-acls.sh --authorizer-properties zookeeper.connect=zoo1.my-domain.com:2181 --add --operation Read --operation Describe --group MyConsumerGroup --allow-principal User:user1 --allow-principal User:user2
拒绝从 IP 地址主机
127.0.0.1
读取myTopic
的user1
访问。bin/kafka-acls.sh --authorizer-properties zookeeper.connect=zoo1.my-domain.com:2181 --add --operation Describe --operation Read --topic myTopic --group MyConsumerGroup --deny-principal User:user1 --deny-host 127.0.0.1
使用
MyConsumerGroup
添加user1
作为myTopic
的使用者。bin/kafka-acls.sh --authorizer-properties zookeeper.connect=zoo1.my-domain.com:2181 --add --consumer --topic myTopic --group MyConsumerGroup --allow-principal User:user1
其它资源
-
有关所有
kafka-acls.sh
选项列表,请参阅 第 4.7.1 节 “简单 ACL 授权器”。