溫馨提示×

如何在Debian上配置Kafka的認證授權

小樊
54
2025-09-02 10:25:01
欄目: 智能運維

在Debian上配置Apache Kafka的認證和授權涉及幾個步驟。以下是一個基本的指南,幫助你在Debian系統上設置Kafka的SASL/PLAIN認證和基于角色的訪問控制(RBAC)。

前提條件

  1. Java安裝:Kafka需要Java運行時環境。你可以通過以下命令安裝OpenJDK:

    sudo apt update
    sudo apt install openjdk-11-jdk
    
  2. Kafka安裝:你可以從Apache Kafka官方網站下載并解壓Kafka,或者使用包管理器安裝。這里我們假設你已經下載并解壓了Kafka。

步驟1:配置Zookeeper

Kafka使用Zookeeper進行集群管理。首先,你需要配置Zookeeper以支持SASL認證。

  1. 編輯Zookeeper配置文件(通常位于/path/to/kafka/config/zookeeper.properties):

    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    jaasLoginRenew=3600000
    
  2. 創建JAAS配置文件(例如/etc/zookeeper/conf/jaas.conf):

    Server {
        org.apache.zookeeper.server.auth.DigestLoginModule required
        user_super="super_secret"
        user_kafka="kafka_secret";
    };
    
  3. 啟動Zookeeper

    bin/zookeeper-server-start.sh config/zookeeper.properties
    

步驟2:配置Kafka Broker

接下來,你需要配置Kafka Broker以支持SASL認證和SSL加密。

  1. 編輯Kafka Broker配置文件(通常位于/path/to/kafka/config/server.properties):

    listeners=SASL_PLAINTEXT://:9092
    security.inter.broker.protocol=SASL_PLAINTEXT
    sasl.mechanism.inter.broker.protocol=PLAIN
    sasl.enabled.mechanisms=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
      username="admin" \
      password="admin-secret" \
      user_admin="admin-secret";
    authorizer.class.name=kafka.security.authorizer.AclAuthorizer
    allow.everyone.if.no.acl.found=false
    super.users=User:admin
    
  2. 創建Kafka JAAS配置文件(例如/etc/kafka/conf/kafka_server_jaas.conf):

    KafkaServer {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin-secret";
    };
    
  3. 啟動Kafka Broker

    bin/kafka-server-start.sh -daemon config/server.properties
    

步驟3:配置客戶端

最后,你需要配置Kafka客戶端以支持SASL認證。

  1. 編輯客戶端配置文件(例如/path/to/kafka/config/client.properties):

    bootstrap.servers=localhost:9092
    security.protocol=SASL_PLAINTEXT
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
      username="admin" \
      password="admin-secret";
    
  2. 測試客戶端連接

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --property security.protocol=SASL_PLAINTEXT --property sasl.mechanism=PLAIN --property sasl.jaas.config="org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='admin-secret';"
    

步驟4:配置基于角色的訪問控制(RBAC)

Kafka支持基于角色的訪問控制,可以通過配置ACL來實現。

  1. 創建ACL規則

    bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
      --add --allow-principal User:admin --operation All --topic test
    
  2. 驗證ACL規則

    bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
      --list --topic test
    

通過以上步驟,你應該能夠在Debian上成功配置Kafka的認證和授權。請根據你的具體需求調整配置文件中的參數。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女