本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
本文為您介紹Kerberos的配置與基礎操作,其中涵蓋了核心配置文件krb5.conf和kdc.conf,詳細說明了服務端如何使用KDC管理工具進行Principal管理及Keytab維護,以及客戶端Ticket生命周期管理涉及的相關命令。
前提條件
配置文件
krb5.conf:Kerberos的客戶端配置文件。
用于配置KDC服務的位置、realms名稱、以及主機名到Kerberos realms的映射等信息。該文件位于每個EMR節點下,具體路徑為/etc/krb5.conf。
kdc.conf:Kerberos的服務端配置文件,是對krb5.conf的補充。
用于配置KDC相關服務,例如krb5kdc、kadmind以及kdb5_util。該文件僅存在于KDC所在節點,具體路徑為/var/kerberos/krb5kdc/kdc.conf。
krb5.conf和kdc.conf配置文件不支持直接在本地自定義修改,需要在E-MapReduce控制臺中Kerberos服務的配置頁面進行修改,并且僅支持部分字段的修改。
基礎操作
服務端
進入admin工具
如果您是使用root用戶,登錄KDC(Kerberos的服務端程序)所在的master-1-1節點,則可以執行以下命令,直接進入admin工具。
kadmin.local
如果您登錄的是其他節點或者使用GateWay時,則可以通過填以下命令進入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
addprinc -pw <principal-password> <principal-name>
參數含義如下:
<principal-password>
:創建的Principal的密碼。<principal-name>
:創建的Principal的名稱,服務類Principal的格式一般為username/hostname@realm,用戶類Principal的格式一般為username@realm。
刪除Principal
delprinc <principal-name>
修改Principal密碼
change_password <principal-name>
查看所有Principal
listprincs
Keytab維護
Keytab內存儲了一個或多個Principal的密鑰,利用這些密鑰可以獲取相應的Ticket。如需導出Keytab文件,請執行以下命令。
ktadd -k <keytab-path> <principal-name>
參數含義如下:
<keytab-path>
:目標Keytab文件的存儲路徑。<principal-name>
:Principal的名稱。
警告在EMR中,每個服務都維護了自己的Principal(例如spark/hostname@realm)和對應的Keytab文件,用于服務內部的認證和授權。如果修改或導出該類Principal對應的Keytab文件,將會導致原有的Keytab文件失效,從而影響服務的正常工作。因此,請勿修改該類Principal,并禁止導出Keytab文件。
客戶端
Ticket是Kerberos認證協議的一部分,承載著用于驗證用戶身份的加密信息。Ticket維護的相關命令如下。
生成Ticket
kinit -kt <keytab-path> <principal-name>
查看Ticket
klist
銷毀Ticket
kdestroy
相關文檔
如需了解Kerberos相關的基礎概念及認證原理,請參見Kerberos概述。