Micronaut Kafka:健康检查失败,"Cluster authorization failed"



我正在尝试使用来自组织外部的Kafka集群的消息,这需要身份验证。

我正在接收消息,所以大概事情是部分正确的,但我在日志中得到这个错误消息:

08:54:50.840 [kafka-admin-client-thread | adminclient-1] ERROR i.m.m.h Health .indicator. healthresult -健康指示器[kafka]报告异常:org.apache.kafka.common.errors.ClusterAuthorizationException: Cluster authorization failed.

以及运行状况检查中DOWN的结果状态。

这是application.yaml的kafka部分:

kafka:
bootstrap:
servers:
"bootstrap.example.com:9095"
security:
protocol: "SASL_SSL"
schema.registry.url: "http://schema-registry.example.com:8001"
consumers:
example-group:
key:
deserializer: io.confluent.kafka.serializers.KafkaAvroDeserializer
value:
deserializer: io.confluent.kafka.serializers.KafkaAvroDeserializer
security.protocol: "SASL_SSL"
sasl:
mechanism: "SCRAM-SHA-512"
jaas:
config: org.apache.kafka.common.security.scram.ScramLoginModule required username="${KAFKA_USERNAME:username}" password="${KAFKA_PASSWORD:password}";

我明白了,"授权"这个词;应该有个大提示的

验证机制没有任何问题。更确切地说,我们的用户根本没有进行所需调用的权限。

需要的权限是:

  • DescribeCluster
  • 在资源代理上描述配置。

默认情况下,descripbecluster还提供有关主题的acl的信息,这可能是一个安全问题:-)也许您需要自定义的健康检查指示器?

延伸@Imre Kerr的回答

如果使用Strimzi设置ACL,您可以简单地向用户添加以下资源ACL:

users:
- name: {your-user-name}
acls:
...
- resource:
type: cluster
operation: DescribeConfigs

最新更新