apache-kafka - Kafka producer/consuper 主题未授权
问题描述
每当我尝试将 kafka 连接到生产者/消费者时,我都会收到“未授权主题 [test2]”
如果我关闭授权,我将成功通过身份验证,因此身份验证有效,只有授权无效。
使用 kafka.security.auth.SimpleAclAuthorizer 的 ACL 授权不起作用。
配置/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
日志/kafka-授权者
[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";
};
bin/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: *
解决方案
用户alice
当前仅被授权访问Write
该主题。您可能还希望添加 ACLDescribe
并Read
能够正确生成和使用现有主题。
该kafka-acls
工具提供了方便的选项--consumer
以及--producer
将 ACL 添加到主题时。否则,您可以使用--operation
添加特定操作,例如Describe
. 通过添加Describe
,您将删除当前在 中看到的日志logs/kafka-authorizer
。
推荐阅读
- ruby-on-rails - 如何使用 Active storage 和 jbuilder 而不是 1 个图像上传多个图像?
- javascript - 异步 Javascript 不访问类方法
- html - 下载的字体未显示在 html 文件中
- python - 如何最小化只有整数输入的实函数
- r - 在 R 中转换输入数据的结构
- python - Cythonized 扩展库依赖不正确
- excel - 如何编写一个 VBA 代码,它将遍历一个固定范围并在另一张表中填充该范围的每一行 N 次(带编号)?
- node.js - 使用 discord.js 命令处理程序捕获 NodeJS 错误
- python-3.x - 通过 httpd 导入 gurobi 时出现问题
- python - Python - 如何禁用从父目录导入的模块的日志记录?