Kerberos基础使用
本文为您介绍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