在Debian系統上配置Kafka權限管理,需從用戶權限、文件權限、服務配置及安全認證等方面操作,具體步驟如下:
創建專用用戶和組
sudo groupadd kafka
sudo useradd -g kafka kafka
設置文件系統權限
sudo chown -R kafka:kafka /var/lib/kafka /var/log/kafka /etc/kafka
sudo chmod -R 750 /var/lib/kafka /var/log/kafka
sudo chmod 640 /etc/kafka/server.properties
配置Kafka服務以專用用戶運行
/etc/systemd/system/kafka.service
):[Service]
User=kafka
Group=kafka
ExecStart=/usr/bin/kafka-server-start.sh /etc/kafka/server.properties
sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka
啟用權限控制(ACLs)
server.properties
中啟用ACL:authorization.enable=true
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
# 創建用戶組
kafka-users.sh --create --group myGroup
# 創建用戶并添加到組
kafka-users.sh --create --user myUser --group myGroup --password 123456
# 分配主題權限(示例:允許myUser對myTopic的讀權限)
kafka-acls.sh --add --allow --user myUser --operation Read --topic myTopic --group myGroup
配置SASL/SSL(增強安全性)
server.properties
:listeners=SASL_SSL://:9092
security.inter.broker.protocol=SASL_SSL
ssl.keystore.location=/path/to/kafka.server.jks
ssl.keystore.password=your_password
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
/etc/kafka/jaas.conf
)并指定路徑:KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/jaas.conf"
驗證權限
kafka-acls.sh --list --user myUser
注意:若需遠程訪問,需在server.properties
中配置advertised.listeners
,并開放防火墻端口(默認9092)。
以上步驟參考自,可根據實際需求調整路徑和參數。