关于kafka的topic的授权问题的汇总
在具有kerberos的集群上对其他用户相应的topic授权的时候主要有以下几点
如果超级用户为kafka这时候需要切换到kafka安装的一个节点上,进行kinit验证的操作
例如:kinit –kt /etc/kafka/conf/kafka.keytab kafka
需要创建要对topic进行操作的用户(读,写或者读和写都具备)
1.1添加的一个普通用户:

在管理员的状态下使用addprinc,delprinc,modprinc,listprincs命令。使用?可以列出所有的命令。

kadmin.local:  addprinc –pw 111111 user01
kadmin.local:  delprinc user01
kadmin.local:  listprincs

说明:
addprinc :生成kerberos用户,语法为addprinc –pw 密码用户名
delprinc:删除kerberos用户,语法为delprinc 用户名
listprincs : 查看kerberos用户列表

1.2 生成keytab文件:使用xst命令或者ktadd命令
kadmin.local:	ktadd -kt /xxx/xxx/user01.keytab –norandeky user01
kadmin.local:	xst -k /xxx/xxx/user01.keytab –norandeky  user01

注意:加上–norandeky表示生成keytab后,原用户密码不失效,否则密码失效

1.3 创建需要授权的topic如果topic已经存在这时候不需要创建
创建topic的时候先认证到kafka的超级用户
kinit –kt /etc/kafka/conf/kafka.keytab  kafka
接下来进行topic的创建
kafka-topics --create --zookeeper node01:2181/kafka --replication-factor 1 --partitions 2 --topic test01
随后对用户user01对test01的topic授予读写的权限
kafka-acls --authorizer-properties zookeeper.connect=node01:2181/kafka --add --allow-principal User:use01  --operation Read  --topic test01
对用户user01对test01的topic授予group读权限
kafka-acls --authorizer-properties zookeeper.connect=node01:2181/kafka --add --allow-principal User:user01  --group=* --operation Read --topic  test01
1.4 命令行生产数据
kinit user01
kafka-console-producer --broker-list node01:9092 --topic topic1 --producer.config /etc/kafka/conf/producer.properties
1.5 命令行消费数据
kafka-console-consumer --bootstrap-server node01:9092 --topic test01 --new-consumer --from-beginning --consumer.config /etc/kafka/conf/consumer.properties
1.6 查看所有消费组的信息的命令
./kafka-consumer-groups.sh --bootstrap-server node01:9092 --command-config ../config/consumer.properties  --new-consumer  --list
1.7 查看消费组的情况的命令
./kafka-consumer-groups.sh --bootstrap-server node01:9092 --new-consumer --command-config ../config/consumer.properties --group test01  --describe
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐