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攻击。