Kerberos基础使用

更新时间: 2023-08-10 14:28:43

本文为您介绍Kerberos的配置文件以及相关基础操作。

配置文件

  • krb5.conf

    krb5.conf是Kerberos的客户端配置文件。用于配置KDC服务的位置、realms名称、以及主机名到Kerberos realms的映射等信息。他在EMR节点中的地址是/etc/krb5.conf。

  • kdc.conf

    kdc.conf是Kerberos的服务端配置文件,是对krb5.conf的补充。用于配置KDC相关服务,例如krb5kdc、kadmind以及kdb5_util。他在EMR节点中的地址是/var/kerberos/krb5kdc/kdc.conf,仅存在于KDC所在节点。

重要

krb5.conf和kdc.conf配置文件不支持直接在本地自定义修改,需要在E-MapReduce控制台中Kerberos服务的配置页面进行修改,并且仅支持部分字段的修改。

基础操作

服务端

  • 进入admin工具

    • 如果您是使用root用户,登录KDC(Kerberos的服务端程序)所在的master-1-1节点,则可以执行以下命令,直接进入admin工具。

      kadmin.local
    • 如果您登录的是其他节点或者使用GateWay时,则可以通过填写admin-user和admin-password进入admin工具。

      kadmin -p <admin-user> -w <admin-password>
      说明

      如果您使用的是EMR自带的KDC,则参数:

      • <admin-user>:固定值为root/admin

      • <admin-password>:您可以在E-MapReduce控制台,Kerberos服务的配置页面,获取admin_pwd的参数值。

  • Principal维护

    Principal是用于Kerberos认证并分配凭证的唯一身份。服务类Principal的格式一般为xxx/hostname@realm,用户类Principal的格式一般为username@realm,具体可参考Kerberos Principal

    • 创建Principal

      addprinc -pw <principal-password> <principal-name>
    • 删除Principal

      delprinc <principal-name>
    • 修改Principal密码

      change_password <principal-name>
    • 查看所有Principal

      listprincs
  • Keytab维护

    Keytab内存储了一个或多个Principal的密钥,可以通过他获取Ticket。导出Keytab命令如下。

    ktadd -k <keytab-path> <principal-name>
    警告

    在EMR中,每个服务都维护了自己的Principal(例如spark/hostname@realm)和对应的Keytab文件,用于服务内部的认证和授权。如果修改或导出该类Principal对应的Keytab文件,将会导致原有的Keytab文件失效,从而影响服务的正常工作。因此,请勿修改该类Principal,并禁止导出Keytab文件。

客户端

Ticket是Kerberos认证协议的一部分,他提供了用于身份验证的加密协议消息。Ticket维护的相关命令如下。

  • 生成Ticket

    kinit -k <keytab-path> <principal-name>
  • 查看Ticket

    klist
  • 销毁Ticket

    kdestroy
阿里云首页 开源大数据平台E-MapReduce 相关技术圈