为 Schema Registry 定义 Kerberos 主体名称
Posted
技术标签:
【中文标题】为 Schema Registry 定义 Kerberos 主体名称【英文标题】:Define a Kerberos principal name for Schema Registry 【发布时间】:2022-01-20 04:04:25 【问题描述】:我已经为我的 Kafka 代理激活了 SASL。 Schema Registry 需要经过身份验证才能连接到 Kafka。 Here 它说 “如果启用 Kafka 授权,则必须授予 Schema Registry 服务主体对指定资源执行以下操作的能力:” 如何定义主体?
There is 一个配置kafkastore.sasl.kerberos.service.name
但我不知道如何使用它。看起来它只需要一个角色或其他东西,而不是用户名密码对。
【问题讨论】:
【参考方案1】:SASL 只是一个身份验证系统,它支持多种语言,包括 kerberos。 kafkastore.sasl.kerberos.service.name
只是一个名字......通常是“kafka”。 (并且应该与您的 Jaas 配置相匹配,如下所述)
Kerberos 使用原则和 Keytab 进行身份验证。 Kafka 通常使用 JAAS 来管理其 Kerberos 需求。 Here's a typical jaas kerberos 代理的文件:
KafkaServer
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/kafka.service.keytab"
storeKey=true
useTicketCache=false
serviceName="kafka"
principal="kafka/c6401.ambari.apache.org@EXAMPLE.COM";
;
您需要principle
和keytab
。您的 kerberos 管理员应该创建 principle 和 produce a keytab
。由于这些超出了这个问题的范围,因此我将它们作为链接进行探索。
【讨论】:
以上是关于为 Schema Registry 定义 Kerberos 主体名称的主要内容,如果未能解决你的问题,请参考以下文章
Kafka 与 Confluent Kubernetes Helm Charts = Schema Registry WakeupException
提供了 kafka schema.registry.url 但不是已知配置