Kafka 白名單是一種安全機制,用于限制哪些客戶端可以連接到 Kafka 集群。要設置 Kafka 白名單,請按照以下步驟操作:
確定要允許連接的客戶端 IP 地址或主機名。例如,您可以將白名單設置為只允許來自特定 IP 地址(如 192.168.1.100)或特定主機名(如 example.com)的連接。
編輯 Kafka 配置文件。找到 Kafka 配置文件 server.properties
,通常位于 /etc/kafka/
或 /usr/local/kafka/
目錄下。使用文本編輯器打開該文件,如 nano
或 vim
。
在 server.properties
文件中,找到或添加以下配置行:
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your_server_ip:9092
其中,your_server_ip
是您的 Kafka 服務器 IP 地址。如果您希望允許所有 IP 地址連接,可以將 advertised.listeners
設置為 PLAINTEXT://*:9092
。
在 server.properties
文件中,添加或修改以下配置行以設置白名單:
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
這些配置行啟用了 SASL_PLAINTEXT 協議,并允許使用 PLAIN 機制進行客戶端和服務器之間的身份驗證。
創建一個 SASL 用戶和密碼。在 Kafka 配置目錄下創建一個名為 users.properties
的文件(如果尚不存在),并添加以下內容:
your_username=your_password
其中,your_username
和 your_password
是您為客戶端創建的 SASL 用戶名和密碼。
創建一個 Kafka 客戶端配置文件(如 client.properties
),并添加以下內容:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.user=your_username
sasl.password=your_password
bootstrap.servers=your_server_ip:9092
其中,your_server_ip
是您的 Kafka 服務器 IP 地址,your_username
和 your_password
是您在步驟 5 中創建的 SASL 用戶名和密碼。
使用 Kafka 客戶端連接到集群。您可以使用命令行工具 kafka-console-producer.sh
或 kafka-console-consumer.sh
,或者使用其他支持 SASL 的客戶端庫(如 Java、Python 等)連接到 Kafka 集群。
注意:在生產環境中,建議使用更安全的加密協議(如 SSL/TLS)和更強大的身份驗證機制(如 SCRAM)。此外,確保您的 Kafka 集群和客戶端都正確配置了 SSL/TLS 和 SASL 相關參數。