针对 Kafka topic 权限控制问题,可以采用以下步骤:
1. 启用Kafka权限控制特性
首先需要在Kafka的配置文件 server.properties 中启用权限控制特性。可以找到如下配置项:
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
该配置项使用 SimpleAclAuthorizer 类激活 Kafka 权限控制功能。如果需要使用 ACL 文件来配置权限控制,则还需要添加如下配置项:
zookeeper.set.acl=true
该配置项指示 Kafka ZooKeeper 设置 ACL,使得仅有经过授权的客户端能够访问 ZooKeeper 实例。
2. 创建ACL文件
接下来,需要在 Kafka 的 conf 目录下创建一个 ACL 文件来定义权限规则。ACL 文件内容为一系列规则,每个规则包含了对 topic 或者 group 的权限说明。例如:
# Allow the manager user to read/write on the my-topic topic
User:manager Allow:Read,Write Topic:my-topic
# Allow the guest user to read from the my-topic topic
User:guest Allow:Read Topic:my-topic
# Deny the admin user to delete the topic
User:admin Deny:Delete Topic:my-topic
ACL 文件中的格式与 Linux 文件权限规则相似。具体来说,规则包括:
- User:用户或用户组,用于授权访问权限;
- Allow 或 Deny:分别表示授予或拒绝访问权限;
- Operation:操作类型,如 Read、Write、Delete 等;
- Topic:要授权的主题名称。
3. 配置Kafka Broker
接下来需要将 ACL 文件中定义的规则应用到 Kafka Broker 之中。具体来说,可以通过以下配置项指定 ACL 文件路径:
authorizer.log.logger=debug
authorizer.logger=org.apache.kafka.server.authorizer.logger.ProducerAclLogger,org.apache.kafka.server.authorizer.logger.ConsumerAclLogger
authorizer.kafka.security.manager.log.dir=/mnt/home/logs/kafka-acl
authorizer.kafka.security.manager.max.log.size=20000000
authorizer.kafka.security.manager.num.log.files=10
authorizer.rule.file=kafka-acl.properties
其中,authorizer.rule.file 指定了 ACL 文件所在路径。可以将其设为绝对路径或者相对于 Kafka 的根目录路径。此外,还可以使用一些其它配置项来设置日志路径、日志文件数以及最大日志大小等。
4. 重启Kafka Broker
修改Kafka Broker的配置文件后,需要重新启动 Broker 以应用新的配置。
示例一
例如,假设需要为一个叫做 travel 的主题创建一个名为 admin 的用户,让其能够读取和写入该主题,并拒绝其删除该主题,可以按照如下步骤设置:
- 修改 server.properties 文件,激活ACL权限控制特性;
- 在 Kafka 的 conf 目录下创建一个 ACL 文件,命名为 kafka-acl.properties,并在其中添加如下规则:
# Allow the admin user to read/write on the travel topic
User:admin Allow:Read,Write Topic:travel
# Deny the admin user to delete the topic
User:admin Deny:Delete Topic:travel
- 重启 Kafka Broker,使修改生效。
示例二
假设需要为一个名为 finance 的主题创建一个 BD 组,让其能够读取和写入该主题,并拒绝其删除该主题,可以按照如下步骤设置:
- 修改 server.properties 文件,激活ACL权限控制特性;
- 在 Kafka 的 conf 目录下创建一个 ACL 文件,命名为 kafka-acl.properties,并在其中添加如下规则:
# Allow the BD group to read/write on the finance topic
Group:BD Allow:Read,Write Topic:finance
# Deny the BD group to delete the topic
Group:BD Deny:Delete Topic:finance
- 重启 Kafka Broker,使修改生效。
以上是关于 Kafka topic 权限控制设置删除权限的攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:kafka topic 权限控制(设置删除权限) - Python技术站