如何将账号密码添加到Kafka(2)

2025-06-24 12:49:06 9388

SASL/SASL/SASL/认证策略PLAIN。

在上一篇文章中,我们解释了Kafka的认证方法和基本概念c;并以不同的方式比较使用场景。

2024年,如何更好地构建Kafka集群?》PLAINTEXT通信统一用于中集群。Kafka通常用于内网,但也有特殊的使用场景需要泄露到公网,未经认证的Kafka集群允许通过公网访问,或者向所有研发人员泄露是一种极其不安全的方式。

本节我们将为Kafka添加最简单的认证方法,也就是SASL_也就是SASL__PLAINTEXT(也就是SASL/PLAIN+ 非加密通道)。

配置服务集群节点。

Kafka有三个地方可以做认证:
borker节点之间的认证,controller节点之间的认证,外部客户端连接集群认证。我们只需要在公司内部配置外部客户端连接时进行认证。本文基于kraft单节点部署Kafka,该节点既是controller又是broker节点。

在开始之前,请先到官网下载安装包(本文使用 Kafka-v3.6.1󿼉:
https://kafka.apache.org/downloads。

1. 创建jaas配置文件。

文件:volume/config/kafka-server-jaas.conf。

KafkaServer。 { 。org。.。apache。.。kafka。.。common。.。security。.。plain。.。PlainLoginModule required    user_admin。="123456";}。;

帐号密码。user_{ USERNAME}="PASSWORD"这种形式配置󿀌在jaas的配置文件中固定写死。

2. 修改配置文件。

修改config//kraft/server.properties如下:

# 修改listeners和advertisedlisteners;PLAINTEXT://:9092,CONTROLLER://:9093,SASL_PLAINTEXT://:19092advertiseded.listeners=PLAINTEXT://192.168.56.103:9092,SASL_PLAINTEXT://192.168.56.103:19092# 添加mechanisms配置saslll配置.enabled.mechanisms=PLAIN。

虽然我们只有一个节点,但是,我们以集群的形式分配端口༚

  • 9092。:用于broker节点内部通信和内网客户端通信。
  • 19092。:用于broker节点外部通信和外网客户端通信。
  • 9093。:用于多个controller节点之间的通信。

我们只需要认证外部流量,也就是说,所有通过19092端口的通信都需要认证。

有三个配置文件需要注意:

  1. sasl.enabled.mechanisms=PLAIN。这意味着通过PLAIN进行认证。
  2. SASL_PLAINTEXT监听器󿼌监控19092年端口,并对通过端口的通信进行认证。
  3. advertised.SASL_PLAINTEXT监听器󿼌表示只允许符合。192.168.56.103:19092。流量包到达SASL_PLAINTEXT监听器。

关于advertised.listeners,Kafka有一个复杂的监听器系统。Kafka允许定义多个监控器来监控不同的端口,将不同的流量划分为不同的端口。这样做的好处是,当端口流量较大时,不影响其他端口的通信。

3. 启动节点。

执行以下命令启动节点:

KAFKA_OPTS=-Djava.security.auth.login.config=config/kraft/jaas.conf  bin/kafka-server-start.sh config/kraft/server.properties。

用于指定JAAS配置文件的环境变量KAFKA_OPTS。

服务端通过以上三个步骤配置,下面,我们使用客户端来验证认证是否有效。

配置客户端。

我们将介绍三种客户端连接方式:

  1. kafka命令工具测试。
  2. offset 连接kafka的explorer图形工具。
  3. flink连接kafka。

kafka命令工具测试。

在config目录中创建admin.conf。

security.protocol=SASL_PLAINTEXTsasl.mechanism=PLAINsasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="123456";

提示:确保帐户密码与服务端配置一致。

# 创建topic。bin/kafka-topics.sh。 --create。--topic。test-topic --bootstrap-server。=192.168。.56.103:19092 --command-config。=config/admin.conf。# 查看topic。bin/kafka-topics.sh。 --list。--bootstrap-server。=192.168。.56.103:19092 --command-config。=config/admin.conf。

使用图形工具Offsetet explorer连接kafka。

![[attach/Pasted image 20240204135019.png]]。
这里只需要填写集群名称,我们没有使用zk版󿀌zookeeper相关配置无需修改。
![[attach/Pasted image 20240127151018.png]]。
![[attach/Pasted image 20240127151059.png]]。
![[attach/Pasted image 20240127151109.png]]。

设置这三个地方,正常连接即可。

Flink连接kafka。

在无认证的基础上,增加三个认证参数:

  • SECURITY_PROTOCOL_CONFIG。
  • SASL_MECHANISM。
  • SASL_JAAS_CONFIG。
Properties。properties。 =new。Properties。(。)。;properties。.。setProperty。(。ConsumerConfig。.。ENABLE_AUTO_COMMIT_CONFIG。,"true")。;properties。.。setProperty。(。ConsumerConfig。.。AUTO_COMMIT_INTERVAL_MS_CONFIG。,"5")。;properties。.。setProperty。(。CommonClientConfigs。.。SECURITY_PROTOCOL_CONFIG。,"SASL_PLAINTEXT")。;properties。.。setProperty。(。SaslConfigs。.。SASL_MECHANISM。,"PLAIN")。;properties。.。setProperty。(。SaslConfigs。.。SASL_JAAS_CONFIG。,"org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='123456';")。;/*        org.apache.flink.streaming包下的消费者和生产者已被标记,不建议使用        org.apache.flink.connector.kafka 建议使用包中的工具类         */。KafkaSource。<String。>kafkaSource。 =KafkaSource。.。<String。>builder。(。)。.。setBootstrapServers。(。"192.168.56.103:19092")。.。setTopics。(。"test-topic")。.。setGroupId。(。"test")。.。setValueOnlyDeserializer。(。new。SimpleStringSchema。(。)。)。.。setStartingOffsets。(。OffsetsInitializer。.。earliest。(。)。)。.。setProperties。(。properties。)。.。build。(。)。;final。StreamExecutionEnvironment。env。 =StreamExecutionEnvironment。.。getExecutionEnvironment。(。)。;env。.。enableCheckpointing。(。10000。)。;env。.。setParallelism。(。1。)。;DataStreamSource。<String。>stream。 =env。.。fromSource。(。kafkaSource。,WatermarkStrategy。.。noWatermarks。(。)。,"test-tip")。;stream。.。print。(。)。;env。.。execute。(。"Kafka to Print")。;

我们已经为Kafka集群配置了SASL/PLAIN的认证方法。但这种方法的缺点也很明显,它只能在启动Kafka之前,固定用户名和密码,无法灵活修改账号密码。如果修改󿼌只能重启集群。下一篇文章󿀌本文介绍了一种可以灵活修改的认证方法,即SASL/SCRAM。


请保留本文的连接进行转载。

本文地址:http://cdn.baiduyun.im/video/www.bfzx365.com/news/show.php/video/401d69898900.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

热门标签

全站热门

宏碁UM310:64GB USB3.0金属U盘,专业设计,高速传输,理想的存储伙伴学生/商务人士

使用 Python 快速完成管理系统开发:详细教程

java构建树形结构的方式

[数据结构] 建立优先级队列(堆)和堆

三星 One UI 7.0 Beta 5 更新截图曝光:电池图标变粗,快速设置开关变宽

如何用AI做PPT?职场写PPT必备的三款AI软件盘点!

大全马匹游戏 热门马匹游戏排名

林内16升燃气热水器,京东优惠价4385元

友情链接