在Ubuntu上配置Kafka的安全设置主要包括启用SSL/TLS加密、SASL认证、配置防火墙规则、创建用户和角色以及监控和审计等步骤。以下是详细的配置指南:
keytool工具生成密钥库(keystore)和信任库(truststore)。keytool -genkey -alias kafka -keyalg RSA -keystore kafka.server.keystore.jks -validity 3650 keytool -export -alias kafka -file kafka.server.keystore.jks -keystore kafka.server.truststore.jks server.properties,指定密钥库和信任库的位置以及密码。listeners=SSL://your_kafka_broker_ip:9093 security.inter.broker.protocol=SSL ssl.keystore.location=/path/to/kafka.server.keystore.jks ssl.keystore.password=your_keystore_password ssl.key.password=your_key_password ssl.truststore.location=/path/to/kafka.server.truststore.jks ssl.truststore.password=your_truststore_password kafka_server_start.sh脚本中包含SASL相关的配置。cat <<EOF > /opt/kafka/kafka_2.11-2.1.0/conf/kafka_server_jaas.conf KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret"; }; EOF sasl.mechanism.inter.broker.protocol=PLAINTEXT sasl.enabled.mechanisms=SASL_PLAINTEXT sasl.client.mechanism.inter.broker.protocol=PLAINTEXT 确保Kafka所需的端口(默认为9092)在防火墙中打开。如果需要远程访问Kafka集群,确保外部IP地址也被允许通过防火墙。
sudo ufw allow 9092/tcp 使用Kafka的ACL(访问控制列表)功能来定义用户和角色,为用户分配适当的权限,例如读取、写入或管理主题等。
kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --add-partition 1 --partitions 2 kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --replication-factor 2 启用Kafka的日志记录功能,以便跟踪活动和异常情况。定期审查日志文件,检查潜在的安全问题或异常行为。
log.flush.interval.messages=100000 log.flush.interval.ms=1000 log.retention.hours=10 sudo systemctl daemon-reload sudo systemctl enable zookeeper sudo systemctl enable kafka sudo systemctl start zookeeper sudo systemctl start kafka