このトピックでは、Kerberos クラスターのレルム間の相互信頼を実装する方法について説明します。これは、レルムをまたがる Kerberos クラスター間のアクセスに役立ちます。
手順
このトピックでは、Cluster-A クラスターから Cluster-B クラスターのサービスへのレルム間アクセスを実現するために、レルム間の相互信頼を実装します。アクセスは、レルム間の相互信頼が実装され、Cluster-A クラスターがキー配布センター (KDC) サーバーからチケット認可チケット (TGT) を取得した後にのみ実現できます。以下の手順では、レルム間の相互信頼は一方向アクセスに対してのみ実装されます。 Cluster-B クラスターから Cluster-A クラスターのサービスへのレルム間アクセスを実現するには、以下の手順を実行する際に 2 つのクラスターの構成を交換します。
手順 1:準備を行う
Cluster-A クラスターの Kerberos サービスページの [構成] タブで、[krb5.conf] サブタブをクリックし、kdc_hosts パラメーターと realm パラメーターの値を取得します。 これらの 2 つのパラメーターは、クラスターのホスト名とレルムを示します。Cluster-B クラスターに対して操作を繰り返します。 このトピックでは、ホスト名とレルムに関する以下の情報が取得されます。
Cluster-A:
ホスト名: master-1-1.1234.cn-hangzhou.emr.aliyuncs.com
レルム: EMR.1234.COM
Cluster-B:
ホスト名: master-1-1.6789.cn-hangzhou.emr.aliyuncs.com
レルム: EMR.6789.COM
手順 2:レルム間認証用のプリンシパルを作成する
SSH モードで Cluster-A クラスターの master-1-1 ノードにログオンします。
root ユーザーとして次のコマンドを実行し、Cluster-A のレルム間認証用のプリンシパルを作成します。
kadmin.local -q "addprinc -pw 123456 krbtgt/EMR.6789.COM@EMR.1234.COM"コマンドのパラメーター:
123456: 初期パスワード。カスタマイズできます。EMR.1234.COM: Cluster-A クラスターのレルム。EMR.6789.COM: Cluster-B クラスターのレルム。
Cluster-B クラスターの master-1-1 ノードにログオンし、上記の手順を繰り返して Cluster-B のレルム間認証用のプリンシパルを作成します。
手順 3:krb5.conf ファイルを変更する
SSH モードで Cluster-A クラスター内のすべてのノードに順番に接続し、各ノードの /etc/krb5.conf ファイルを変更します。変更が完了したら、サービスを再起動する必要はありません。
other_realms
EMR.C-BE49B6BBAEEA****.COM = { kdc = 192.168.xx.xx:88 admin_server = 192.168.xx.xx:749 }domains
.1234.cn-hangzhou.emr.aliyuncs.com = EMR.1234.COM .6789.cn-hangzhou.emr.aliyuncs.com = EMR.6789.COMcapaths
EMR.1234.COM = { EMR.6789.COM = . } EMR.6789.COM = { EMR.1234.COM = . }
Cluster-B クラスターへのアクセスを伴うジョブを Cluster-A クラスターで実行する場合は、Cluster-B クラスターの YARN を再起動します。
手順 4:Cluster-B クラスターのサービスにアクセスする
Cluster-A クラスターが KDC サーバーから TGT を取得した後、Cluster-A クラスターから Cluster-B クラスターのサービスにアクセスできます。
テスト用のプリンシパルを作成し、チケットを生成します。
kadmin.local -q "addprinc -pw 123456 test" kinit testCluster-A クラスターから Cluster-B クラスターの Hadoop 分散ファイルシステム (HDFS) サービスにアクセスします。
hdfs dfs -ls hdfs://master-1-1.6789.cn-hangzhou.emr.aliyuncs.com:9000/