Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 有没有办法设置Kafka ACL以允许在不列出任何消费者组的情况下使用它们_Apache Kafka_Apache Kafka Security - Fatal编程技术网

Apache kafka 有没有办法设置Kafka ACL以允许在不列出任何消费者组的情况下使用它们

Apache kafka 有没有办法设置Kafka ACL以允许在不列出任何消费者组的情况下使用它们,apache-kafka,apache-kafka-security,Apache Kafka,Apache Kafka Security,我正在尝试设置Kafka,其中每个用户都有几个主题,但是每个主题都可以由该主题所属的用户使用任意数量的消费者组 使用的Kafka服务器版本:Kafka_2.12-2.4.0(提交:77a89fcf8d7fa018) 使用的卡夫卡客户端版本:融合卡夫卡1.2.2 在Kafka中,ACL已成功配置用户,因此他们只能访问自己的主题。我正在努力以这样的方式设置组权限:每个用户都可以为自己的主题使用任意数量的消费组,而不必查看其他用户的消费组 以下内容允许每个用户使用任何消费者组: bin/kafka-a

我正在尝试设置Kafka,其中每个用户都有几个主题,但是每个主题都可以由该主题所属的用户使用任意数量的消费者组

使用的Kafka服务器版本:Kafka_2.12-2.4.0(提交:77a89fcf8d7fa018)

使用的卡夫卡客户端版本:融合卡夫卡1.2.2

在Kafka中,ACL已成功配置用户,因此他们只能访问自己的主题。我正在努力以这样的方式设置组权限:每个用户都可以为自己的主题使用任意数量的消费组,而不必查看其他用户的消费组

以下内容允许每个用户使用任何消费者组:

bin/kafka-acls.sh localhost:9092 --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=zookeeper.address --add --allow-principal User:* --operation Read --group '*'
然而,根据读取操作隐式授予描述操作。如上所述,操作包括访问“ListGroup”API,我不希望我的用户能够这样做,我执行了以下操作:

bin/kafka-acls.sh localhost:9092 --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=zookeeper.address --add --deny-principal User:* --operation Describe --group '*'
上述两个命令生成以下ACL:

Current ACLs for resource `Group:LITERAL:*`:
        User:* has Deny permission for operations: Describe from hosts: *
        User:* has Allow permission for operations: Read from hosts: *
问题是我遇到了以下异常:

Confluent.Kafka.ConsumeException: Broker: Group authorization failed
这让我相信,我不是在试图实现不可能的事情,就是在尝试错误的事情

TLDR:是否可以设置Kafka ACL以允许在不同时授予ListGroups API权限的情况下使用任何消费者组


谢谢您的回答。

现在决定使用前缀。效果很好。 对于那些想知道如何做到这一点的人:

bin/kafka-acls.sh localhost:9092 --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=zookeeper.address --add --allow-principal User:XYZ --operation Read --group 'ABC-' --resource-pattern-type prefixed 

这段代码将允许用户“XYZ”使用以“ABC-”开头的任何消费者组,如“ABC-123”

现在决定使用前缀。效果很好。 对于那些想知道如何做到这一点的人:

bin/kafka-acls.sh localhost:9092 --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=zookeeper.address --add --allow-principal User:XYZ --operation Read --group 'ABC-' --resource-pattern-type prefixed 
这段代码将允许用户“XYZ”使用以“ABC-”开头的任何消费者组,如“ABC-123”