1

kerberos を使用して Hadoop クラスターを保護しようとしています。kinit コマンドを使用して TGT を生成できます。しかし、それを超えて私は立ち往生しています。

1) 「serviceTicket」が実際に何を意味するのか知りたいです。(説明としてではありません); サービスチケットを利用できるコマンド/コードはどれですか?

2) 「.keyTab」ファイルと「.keyStore」ファイルの用途は何ですか?

Hadoop と Kerberos のストーリー

  1. ユーザーは、 kinitコマンドを使用して KDC に認証要求を送信します。

  2. KDC は暗号化されたチケットを送り返します。

  3. ユーザーはパスワードを入力してチケットを復号化します。

4. これで認証され、ユーザーはサービス チケットの要求を送信します。

5. KDC はチケットを検証し、サービス チケットを送り返します。

  1. ユーザーは hdfs@KERBEROS.com にサービス チケットを提示します。

  2. 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 プロセスに変更が必要かどうかを提案してください。はいの場合、正当化してください

4

2 に答える 2

1

次の解決策を見つけました。

NameNode(java.io.FileNotFoundException: /SOME/PATH/.keystore (そのようなファイルまたはディレクトリはありません))

hdfs-site.xml で HTTP_ONLY オプションを設定してみてください:

<property>
 <name>dfs.http.policy</name>
 <value>HTTP_ONLY</value>
</property>

https が必要な場合は、追加で証明書を生成し、キーストアを構成する必要があります。

于 2016-12-08T07:31:48.080 に答える