kafka+kerberos+ranger 如何进行细粒度授权验证

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

image.png

开启了ranger的kafka的插件

image.png

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 [email protected](开启kerberos的时候输入的[email protected])

e、授权keytab文件

chmod 777 /etc/security/keytabs/test.keytab

f、验证test的keytab

kinit -kt /etc/security/keytabs/test.keytab [email protected]

klist 可以看到


image.png

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用户权限,不能生产和消费


image.png

6、策略创建

image.png

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

image.png

消费
/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

image.png

参考: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

你可能感兴趣的:(kafka+kerberos+ranger 如何进行细粒度授权验证)