作者:mobiledu2502916737 | 来源:互联网 | 2023-09-09 10:33
1.概述在Kafka0.9版本之前,Kafka集群时没有安全机制的。KafkaClient应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3
1.概述
在Kafka0.9版本之前,Kafka集群时没有安全机制的。Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等。来获取存储在Zookeeper中的Kafka元数据信息。拿到Kafka Broker地址后,连接到Kafka集群,就可以操作集群上的所有主题了。由于没有权限控制,集群核心的业务主题时存在风险的。
2.内容
2.2 身份认证
Kafka的认证范围包含如下:
- Client与Broker之间
- Broker与Broker之间
- Broker与Zookeeper之间
当前Kafka系统支持多种认证机制,如SSL、SASL(Kerberos、PLAIN、SCRAM)。
2.3 SSL认证流程
在Kafka系统中,SSL协议作为认证机制默认是禁止的,如果需要使用,可以手动启动SSL机制。安装和配置SSL协议的步骤,如下所示:
- 在每个Broker中Create一个Tmp密钥库
- 创建CA
- 给证书签名
- 配置Server和Client
执行脚本如下所示:
2.4 SASL认证流程
在Kafka系统中,SASL机制包含三种,它们分别是Kerberos、PLAIN、SCRAM。以PLAIN认证为示例,下面给大家介绍PLAIN认证流程。
2.4.1 配置Server
首先,在$KAFKA_HOME/config目录中新建一个文件,名为kafka_server_jaas.conf,配置内容如下:
然后在Kafka启动脚本(kafka-server-start.sh)中添加配置文件路径,设置内容如下:
接下来,配置server.properties文件,内容如下:
2.4.2 配置Client
当Kafka Server端配置启用了SASL/PLAIN,那么Client连接的时候需要配置认证信息,Client配置一个kafka_client_jaas.conf文件,内容如下:
然后,在producer.properties和consumer.properties文件中设置认证协议,内容如下:
最后,在kafka-console-producer.sh脚本和kafka-console-producer.sh脚本中添加JAAS文件的路径,内容如下:
2.5 ACL操作
在配置好SASL后,启动Zookeeper集群和Kafka集群之后,就可以使用kafka-acls.sh脚本来操作ACL机制。
(1)查看:在kafka-acls.sh脚本中传入list参数来查看ACL授权新
(2)创建:创建待授权主题之前,在kafka-acls.sh脚本中指定JAAS文件路径,然后在执行创建操作
(3)生产者授权:对生产者执行授权操作
(4)消费者授权:对生产者执行授权后,通过消费者来进行验证
(5)删除:通过remove参数来回收相关权限
3.总结
在处理一些核心的业务数据时,Kafka的ACL机制还是非常重要的,对核心业务主题进行权限管控,能够避免不必要的风险。
4.结束语
这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!