kerberos を使用して Hadoop クラスターを保護しようとしています。kinit コマンドを使用して TGT を生成できます。しかし、それを超えて私は立ち往生しています。
1) 「serviceTicket」が実際に何を意味するのか知りたいです。(説明としてではありません); サービスチケットを利用できるコマンド/コードはどれですか?
2) 「.keyTab」ファイルと「.keyStore」ファイルの用途は何ですか?
Hadoop と Kerberos のストーリー
ユーザーは、 kinitコマンドを使用して KDC に認証要求を送信します。
KDC は暗号化されたチケットを送り返します。
ユーザーはパスワードを入力してチケットを復号化します。
4. これで認証され、ユーザーはサービス チケットの要求を送信します。
5. KDC はチケットを検証し、サービス チケットを送り返します。
ユーザーは hdfs@KERBEROS.com にサービス チケットを提示します。
hdfs@KERBEROS.com がチケットを復号化し、ユーザーの ID を検証します。
4 番目のステップでは、「サービス チケットのリクエスト」; それは実際にはどういう意味ですか?TGT を取得するには、'kinit' コマンドを使用します。同じく、サービスチケットの入手手順・方法は?
私のプロセスの詳細:
- LDAP : アクティブディレクトリ
- Kerberos : Ubuntu にインストール済み
- Hadoop クラスター: 1 つのマスターと 1 つのスレーブを備えた Ubuntu マシンで構成されています。
- Ubuntu ユーザー名 : labuser
Ubuntu のレルム : KERBEROS.COM
計画では、Kerberos と Active Directory で Hadoop セキュリティを提供する予定です
- ActiveDirectory に存在するユーザーの Kerberos Server マシンで生成された TGT (kinit コマンドを使用)
次に、Kerberos を Ubuntu Hadoop クラスターと統合するために、以下を実行しました。
1)プリンシパルを作成するコマンド: addprinc -randkey namenode/labuser@KERBEROS.COM
2)キータブを作成するコマンド : xst -norandkey -k namenode.service.keytab namenode/labuser@KERBEROS.COM (または) ktadd -k namenode.service.keytab namenode/labuser@KERBEROS.COM
3) Kerberos に対応する Hadoop 構成ファイルのプロパティを追加しました。
Hadoop クラスターを開始すると、すべてのサービス (Namenode、Datanode、Resource Manager、および Node Manager)でログインが成功することがわかります。
- ログ情報:INFO org.apache.hadoop.security.UserGroupInformation: keytab ファイルを使用してユーザー dn/labuser@KERBEROS.COM のログイン成功 * /home/labuser/hadoopC/etc/hadoop/dn.service.keytab
まだHadoop クラスターが起動されていないため、障害が発生し、
DataNode (java.lang.RuntimeException: 特権リソースなしでセキュア クラスターを開始できません)
NameNode(java.io.FileNotFoundException: /home/labuser/.keystore (そのようなファイルまたはディレクトリはありません))
上記の Kerberos プロセスに変更が必要かどうかを提案してください。はいの場合、正当化してください