在kafka的身份認證方法一(SASL/PLAIN)中,說明了如何給kafka添加簡單身份認證,但是用戶名密碼是在啟動zookeeper和kafka的時候 通過靜態文件,就注冊到內存中,因此無法動態添加用戶名密碼。
正如Apache Kafka security_sasl_scram所說的,The default SCRAM implementation in Kafka stores SCRAM credentials in Zookeeper。SCRAM資格證明是存儲在zookeeper中,而非文件中,
這為動態添加身份認證的憑據:用戶名密碼,提供了可能。
目的:
producer/consumer到broker端連接,通過簡單的用戶名密碼作身份認證,這些用戶名密碼可以動態的添加、刪除。
步驟:
0)利用kafka提供的接口kafka-config.sh把client端連broker端的用戶名密碼都添加到 zookeeper中備用,包含普通用戶和admin用戶
1)--6)類似與SASL/PLAIN的配置,配置broker端和producer/consumer端,並且使得properties的值通過vm argument的方式,傳給kafka和zookeeper。
7)動態刪除這些用戶。
8)使用kafka提供的接口,對已有用戶做權限控制。
參考: