【发布时间】:2021-08-02 13:21:00
【问题描述】:
我有一个启用 Kerberos SASL_SSL 的 Kafka 身份验证和默认的 kafka.security.authorizer.AclAuthorizer 授权设置。所有必要的 ACL(我相信)都在那里,但是当我尝试生成一条消息时,它会导致以下错误 [2021-07-30 09:19:33,397] WARN [Producer clientId=console-producer] 获取相关 ID 为 3 的元数据时出错:{camtmodified.v1=TOPIC_AUTHORIZATION_FAILED} (org.apache.kafka.clients.NetworkClient) [2021-07-30 09:19:33,399] 错误 [Producer clientId=console-producer] 主题授权失败 [camtmodified.v1] (org.apache.kafka.clients.Metadata) [2021-07-30 09:19:33,400] 错误 向 camtmodified.v1 主题发送消息时出错,键:null,值:8 字节,错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TopicAuthorizationException:无权访问主题:[camtmodified.v1]
以下是我拥有的 ACL 列表,我认为这已经足够了,因为这是我为少数其他似乎工作正常但不仅仅是这个“用户:credusr”的主体启用的 ACL 列表"
资源 ResourcePattern(resourceType=TOPIC, name=camtmodified.v1, patternType=LITERAL) 的当前 ACL:
(principal=cluster:kafka-cluster, host=, operation=WRITE, permissionType=ALLOW)
(principal=Group:, host=, operation=DESCRIBE, permissionType=ALLOW)
(principal=cluster:kafka-cluster, host=, operation=READ, permissionType=ALLOW)
(principal=user:credusr, host=, operation=DESCRIBE, permissionType=ALLOW)
(principal=user:credusr, host=, operation=READ, permissionType=ALLOW)
(principal=Group:, host=, operation=READ, permissionType=ALLOW)
(principal=cluster:kafka-cluster, host=, operation=DESCRIBE, permissionType=ALLOW)
(principal=user:credusr, host=, operation=CREATE, permissionType=ALLOW)
(principal=cluster:kafka-cluster, host=, operation=CREATE, permissionType=ALLOW)
(principal=user:credusr, host=, operation=WRITE, permissionType=ALLOW)
资源 ResourcePattern(resourceType=CLUSTER, name=kafka-cluster, patternType=LITERAL) 的当前 ACL:
(principal=user:credusr, host=, operation=ALL, permissionType=ALLOW)
(principal=cluster:kafka-cluster, host=, operation=ALL, permissionType=ALLOW)
(principal=Cluster:kafka-cluster, host=*, operation=IDEMPOTENT_WRITE, permissionType=ALLOW)
资源 ResourcePattern(resourceType=GROUP, name=*, patternType=LITERAL) 的当前 ACL:
(principal=User:credusr, host=, operation=DESCRIBE, permissionType=ALLOW)
(principal=Group:, host=, operation=DESCRIBE, permissionType=ALLOW)
(principal=cluster:kafka-cluster, host=, operation=READ, permissionType=ALLOW)
(principal=user:credusr, host=, operation=READ, permissionType=ALLOW)
(principal=User:credusr, host=, operation=DESCRIBE, permissionType=ALLOW)
(principal=Group:, host=, operation=READ, permissionType=ALLOW)
(principal=group:, host=, operation=READ, permissionType=ALLOW)
我确实为 kafka 授权日志启用了 DEBUG 模式,并看到以下条目。由于 DESCRIBE 操作是明确允许的,如 ACL 列表中所示 - 我不确定为什么它会抱怨 DESCRIBE 操作被拒绝,除非日志消息非常具有误导性!
[2021-07-29 13:40:49,750] INFO Principal = User:credusr 被拒绝操作 = 从主机描述 = 10.X.X.X 资源 = Topic:LITERAL:camtmodified.v1 请求 = 元数据,resourceRefCount = 1 (kafka.授权者.记录器)
[2021-07-29 13:40:49,751] INFO Principal = User:credusr 被拒绝操作 = IdempotentWrite from host = 10.X.X.X on resource = Cluster:LITERAL:kafka-cluster for request = InitProducerId with resourceRefCount = 1 (kafka.授权者.记录器)
[2021-07-29 13:40:50,678] 信息主体 = 用户:credusr 被拒绝操作 = 从主机描述 = 10.X.X.X 资源 = 主题:LITERAL:camtmodified.v1 请求 = 元数据,resourceRefCount = 1 (kafka. authorizer.logger)
任何建议将不胜感激。
谢谢
【问题讨论】:
标签: apache-kafka kafka-consumer-api