1、首先我们先要开启ranger的kafka的组件,以及kerberos

开启了ranger的kafka的插件

2、先添加系统用户到集群所有主机
添加用户名:useradd test
设置用户密码为:passwd test
3、把test用户添加到kerberos认证中
用root用户进入kadmin.local配置,执行:
a、进入到kerberos:kadmin.local
b、查看kerberos成员:listprincs
c、添加kerberos成员:addprinc -pw test 12345
test 为密码 123456 为用户名
d、生成用户keytab文件
ktadd -k test.keytab -norandkey xxx@XXXX.COM(开启kerberos的时候输入的xx@XXXX.COM)
e、授权keytab文件
chmod 777 /etc/security/keytabs/test.keytab
f、验证test的keytab
kinit -kt /etc/security/keytabs/test.keytab xx@XXXX.COM
klist 可以看到

4、进行kafka的配置
生产者的配置
a、kafka_jaas.conf
配置内容为:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
renewTicket=true
serviceName="kafka";
};
添加到环境变量:
export KAFKA_OPTS="-Djava.security.auth.login.config=/xxx/xx/kafka_jaas.conf"
b、在producer.properties中添加
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
消费者的配置
a、在consumer.properties中添加
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
group.id=test-consumer-group
5、没有给test用户权限,不能生产和消费

6、策略创建

7、策略创建以后可以生产和消费权限验证:
生产
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list xxx.xxxx.com:6667
--topic kafka_01
--producer.config /usr/hdp/3.1.0.0-78/kafka/conf/producer.properties

消费
/usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh
--bootstrap-server xxx.xxxx.com:6667
--topic kafka_01
--from-beginning
--consumer.config /usr/hdp/3.1.0.0-78/kafka/conf/consumer.properties

参考:https://blog.csdn.net/qq_35995514/article/details/106575381
https://blog.csdn.net/dingweijson/article/details/84920696
https://www.cnblogs.com/felixzh/p/10475171.html
https://www.cnblogs.com/felixzh/p/9999556.html
网友评论