安全

Kinit 辅助服务

师成师成· 更新于 2026-09-29· 阅读 5 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Kinit 辅助服务是一项关键服务,它既承担 Kyuubi 客户端与服务端之间的认证,也承担 Kerberos 环境下 Kyuubi 服务端与 Hadoop 集群之间的认证。该服务会从 KDC 获取 Kerberos 票据缓存,并周期性地重新执行 kinit 以保持票据缓存的新鲜。

注意:

  • Kinit 辅助服务对 Kyuubi 的 Kerberos 认证至关重要,但反过来则不然。
  • Kinit 辅助服务也可以与其他认证模式配合使用。

安装和配置 Kerberos 客户端

通常,Kerberos 客户端已默认安装。你可以使用 klist 工具进行验证。

$ klist -V
Kerberos 5 version 1.15.1

如果尚未安装客户端,应根据你准备运行 Kyuubi 的操作系统平台提前安装。

krb5.conf 是用于调整 Kerberos 票据缓存创建过程的配置文件。在 Linux 上,默认位置是 /etc,我们可以使用 KRB5_CONFIG 环境变量来覆盖该配置文件的位置。

替换或配置 krb5.conf,使其指向 KDC。

Kerberos 票据

Kerberos 客户端的目标是生成票据缓存文件。随后,Kyuubi 可以使用该票据缓存与那些已启用 Kerberos 的服务进行身份验证,例如 HDFS、YARN 和 Hive Metastore 服务器等。

Kerberos 票据缓存包含服务主体名称和客户端主体名称、有效期指示器、标志位以及凭据本身,例如:

$ klist

Ticket cache: FILE:/tmp/krb5cc_5441
Default principal: spark/kyuubi.host.name@KYUUBI.APACHE.ORG

Valid starting       Expires              Service principal
2020-11-25T13:17:18  2020-11-26T13:17:18  krbtgt/KYUUBI.APACHE.ORG@KYUUBI.APACHE.ORG
    renew until 2020-12-02T13:17:18

Kerberos 凭据可以存储在 Kerberos 票据缓存中。例如,上述场景中的 /tmp/krb5cc_5441。

这些凭据的有效期相对较短,因此对于 Kyuubi 这样的长时间运行的服务,我们始终需要对其进行刷新。

配置

配置项默认值含义引入版本
kyuubi.kinit.principal<未定义>Kerberos 主体名称。1.0.0
kyuubi.kinit.keytab<未定义>Kyuubi 服务端 keytab 文件的位置。1.0.0
kyuubi.kinit.intervalPT1HKyuubi 服务端执行 kinit -kt [keytab] [principal] 以刷新本地 Kerberos 凭据缓存的间隔时间1.0.0
kyuubi.kinit.max.attempts10kinit 进程的最大重试次数1.0.0

在使用启用 Kerberos 的 Hadoop 集群时,我们应确保 $HADOOP_CONF_DIR/core-site.xml 或 $KYUUBI_HOME/conf/kyuubi-defaults.conf 中的 hadoop.security.authentication 已设置为 KERBEROS。然后需要指定 kyuubi.kinit.principal 和 kyuubi.kinit.keytab 以进行认证。

例如,

kyuubi.kinit.principal=spark/kyuubi.apache.org@KYUUBI.APACHE.ORG
kyuubi.kinit.keytab=/path/to/kyuuib.keytab

注意:
kyuubi.kinit.principal 必须遵循格式:<user>/<host>@<realm>,其中 <host> 必须是运行 Kyuubi 的主机的完全限定域名(FQDN)。

Kyuubi 将使用此 principal 来模拟客户端用户,因此集群应允许它从特定主机模拟特定用户。

例如,

hadoop.proxyuser.<user name in principal>.groups *
hadoop.proxyuser.<user name in principal>.hosts *

延伸阅读

评论

登录后参与评论

正在加载评论…