kafka添加安全驗證配置方式
更新時間:2022年10月27日 10:01:44 作者:阿拉的夢想
這篇文章主要介紹了kafka添加安全驗證配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
- 綜合考慮性能影響、管理成本、安全等級要求,接入便利程度。
- 鑒權(quán)采用SASL+PLAINTEXT 方式。
- 每個集群會分配統(tǒng)一的訪問賬號及密碼用于客戶端訪問。
服務(wù)端配置
1. config 目錄添加kafka_server_jaas.conf 配置文件
內(nèi)容:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="7f8d9dsf789ds7ffsdfdsfu9"
user_admin="7f8d9dsf789ds7ffsdfdsfu9"
user_alice="xjfkddjfdssifds";
};2. kafka-run-class.sh 添加
KAFKA_OPTS="$KAFKA_OPTS -Djava.security.auth.login.config=/home/finance/App/kafka_2.12-2.5.1/config/kafka_server_jaas.conf"
3. config/server.properties
添加
security.inter.broker.protocol=SASL_PLAINTEXT sasl.mechanism.inter.broker.protocol=PLAIN sasl.enabled.mechanisms=PLAIN listener, advertised.listeners 添加對應(yīng)SASL_PLAINTEXT 監(jiān)聽器 listeners=SASL_PLAINTEXT://10.193.196.112:9092 advertised.listeners=SASL_PLAINTEXT://10.193.196.112:9092
客戶端接入改造
就是在java程序中將安全參數(shù)配置進來
生產(chǎn)者、消費者屬性配置加入一下配置
props.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=alice password=alice;");
props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");springboot 高版本估計有支持在properties文件中直接配置,此處沒有驗證。
完整配置示例
此方法,可以用KafkaProperties 獲取properties配置文件中的參數(shù)后,再往里面添加新的參數(shù)
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.kafka.KafkaProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
import org.springframework.kafka.config.KafkaListenerContainerFactory;
import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.listener.ConcurrentMessageListenerContainer;
import java.util.Map;
/**
* kafka配置
*/
@Configuration
@EnableKafka
public class KafkaProducerConfig {
@Autowired
private KafkaProperties kafkaProperties;
/**
* 消費者配置
*/
@Bean
public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
Map<String, Object> props = kafkaProperties.buildConsumerProperties();
props.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=user1 password=pass1;");
props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");
factory.setConsumerFactory(new DefaultKafkaConsumerFactory<>(props));
factory.setConcurrency(2);
factory.getContainerProperties().setPollTimeout(1500);
return factory;
}
/**
* 生產(chǎn)者配置
*/
@Bean
public KafkaTemplate<String, String> kafkaTemplate() {
Map<String, Object> props = kafkaProperties.buildProducerProperties();
props.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=user1 password=pass1;");
props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");
return new KafkaTemplate<>(new DefaultKafkaProducerFactory<>(props));
}
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(獨占模式)
這篇文章主要為大家詳細介紹了Java并發(fā)系列之AbstractQueuedSynchronizer源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
Java聊天室之實現(xiàn)接收和發(fā)送Socket
這篇文章主要為大家詳細介紹了Java簡易聊天室之實現(xiàn)接收和發(fā)送Socket功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以了解一下2022-10-10
Maven配置項目依賴使用本地倉庫的方法匯總(小結(jié))
這篇文章主要介紹了Maven配置項目依賴使用本地倉庫的方法匯總(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
MyBatis利用MyCat實現(xiàn)多租戶的簡單思路分享
這篇文章主要給大家介紹了關(guān)于MyBatis利用MyCat實現(xiàn)多租戶的簡單思路的相關(guān)資料,文中的多租戶是基于多數(shù)據(jù)庫進行實現(xiàn)的,數(shù)據(jù)是通過不同數(shù)據(jù)庫進行隔離,需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06

