为 Schema Registry 定义 Kerberos 主体名称

Define a Kerberos principal name for Schema Registry

我已经为我的 Kafka 代理激活了 SASL。 Schema Registry 需要通过身份验证才能连接到 Kafka。 Here 它说 “如果启用 Kafka 授权,则必须授予 Schema Registry 服务主体对指定资源执行以下操作的能力:” 如何定义一个校长?

There is 一个配置 kafkastore.sasl.kerberos.service.name 但我不确定如何使用它。看起来只需要一个角色什么的,而不是用户名密码对。

SASL 只是一个使用多种语言(包括 kerberos)的身份验证系统。 kafkastore.sasl.kerberos.service.name 只是一个名字……通常是“kafka”。 (并且应该匹配您的 Jaas 配置,如下所述)

Kerberos 使用原则和 Keytabs 进行身份验证。 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";
       };

您将需要 principlekeytab。您的 kerberos 管理员应该创建 principle and produce a keytab。由于这些超出了这个问题的范围,我将它们留作探索链接。