在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