在Kafka中,ACL(Access Control List)是用來控制誰可以訪問Kafka資源(如主題、消費者組等)的權限機制。ACL配置基于Kafka的
kafka-acls.sh
工具,能夠管理對資源的讀取、寫入等操作權限。
ACL介紹
Kafka的ACL是基于以下幾個方面的:
資源類型(Resource Type): Kafka支持多種資源類型,包括主題(Topic)、消費者組(Consumer Group)、Kafka集群本身(Cluster)等。
操作類型(Operation Type): 如
Read
(讀取)、Write
(寫入)、Create
(創建)、Describe
(描述)、Alter
(修改)等。權限類型(Permission Type):?
Allow
表示允許訪問,Deny
表示拒絕訪問。主體(Principal): 訪問Kafka的用戶或客戶端。Kafka支持通過SASL認證系統中的用戶來定義主體,通常是
User:<username>
的形式。
查詢現有的ACL
bin/kafka-acls.sh --bootstrap-server 192.168.100.131:9092 --list --command-config /opt/kafka/config/admin.properties
添加ACL
給用戶User:test添加對test主題的讀取權限:bin/kafka-acls.sh --bootstrap-server 192.168.100.131:9092 --add --allow-principal User:test --operation Read --topic test --command-config /opt/kafka/config/admin.properties參數說明:--allow-principal: 允許訪問的用戶主體。
--operation: 操作類型,如Read、Write等。
--topic top 名稱。
刪除ACL
刪除User:test對test主題的讀取權限bin/kafka-acls.sh --bootstrap-server 192.168.100.131:9092 --remove --allow-principal User:test --operation Read --topic test --command-config /opt/kafka/config/admin.properties
?