Кафка производитель / потребитель Тема не авторизована - PullRequest
0 голосов
/ 06 апреля 2019

Каждый раз, когда я пытаюсь подключиться к kafka для производителя / потребителя, я получаю сообщение «Не авторизовано для тем [test2]»

Если я отключаю авторизацию, я успешно аутентифицируюсь, поэтому аутентификация работает, а только авторизация - нет.

авторизация ACL с kafka.security.auth.SimpleAclAuthorizer не работает.

конфиг / server.properties

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
listeners=SASL_PLAINTEXT://kafka3:9092
security.inter.broker.protocol= SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
delete.topic.enable=false

журналы / Кафка-доверитель

[2019-04-06 13:24:05,693] DEBUG No acl found for resource Topic:LITERAL:test2, authorized = false (kafka.authorizer.logger) [2019-04-06 13:24:05,695] INFO Principal = User:alice is Denied Operation = Describe from host = 10.0.9.20 on resource = Topic:LITERAL:test2(kafka.authorizer.logger)uper.users=User:admin

файл jaas сервера:

KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin"
    user_admin="admin"
    user_alice="alice";
};

бен / kafka-server-start.sh

$base_dir/kafka-run-class.sh $EXTRA_ARGS -Djava.security.auth.login.config=$base_dir/../config/jaas-kafka-server.conf kafka.Kafka "$@"

выход ACL:

Current ACLs for resource `Topic:LITERAL:test2`:
    User:alice has Allow permission for operations: Write from hosts: *

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

Если вы хотите потреблять и генерировать сообщения из определенной темы с включением ACL, то вам нужно применить ACL к этой теме, чтобы потреблять и создавать для нее сообщение.Вы должны сделать это через суперпользователя, такого как kafka.

Войдите в брокер kafka, затем используйте следующую команду:

sudo su - kafka

kinit -kt / path /в / keytabs / kafka.service.keytab kafka / serviceprincipal name @ имя домена (вы можете получить его из файла kafka jaas)

Затем из каталога kafka выполните следующие команды:

bin / kafka-acls --add --allow-Principal Пользователь: * --consumer --topic test2 --authorizer-properties zookeeper.connect =: 2181 --group *

Аналогично, чтобы производитель отправлял сообщение в темы:

bin / kafka-acls.sh --add --allow-Principal Пользователь: * --producer --topic test2 --authorizer-properties zookeeper.connect =: 2181

Над командой будетприменять списки управления доступом ко всем пользователям.Вы можете ограничить его, указав индивидуальное имя пользователя вместо '*' в команде.

** Помните, что вы не должны иметь никакого текстового файла или любого другого файла, кроме установленного kafka файла / каталога в каталоге bin, так какчасть установки kafka.

Для получения дополнительной информации о ACL (добавление / удаление, листинг) перейдите по ссылке ниже:

https://docs.confluent.io/current/kafka/authorization.html

1 голос
/ 06 апреля 2019

Пользователь alice в настоящее время имеет право только Write на эту тему. Вы также, вероятно, захотите добавить ACL Describe и Read, чтобы иметь возможность правильно создавать и использовать существующую тему.

Инструмент kafka-acls предоставляет удобные опции --consumer и --producer при добавлении списков ACL к теме. В противном случае вы можете использовать --operation для добавления определенных операций, таких как Describe. Добавив Describe, вы удалите журнал, который вы сейчас видите в logs/kafka-authorizer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...