Kafka客户端版本3.4.0的MSK - kafka-console-producer错误

yx2lnoni  于 2023-10-15  发布在  Apache
关注(0)|答案(1)|浏览(107)

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

*arn:aws:Kafka:region:account-id:topic/cluster-name/cluster-uuid/

但是,当我指定了一个主题名称,并试图产生它:arn:aws:Kafka:region:account-id:topic/cluster-name/cluster-uuid/private-topic-1
我得到以下错误:原因:org.apache.Kafka.common.errors. ExceptionAuthorizationException:集群授权失败
因此,我决定并行使用两个终端:1:Kafka-3.0.0 2. Kafka-3.4.0
我为两个版本做了相同的配置。相同的命令(kafka-console-producer)在3.0.0版上有效,但在3.4.0版上失败(群集授权失败)。
我决定尝试多个版本,结论是,一切工作,因为它应该最多Kafka 3. 0. 1版本。生产商开始失败与3.0.1版本。
使用者在3.4.0版上使用指定的主题。所以问题出在**制造商身上。
因此,无论我选择哪个版本的Kafka(MSK),如果版本高于3.0.0,kafka-client都不能工作。有人有过类似的经历吗?如何解决这个问题?

mkshixfv

mkshixfv1#

我找到了解决办法。如果我们使用kafka-client 3.0.0以上版本和MSK Serverless/Provisioned,我们可以指定IAM auth并只允许具有特定名称主题,但我们必须:
1.指定kafka-cluster:WriteDataIdempotently
1.在same语句块中定义cluster、topic和groups。

{
        "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"
                ]
            }
        ]
    }

相关问题