所以我有一个Kafka集群运行zookeeper与SSL。我在Kafka ACL上给一个用户一个特定主题的读权限:我可以在zookeeper中看到它。当此用户使用数据时,他们将获得组授权异常。是否需要将每个组都添加到ACL中?我对这个错误感到困惑。谢谢你
您可以使用异常跟踪更新您的帖子。
把这个放在一边,下面是我们收到的异常,如果任何客户端没有被授权执行生产/消费事件。
EXCEPTION="org.apache.kafka.common.errors.TopicAuthorizationException: Not authorized to access topics: [<<TopicName>>]n"; EXCEPTION_TYPE="org.apache.kafka.common.errors.TopicAuthorizationException: Not authorized to access topics: <<Topic>>n"
如果你收到这样的异常,你需要确保你已经正确地定义了你的ACL原则。
原则定义- Kafka acl定义为">主体P是[允许/拒绝]操作O从主机H对任何资源R匹配resourceppattern RP"。
为了添加,删除或列出acl,您可以使用Kafka授权器CLI。默认情况下,如果没有resourceppatterns匹配特定的Resource R,那么R就没有关联的acl,因此除了超级用户之外没有人被允许访问R。如果你想改变这种行为,你可以在server.properties中包括以下内容:
<<h2>样本原则/h2>假设您想要添加一个ACL "主体用户:Bob和用户:Alice被允许从IP 198.51.100.0和IP 198.51.100.1"对主题Test-Topic执行操作读取和写入。您可以通过使用以下选项执行CLI来做到这一点:
bin/kafka-acls.sh——authorizer-properties zookeeper. shconnect=localhost:2181——add——allow-principal User:Bob——allow-principal User:Alice——allow-host 198.51.100.0——allow-host 198.51.100.1——operation Read——operation Write——topic Test-topic