Kafka ACL中是否支持主体名称使用通配符或前缀?
Kafka 2.0中证书主体ACL的通配符支持问题
针对你询问的「在Kafka 2.0里,为格式为User:CN=<identifier>的客户端证书主体配置ACL时,是否支持通配符(尤其是前缀匹配如company.domain.*)」这个问题,我结合实际使用经验给你梳理下:
通配符的支持情况:Kafka 2.0的ACL规则里,主体名称确实支持使用
*作为通配符,但有个核心限制:*只能放在主体字符串的末尾,实现前缀匹配,不能放在中间或开头做任意模糊匹配。证书主体的具体用法:对于
User:CN=<identifier>这种基于客户端证书的主体,完全可以用*来匹配前缀符合要求的证书。比如你想授权所有CN以company.domain.开头的客户端访问某个主题,对应的主体可以写成User:CN=company.domain.*,这个配置在Kafka 2.0中是生效的,会匹配所有CN字段为company.domain.xxx格式的客户端证书。配置示例参考:如果你用官方的
kafka-acls.sh工具添加这条规则,命令大概是这样的:bin/kafka-acls.sh --authorizer-properties zookeeper.connect=your-zk-host:2181 \ --add --allow-principal User:CN=company.domain.* \ --operation Read --topic your-target-topic额外注意点:要确保你的Kafka集群已经正确开启了SSL客户端认证,否则基于证书主体的ACL规则不会生效。另外,这里的通配符是简单的字符串前缀匹配,不是正则表达式,所以不要尝试用
*做更复杂的匹配(比如中间包含通配符)。
内容的提问来源于stack exchange,提问作者Ulrik
相关产品推荐
相关产品推荐

