关于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
版权声明:本文为weixin_43865381原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。