Kafka配置中的安全策略主要包括認證、授權、加密、網絡隔離及監控審計五大類,以下是具體措施:
security.protocol(如sasl_plaintext、sasl_ssl)、sasl.mechanism(如PLAIN、SCRAM-SHA-256),并通過JAAS配置文件(如kafka_server_jaas.conf)指定認證信息。ssl.client.auth=required(Broker要求客戶端提供證書),并指定ssl.keystore.location(客戶端密鑰庫)、ssl.truststore.location(Broker信任庫)等參數。kafka-acls.sh工具動態設置用戶或用戶組對Kafka資源(主題、消費者組、分區等)的操作權限(如READ、WRITE、DESCRIBE)。例如,允許用戶alice向主題finance寫入數據的命令:kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:alice --operation Write --topic finance。配置時需設置authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer,并指定超級用戶(super.users=User:admin)。security.protocol=SSL,并指定ssl.keystore.location(Broker密鑰庫)、ssl.truststore.location(Broker信任庫)等參數。需注意,SSL加密會增加網絡開銷,建議在生產環境中啟用。iptables、firewalld等工具限制Kafka端口(默認9092)的訪問,僅允許信任的IP地址或子網連接。例如,firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="9093" protocol="tcp" accept'。log4j.properties配置審計日志級別(如DEBUG)。quota.producer.default、quota.consumer.default)限制客戶端的生產/消費速率,防止惡意客戶端發起DoS攻擊。