温馨提示×

Kafka在CentOS上的安全认证如何配置

小樊
57
2025-07-12 17:53:50
栏目: 智能运维

在CentOS上配置Kafka的安全认证涉及多个步骤,主要包括SASL认证和SSL配置。以下是详细的配置指南:

1. 配置SASL认证

  • 创建JAAS配置文件: 创建一个名为kafka_server_jaas.conf的文件,内容如下:

    Server org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafkapwd";
    

    其中,usernamepassword是Kafka服务器的认证信息。

  • 修改Kafka配置文件: 编辑Kafka的server.properties文件,添加以下内容:

    listeners=SASL_PLAINTEXT://:9092
    security.inter.broker.protocol=SASL_PLAINTEXT
    sasl.mechanism.inter.broker.protocol=PLAIN
    sasl.jaas.config=kafka_server=kafka:///home/kafka/kafka_2.12-2.4.1/config/kafka_server_jaas.conf
    
  • 配置Kafka启动脚本: 在Kafka的启动脚本kafka-server-start.sh中添加以下环境变量:

    export KAFKA_HOME=/opt/app/kafka
    

2. 配置SSL认证

  • 生成SSL证书和密钥: 使用以下命令生成自签名证书和密钥:

    keytool -genkey -alias kafka -keyalg RSA -keysize 2048 -keystore kafka.server.keystore.jks -validity 365
    
  • 配置SSL相关参数: 编辑Kafka的server.properties文件,添加以下内容:

    security.protocol=SSL
    ssl.truststore.location=/path/to/kafka.server.keystore.jks
    ssl.truststore.password=password
    ssl.keystore.location=/path/to/kafka.server.keystore.jks
    ssl.keystore.password=password
    ssl.key.password=password
    

3. 权限管理与访问控制列表(ACLs)

  • 使用kafka-acls.sh工具设置ACL: 使用以下命令定义用户或用户组对特定主题的访问权限:
    kafka-acls.sh --set --topic test --allow-principal User:testuser --allow-access ReadWrite --topic test
    
    配置authorizer.class.namekafka.security.auth.SimpleAclAuthorizer

4. 防火墙配置

  • 开放Kafka服务使用的端口: 使用firewall-cmd命令开放Kafka服务使用的端口(默认9092):
    firewall-cmd --zone=public --add-port=9092/tcp --permanent
    firewall-cmd --reload
    

5. 启动和验证配置

  • 启动Kafka服务: 使用以下命令启动Kafka服务:

    bin/kafka-server-start.sh config/server.properties
    
  • 验证SASL认证: 使用Kafka命令行工具发送和接收消息,确保SASL认证已生效。

通过上述步骤,您可以在CentOS上为Kafka配置基本的安全认证。根据具体需求,可能还需要进行更详细的配置,例如启用Kerberos集成和更细粒度的访问控制列表(ACLs)。

0