Я пытаюсь настроить Kafka, где у каждого пользователя есть несколько тем, но каждый topi c может быть использован с любым количеством групп потребителей пользователем, которому принадлежит topi c.
Используемая версия сервера Kafka : kafka_2.12-2.4.0 (Commit: 77a89fcf8d7fa018)
Используемая версия клиента Kafka : confluent kafka 1.2.2
В Kafka ACL есть успешно настроенные пользователи, поэтому они могут получить доступ только к своим топи c. Я изо всех сил пытаюсь настроить разрешения для групп таким образом, чтобы каждый пользователь мог использовать любое количество групп потребителей только для своих собственных c, не видя, какие группы потребителей есть у других.
Следующее позволяет каждому пользователю использовать любую группу потребителей:
bin/kafka-acls.sh localhost:9092 --authorizer kafka.security.auth.SimpleAclAuthorizer --authorizer-properties zookeeper.connect=zookeeper.address --add --allow-principal User:* --operation Read --group '*'
Однако, согласно https://docs.confluent.io/current/kafka/authorization.html операция чтения неявно предоставляет операцию Describe. Поскольку операция Describe включает доступ к API ListGroup, что я не хочу, чтобы мои пользователи могли делать это, я выполнил следующее:
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
Это заставляет меня думать, что я либо пытаюсь достичь невозможного, либо делаю это неправильно.
TL; DR : можно ли настроить списки управления доступом Kafka, чтобы разрешить использование любой группы потребителей без одновременного предоставления разрешения API ListGroups?
Спасибо за любой ответ.