在Debian上設置Kafka的安全認證,通常涉及配置SASL(Simple Authentication and Security Layer)和SSL(Secure Sockets Layer)兩種安全策略。SASL用于身份驗證,而SSL用于加密通信。以下是設置Kafka安全認證的步驟:
修改Zookeeper配置文件 (/usr/local/zookeeper-3.4.14/conf/zoo.cfg
):
ticktime=2000
initlimit=1
synclimit=5
datadir=/data/zookeeper/data
datalogdir=/data/zookeeper/datalog
clientport=2181
admin.serverport=8888
maxclientcnxns=3000
autopurge.snapretaincount=3
autopurge.purgeinterval=24
server.1=192.xxx.xxx.112:2888:3888
server.2=192.xxx.xxx.114:2888:3888
server.3=192.xxx.xxx.115:2888:3888
fourlw.commands.whitelist=conf,stat,srvr,mntr
saslauthprovider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasloginrenew=3600000
requireclientauthscheme=sasl
zookeeper.sasl.client=true
配置Zookeeper JAAS文件 (/usr/local/zookeeper-3.4.14/conf/zk_jaas.conf
):
server {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="admin"
password="admin123"
user_kafka="kafka123";
};
將JAAS配置文件添加到Zookeeper的環境變量中 (/usr/local/zookeeper-3.4.14/bin/zkenv.sh
):
zoobindir="${zoobindir:-/usr/bin}"
zookeeper_prefix="${zoobindir}/.."
# 新增變量
server_jvmflags="-djava.security.auth.login.config=/usr/local/zookeeper-3.4.14/conf/zk_jaas.conf"
引入Kafka依賴包:將Kafka安裝包下的相關依賴包拷貝到Zookeeper的目錄下。
配置Kafka的SASL動態認證:
Broker的JAAS配置:
編輯Kafka的server.properties
文件,添加或修改以下配置:
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
sasl.enabled.mechanisms=SCRAM-SHA-256,SCRAM-SHA-512
客戶端的JAAS配置: 客戶端也需要配置JAAS文件,例如:
client {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="admin_sasl_plaintext_username"
password="admin_sasl_plaintext_password";
};
啟動Zookeeper集群節點并查看集群狀態:
zkserver.sh restart
zkserver.sh status
啟動Kafka Broker: 確保Kafka Broker配置文件中也啟用了SASL和SSL相關設置,然后啟動Kafka Broker。
以上步驟提供了一個基本的框架來設置Debian上的Kafka安全認證。根據具體的生產環境和需求,可能還需要進一步的定制和優化。