kafka安全权限验证sasl配置

本文详细介绍了如何配置Kafka和Zookeeper的安全认证,包括创建SASL_PLAINTEXT类型的Kafka Server和Client的JAAS配置文件,修改Kafka和Zookeeper的server.properties及启动脚本,以及配置Kafka自带客户端和Java应用的相关参数,确保Kafka集群的安全运行。
摘要由CSDN通过智能技术生成

Kafka

安全认证配置 SASL

常规配置(kafka和zk)

kafka server配置

#进入kafka的配置目录config
cd /mnt/data/kafka/config
#新建配置文件
touch kafka_server.jaas.conf
vim kafka_server.jaas.conf
#注意password后边有;
KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_admin="admin-secret";
};
KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret";
};
Client {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret";
};
 

修改server.properties

vim server.properties
​
# 允许外部端口连接
listeners=SASL_PLAINTEXT://0.0.0.0:9092
# 外部代理地址 外网地址
advertised.listeners=SASL_PLAINTEXT://101.xx.xx.xx:29092
​
security.inter.broker.protocol=SASL_PLAINTEXT
​
sasl.enabled.mechanisms=PLAIN
​
sasl.mechanism.inter.broker.protocol=PLAIN
​
# Add acl
allow.everyone.if.no.acl.found=true
auto.create.topics.enable=true
delete.topic.enable=true
advertised.host.name=dn1
super.users=User:admin
​
# Add class
#authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
#kafka3.0之后版本弃用了SimpleAclAuthorizer验证,改为
authorizer.class.name=kafka.security.authorizer.AclAuthorizer

修改kafka/bin

进入kafka的bin目录bin:
vim kafka-server-start.sh
​
export KAFKA_OPTS="-Djava.security.auth.login.config=file:$base_dir/../config/kafka_server_jaas.conf"

配置zookeeper

kafka_zoo.jaas.conf

touch kafka_zoo.jaas.conf
vim kafka_zoo.jaas.conf
ZKServer{
    org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin-secret"
        user_kafka="admin-secret";
};
​

修改zookeeper-server-start.sh

export KAFKA_OPTS="-Djava.security.auth.login.config=file:$base_dir/../config/kafka_zoo_jaas.conf -Dzookeeper.allowSaslFailedClients=false"

如果需要使用kafka自带客户端 需要配置

kafka client配置 kafka/config目录

touch kafka_client.jaas.conf
vim kafka_client.jaas.conf
Client {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_kafka="admin-secret";
};
 

修改producer.properties

vim producer.properties
​
security.protocol=SASL_PLAINTEXT
​
sasl.mechanism=PLAIN

修改consumer.properties

vim consumer.properties
​
security.protocol=SASL_PLAINTEXT
​
sasl.mechanism=PLAIN

新增consumer-group-ssl.properties

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="账号" password="密码";

修改启动脚本 kafka/bin目录

vim kafka-console-producer.sh

export KAFKA_OPTS="-Djava.security.auth.login.config=file:$base_dir/../config/kafka_client_jaas.conf"

vim kafka-console-consumer.sh
export KAFKA_OPTS="-Djava.security.auth.login.config=file:$base_dir/../config/kafka_client_jaas.conf"

kafka-java配置

1.properties配置

properties.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
properties.put(SaslConfigs.SASL_MECHANISM,"PLAIN");
properties.put(SaslConfigs.SASL_JAAS_CONFIG,"org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin_secret\";");

kafka脚本

windows

#kafka\bin\windows目录
.\zookeeper-server-start.bat ..\..\config\zookeeper.properties
.\kafka-server-start.bat ..\..\config\server.properties
​

linux

#kafka/bin目录
#启动zookeeper
./zookeeper-server-start.sh -daemon /mnt/data/kafka/config/zookeeper.properties
#启动kafka
./kafka-server-start.sh -daemon /mnt/data/kafka/config/server.properties
#启动eagle
./ke.sh start
#查询topic信息
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic member_modify_model
#查询topic内容
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic member_modify_model --from-beginning
查看指定的消费者
./kafka-consumer-groups.sh --bootstrap-server 192.168.0.75:9092 --command-config config/consumer-group-ssl.properties --group PROVINCE_KAFKA_GROUP --describe
查看所有的消费者组
./kafka-consumer-groups.sh --bootstrap-server 192.168.31.253:9092 --all-groups --describe
查看指定组里的成员
./kafka-consumer-groups.sh --bootstrap-server 192.168.31.253:9092 --group CountryCounter --describe --members

查看有那些 group ID 正在进行消费: 
./kafka-consumer-groups.sh --new-consumer --bootstrap-server 192.168.75.128:9092 --list
查看指定group.id 的消费者消费情况 
./kafka-consumer-groups.sh  --bootstrap-server 192.168.0.75:9092 --command-config config/consumer-group-ssl.properties  --group PROVINCE_KAFKA_GROUP --describe
删除消费者组的偏移量
./kafka-consumer-groups.sh --bootstrap-server 192.168.31.253:9092 --delete-offsets --group CountryCounter --topic t1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot Kafka提供了一些安全机制来确保消息传输的安全性。其中一个重要的安全机制是使用认证和授权来限制访问Kafka集群的权限。 为了实现安全认证,可以通过配置KafkaSASL(Simple Authentication and Security Layer)机制来验证连接到Kafka集群的客户端的身份。可以使用不同的SASL机制,如PLAIN,SCRAM,OAUTHBEARER等来进行认证。 另外,还可以使用SSL/TLS协议来加密与Kafka集群之间的通信,确保数据在传输过程中不会被窃取或篡改。这可以通过配置Kafka的SSL连接来实现。 此外,可以使用授权机制来限制对Kafka集群中主题的读写权限。可以配置Kafka的ACL(Access Control List)来指定哪些用户或用户有权对特定主题进行读写操作。 综上所述,Spring Boot Kafka提供了多种安全机制,包括身份认证、加密传输和访问控制,以确保消息传输的安全性。具体的安全配置取决于实际需求和部署环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [三.Kafka入门到精通-SpringBoot整合Kafka(同步&异步消息&事务消息&手动确认)](https://blog.csdn.net/u014494148/article/details/125241806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [springboot-demo:基于SpringBoot 2.x整合各种常用开发工具,包括但不限于Redis,MyBatisPlus,RocketMQ,...](https://download.csdn.net/download/weixin_42127754/18369068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值