【发布时间】:2020-01-24 22:55:14
【问题描述】:
我正在从不同的资源中收集数据,每个资源对每个客户都有一个特定的主题。 我只想为每个用户授予对相应主题的访问权限,因此他们无法访问所有主题。 我正在使用 Kafka 0.10,并且正在使用 Kafka 工具。 有解决办法吗?
【问题讨论】:
标签: apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-security
我正在从不同的资源中收集数据,每个资源对每个客户都有一个特定的主题。 我只想为每个用户授予对相应主题的访问权限,因此他们无法访问所有主题。 我正在使用 Kafka 0.10,并且正在使用 Kafka 工具。 有解决办法吗?
【问题讨论】:
标签: apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-security
您需要配置Authorisation using ACL。
如何启用 ACL:
在您的server.properties 文件中,您需要通过添加以下行来创建Authorizer:
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
现在您需要按照文档来根据您的用例正确配置 ACL。
添加 ACL
现在一切就绪后,假设您有一个名为 testTopic 的主题,您只想从 IP 为 197.5.6.1 的主机向名为 Bob 的用户授予读写访问权限:
bin/kafka-acls --authorizer-properties zookeeper.connect=localhost:2181 \
--add \
--allow-principal User:'Bob' --allow-host '197.5.6.1' \
--operation Read --operation Write \
--topic testTopic \
【讨论】: