Confluent Kafka Topic授权失败:Kafka团队需排查的事项
确认权限范围匹配目标Topic
检查给你的账号授予的权限是不是精准对应${TOPIC_NAME}这个Topic,别是用了不匹配的通配符(比如*但实际规则不生效)或者写错了Topic名称。Confluent Kafka的ACL规则对资源名称要求严格,要么完全匹配,要么用正确的通配符格式,得确保权限覆盖到你要修改的那个Topic。验证权限类型包含配置修改权限
更新Topic配置需要的是ALTER权限(或者Confluent平台对应的CONFIG权限),不是只有读写权限就行。得确认ACL规则里明确给这个Topic开了ALTER权限,或者包含配置修改的复合权限。检查登录身份是否正确
确认脚本里用的用户名就是被授权的那个账号,别登错了人。可以在脚本里加个confluent whoami命令看看当前登录的用户,和授权的账号对上才行。查看ACL规则的生效范围
检查ACL是不是应用在当前的Kafka集群上,资源类型是不是设成了TOPIC。有时候ACL可能被误配置到其他集群,或者资源类型选错了,导致权限不生效。确认权限已正确应用并同步
权限配置完可能需要等一会儿同步到所有broker,也可以直接用kafka-acls --list命令(或者Confluent Control Center)看看实际生效的规则,确认你的账号确实有对应的权限,别是配置的时候写错了参数或者语法。检查Confluent REST Proxy的权限配置
因为你用的是confluentCLI(底层走REST API),得确认Confluent REST Proxy有没有启用正确的授权机制,允许这个用户通过API修改Topic配置。有些场景下,REST Proxy的权限和Kafka broker的ACL是分开配置的,得一起检查。排查是否存在拒绝权限规则
看看有没有优先级更高的DENY(拒绝)ACL规则,把ALLOW(允许)规则覆盖了。Kafka的ACL里拒绝规则是优先执行的,如果有针对你这个用户或者目标Topic的拒绝规则,肯定会授权失败。
内容的提问来源于stack exchange,提问作者Shilpa

