2

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

我正在接收消息,所以可能部分正确,但我在日志中收到以下错误消息:

08:54:50.840 [kafka-admin-client-thread | adminclient-1] 错误 immhealth.indicator.HealthResult - 健康指标 [kafka] 报告异常:org.apache.kafka.common.errors.ClusterAuthorizationException:集群授权失败。

DOWN以及健康检查中的结果状态。

这是来自的kafka部分application.yaml

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}";
4

2 回答 2

1

我想通了,“授权”这个词应该是一个很大的提示。

身份验证机制没有任何问题。相反,我们的用户根本没有权限进行所需的调用。

所需的权限是:

  • 描述集群
  • 资源 BROKER 上的 DescribeConfig。
于 2021-09-22T13:42:22.127 回答
0

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

于 2021-10-13T14:24:43.990 回答