Kafka 白名單(Whitelist)是一種安全機制,用于限制哪些客戶端可以連接到 Kafka 集群。要使 Kafka 白名單生效,請按照以下步驟操作:
security.protocol 的屬性,并將其值設置為 SASL_PLAINTEXT(如果尚未設置)。這將使客戶端使用 SASL 進行身份驗證。例如:security.protocol=SASL_PLAINTEXT
server.properties)中,添加以下屬性以啟用 SASL/PLAIN 身份驗證和創建一個名為 client.whitelist 的屬性,其中包含允許連接到集群的客戶端列表。例如:listeners=SASL_PLAINTEXT://your.server.address:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
client.whitelist=client1,client2,client3
在這個例子中,client1、client2 和 client3 是允許連接到 Kafka 集群的客戶端。您可以使用逗號分隔這些客戶端。
重啟 Kafka 服務器:保存更改并重啟 Kafka 服務器以使更改生效。
配置客戶端:在客戶端應用程序中,配置 SASL 憑據以進行身份驗證。例如,如果您使用的是 Java 客戶端,可以使用以下代碼創建一個 SaslClient 實例:
Properties props = new Properties();
props.put("sasl.mechanism", "PLAIN");
props.put("sasl.username", "your_username");
props.put("sasl.password", "your_password");
SaslClient saslClient = SaslClient.create(props);
SaslClient 實例連接到 Kafka 集群。例如:KafkaClient<String, String> kafkaClient = new KafkaClient<>(props);
kafkaClient.connect();
現在,只有 client.whitelist 中列出的客戶端才能成功連接到 Kafka 集群。如果嘗試使用不在白名單中的客戶端連接,將收到一個連接被拒絕的錯誤。