使用 SSL 的 Kafka - 写入主题 - 授权错误

问题描述 投票:0回答:2

我正在尝试从命令行生成启用了 SSL 的本地 Kafka 集群上的主题。

主题刚刚创建:

kafka-topics --zookeeper localhost:2181  --create --topic simple    --replication-factor 1 --partitions 1

制作命令为:

kafka-avro-console-producer \ 
         --broker-list localhost:9092 --topic simple \
         --property value.schema='{"type":"record","name":"myrecord","fields":[{"name":"f1","type":"string"}]}' \
         --property schema.registry.url=http://localhost:8080

打字:

{"f1": "Alyssa"}

错误:

 {"f1": "Alyssa"}
Error when sending message to topic simple with key: null, value: 12 bytes with error: 
(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback:52) org.apache.kafka.common.errors.TopicAuthorizationException: 
Not authorized to access topics: [simple]

如何添加对此主题的访问权限?
ACL 的正确命令是什么(我在本地计算机上运行它)。

ssl apache-kafka avro confluent-schema-registry
2个回答
0
投票

既然您有一个受 SSL 保护的集群,那么我建议创建一个配置文件,并使用此参数供 CLI 引用它。

--producer.config <String: config file>  Producer config properties file. Note
                                           that [producer-property] takes
                                           precedence over this config

示例文件如下所示

bootstrap.servers=localhost:9092
# SSL related properties
security.protocol=SSL
ssl.keystore.location=/path/to/keystore-cert.jks
ssl.truststore.location=/path/to/truststore-cert.jks
ssl.key.password=xxxx
ssl.keystore.password=yyyy
ssl.truststore.password=zzzz

否则,您必须将这些逐一传递到

--property
选项


0
投票

由于 SSL 属性,我也得到了同样的结果,请通过 SSL。

下面是 AVRO 消息的示例

./kafka-avro-console-producer --topic <topic_name> --broker-list <broker:port> --producer.config ssl.properties --property schema.registry.url=<schema_registru_url (for avro msg)> --property value.schema="$(< /path/to/avro_chema.avsc)" --property key.schema='{"type":"string"}' --property parse.key=true --property key.separator=":"
© www.soinside.com 2019 - 2024. All rights reserved.