krb5.conf ファイルおよび kdc.conf ファイルを使用した Kerberos の設定方法、kadmin CLI を使ったサーバー側でのプリンシパルおよび keytab の管理方法、クライアント側でのチケットのライフサイクル管理方法について説明します。
前提条件
-
Kerberos 認証を有効にしてクラスターを作成済みです。詳細については、「クラスターの作成」をご参照ください。
-
クラスターにログイン済みです。詳細については、「クラスターへのログイン」をご参照ください。
設定ファイル
-
krb5.conf:クライアント側の Kerberos 設定ファイルです。KDC サービスの場所、レルム名、ホスト名からレルムへのマッピングを指定します。このファイルは、各 E-MapReduce ノードの
/etc/krb5.confに配置されています。 -
kdc.conf:サーバー側の Kerberos 設定ファイルで、krb5.confを補完する役割を果たします。krb5kdc、kadmind、kdb5_utilなどの KDC 関連サービスを設定し、KDC ノード上の/var/kerberos/krb5kdc/kdc.confにのみ存在します。
ノード上の krb5.conf ファイルおよび kdc.conf ファイルを直接編集しないでください。これらのファイルは、E-MapReduce コンソールの Kerberos サービスの Configure タブで変更する必要があります。ただし、変更可能なフィールドは一部に限られます。
基本操作
サーバー側
-
kadmin CLI へのアクセス
-
KDC(Kerberos サーバー側プログラム)がホストされている
master-1-1ノードにrootユーザーとしてログインしている場合は、次のコマンドを実行して kadmin CLI に直接アクセスできます。kadmin.local -
他のノードまたはゲートウェイにログインしている場合は、次のコマンドを実行して kadmin CLI にアクセスします。
kadmin -p <admin-user> -w <admin-password>説明E-MapReduce 付属の KDC を使用する場合、パラメーターは以下のとおりです。
-
<admin-user>:値はroot/adminです。 -
<admin-password>:値は、E-MapReduce コンソールの Kerberos サービスの Configure タブにある admin_pwd パラメーターから取得できます。
-
-
-
プリンシパルの管理
プリンシパルとは、ユーザーまたはサービスを表す Kerberos 内の固有の ID であり、認証情報を割り当てることができます。
-
プリンシパルの作成
addprinc -pw <principal-password> <principal-name>パラメーター:
-
<principal-password>:新規プリンシパルのパスワード。 -
<principal-name>:新規プリンシパルの名前。サービスプリンシパルの一般的なフォーマットはusername/hostname@realm、ユーザープリンシパルのフォーマットはusername@realmです。
-
-
プリンシパルの削除
delprinc <principal-name> -
プリンシパルのパスワード変更
change_password <principal-name> -
すべてのプリンシパルの一覧表示
listprincs
-
-
keytab の管理
keytab には 1 つ以上のプリンシパルのキーが格納されており、サービスがインタラクティブな認証なしにチケットを取得できるようにします。keytab ファイルをエクスポートするには、次のコマンドを実行します。
ktadd -k <keytab-path> <principal-name>パラメーター:
-
<keytab-path>:keytab ファイルの宛先パス。 -
<principal-name>:プリンシパルの名前。
警告E-MapReduce では、各サービスが内部の認証および権限付与のために独自のプリンシパル(例:
spark/hostname@realm)および対応する keytab ファイルを保持しています。このようなプリンシパルの keytab ファイルを変更またはエクスポートすると、元の keytab ファイルが無効になり、サービスの動作が中断されます。そのため、この種のプリンシパルを変更したり、その keytab ファイルをエクスポートしたりしないでください。 -
クライアント側
チケットには暗号化された認証情報が含まれており、ユーザーの ID を Kerberos 対応サービスに証明します。次のコマンドを使用してチケットを管理します。
-
チケットの取得
kinit -kt <keytab-path> <principal-name> -
チケットの表示
klist -
チケットの削除
kdestroy
関連トピック
Kerberos の概念および認証の仕組みの概要については、「Kerberos」をご参照ください。