MSK - Kafka 客户端版本 3.4.0 出现 kafka-console-生产者错误

问题描述 投票:0回答:1

我一直在使用 MSK Serverless/Provisioned 和 kafka-clients 3.4.0。 当我使用 * 作为主题名称时,一切都正常工作。

arn:aws:kafka:区域:帐户 ID:主题/集群名称/集群 UUID/*

但是,当我指定了主题名称并尝试生成它时: arn:aws:kafka:区域:帐户 ID:主题/集群名称/集群-uuid/私有主题-1

我收到以下错误:由:org.apache.kafka.common.errors.ClusterAuthorizationException:集群授权失败

所以,我决定并行使用两个终端: 1:卡夫卡-3.0.0 2.卡夫卡-3.4.0

我对两个版本进行了相同的配置。 同样的命令(kafka-console- Producer)在3.0.0版本上可以工作,但在3.4.0版本上失败(集群授权失败)。

我决定尝试多个版本,结论是一切正常,直到 kafka 3.0.1 版本。 Producer 从 3.0.1 版本开始失败。

Consumer 在 3.4.0 版本上使用指定主题。 所以问题出在生产者

因此,无论我选择什么版本的 kafka (MSK),如果版本高于 3.0.0,kafka-client 都无法工作。 有人有类似的经历吗?怎么解决这个问题?

apache-kafka kafka-producer-api aws-msk
1个回答
0
投票

我找到了解决办法。如果我们使用 3.0.0 以上的 kafka-client 版本和 MSK Serverless/Provisioned,我们可以指定 IAM 身份验证并仅允许具有 特定名称 topic,但我们必须:

  1. 指定kafka-cluster:WriteDataIdempotly

  2. same 语句块中定义集群、主题和组。


    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "kafka-cluster:Connect",
                    "kafka-cluster:DescribeCluster",
                    "kafka-cluster:DescribeTopic",
                    "kafka-cluster:CreateTopic",
                    "kafka-cluster:DeleteTopic",
                    "kafka-cluster:ReadData",
                    "kafka-cluster:WriteData",
                    "kafka-cluster:WriteDataIdempotently",
                    "kafka-cluster:AlterGroup",
                    "kafka-cluster:DescribeGroup"
                ],
                "Resource": [
                    "arn:aws:kafka:region:account-id:cluster/cluster-name/cluster-uuid",
                    "arn:aws:kafka:region:account-id:topic/cluster-name/cluster-uuid/dummyTopic",
                    "arn:aws:kafka:region:account-id:topic/cluster-name/cluster-uuid/private-topic",
                    "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/alice-group"
                ]
            }
        ]
    }
© www.soinside.com 2019 - 2024. All rights reserved.