Ошибка авторизации кластера Kafka - PullRequest
1 голос
/ 04 октября 2019

Когда я пытаюсь запустить свой сервер с помощью следующей команды

:/remote/sde108/kafka/kafka/bin/kafka-server-start.sh /remote/sde108/kafka/kafka/config/server-1.properties

, я получаю сообщение об ошибке:

org.apache.kafka.common.errors.ClusterAuthorizationException: Request Request …… is not authorized.

Мне удалось получить 2 способа работы рукопожатия SSL, нокогда я пытаюсь добавить ACL, это не удается. Я добавляю в свой ACL, используя эту команду:

../bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:swe-analyticsdb-prod2 --consumer --topic my-topic --group *
    Adding ACLs for resource `Topic:LITERAL:my-topic`: 
        User:swe-analyticsdb-prod2 has Allow permission for operations: Read from hosts: *
        User:swe-analyticsdb-prod2 has Allow permission for operations: Describe from hosts: * 

    Adding ACLs for resource `Group:LITERAL:connect-console-sink.properties`: 
        User:swe-analyticsdb-prod2 has Allow permission for operations: Read from hosts: * 

    [2019-10-04 09:00:00,515] WARN read null data from /kafka-acl-changes/acl_changes_0000000057 (kafka.common.ZkNodeChangeNotificationListener)
    Current ACLs for resource `Topic:LITERAL:my-topic`: 
        User:swe-analyticsdb-prod2 has Allow permission for operations: Read from hosts: *
        User:swe-analyticsdb-prod2 has Allow permission for operations: Describe from hosts: * 

    Current ACLs for resource `Group:LITERAL:connect-console-sink.properties`: 
        User:navdeploy has Allow permission for operations: All from hosts: connect-console-sink.properties
        User:swe-analyticsdb-prod2 has Allow permission for operations: Read from hosts: *

И когда я пытаюсь использовать из темы, я получаю это:

navdeploy@swe-analyticsdb-prod2:/remote/sde108/kafka/kafka/config % ../bin/kafka-console-consumer.sh --bootstrap-server swe-analyticsdb-prod2:9093 --topic my-topic --consumer.config ssl.properties --from-beginning
[2019-10-04 09:01:55,656] WARN [Consumer clientId=consumer-1, groupId=console-consumer-22342] Error while fetching metadata with correlation id 2 : {my-topic=TOPIC_AUTHORIZATION_FAILED} (org.apache.kafka.clients.NetworkClient)
[2019-10-04 09:01:55,659] ERROR Error processing message, terminating consumer process:  (kafka.tools.ConsoleConsumer$)
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: console-consumer-22342
Processed a total of 0 messages

Вот некоторые из моих свойств конфигурации файла:

server-1.properties:

listeners=SSL://swe-analyticsdb-prod2:9093
ssl.keystore.location=<path>server.keystore.jks
ssl.keystore.password=<password>
ssl.key.password=<password>
ssl.truststore.location=<path>/server.truststore.jks
ssl.truststore.password=<password>
security.inter.broker.protocol=SSL
ssl.client.auth=required
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer

ssl.properties:

security.protocol=SSL
ssl.truststore.location=<path>/client.truststore.jks
ssl.truststore.password=<password>
ssl.keystore.location=<path>/client.keystore.jks
ssl.keystore.password=<password>
ssl.key.password=<password>

Когда я не включаю "arthorizer.class.name" вФайл server-1.properties, двухстороннее рукопожатие SSL проходит, но с ним я получаю следующую ошибку выше. Кто-нибудь знает, как это исправить?

РЕДАКТИРОВАТЬ: Когда я запускаю мой сервер Kafka, он дает мне:

org.apache.kafka.common.errors.ClusterAuthorizationException: ЗапросЗапрос …… не авторизован.

НО для тех тем, для которых я установил ACL. Этого следовало ожидать? Кроме того, пользователь, которого я использую для запуска команд, - это navdeploy, но в моем SSL CN - это swe-analyticsdb-prod2. Нужно ли создавать пользователя ACL по имени navdeploy или swe-analyticsdb-prod2. Может кто-нибудь объяснить мне это?

** ОБНОВЛЕНИЕ:

navdeploy@swe-analyticsdb-prod2:/remote/sde108/kafka/kafka/config % ../bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --operation All --allow-principal User: * --allow-host swe-analyticsdb-prod2 --add --cluster
Adding ACLs for resource `Cluster:LITERAL:kafka-cluster`: 
    User: has Allow permission for operations: All from hosts: swe-analyticsdb-prod2 

Current ACLs for resource `Cluster:LITERAL:kafka-cluster`: 
    User: has Allow permission for operations: All from hosts: swe-analyticsdb-prod2 

navdeploy@swe-analyticsdb-prod2:/remote/sde108/kafka/kafka/config % ../bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --list 
Current ACLs for resource `Cluster:LITERAL:kafka-cluster`: 
    User: has Allow permission for operations: All from hosts: swe-analyticsdb-prod2 

Current ACLs for resource `Group:LITERAL:controller.log`: 
    User:navdeploy has Allow permission for operations: Read from hosts: controller.log 

Current ACLs for resource `Group:LITERAL:connect-console-sink.properties`: 
    User:navdeploy has Allow permission for operations: All from hosts: connect-console-sink.properties 

Current ACLs for resource `Group:LITERAL:*`: 
    User:ANONYMOUS has Allow permission for operations: All from hosts: * 
...