全部產品
Search
文件中心

E-MapReduce:Kerberos基礎使用

更新時間:Jul 01, 2024

本文為您介紹Kerberos的配置與基礎操作,其中涵蓋了核心設定檔krb5.conf和kdc.conf,詳細說明了服務端如何使用KDC管理工具進行Principal管理及Keytab維護,以及用戶端Ticket生命週期管理涉及的相關命令。

前提條件

  • 已建立開啟Kerberos認證的叢集,建立叢集詳情請參見建立叢集

  • 已登入叢集,詳情請參見登入叢集

設定檔

  • 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概述