KerberosはHadoopのSPNEGO認証を有効にします(2)

HadoopのSPNEGO認証を有効にする

デフォルトでは、クラスターのhttpベースのサービスとUIへのアクセスは、認証を必要とするように構成されていません。HDFS、YARN、MapReduce2、HBase、Oozie、Falcon、およびStormのWeb UIは、Kerberos認証をサポートしています。

Ambariサーバー用にKerberosをセットアップする

このセクションでは、ビューがSPNEGOを介してクラスターコンポーネントを認証できるように、Kerberosプリンシパルとキータブを使用してAmbariサーバーを構成する方法について説明します。

このタスクについて

Kerberosでクラスタリングが有効になっている場合、コンポーネントのRESTエンドポイント(YARN ATSコンポーネントなど)にはSPNEGO認証が必要です。

クラスター内のサービスによると、AmbariWebはこれらのAPIにアクセスする必要があります。同様に、一部のビューではATSへのアクセスが必要です。したがって、SPNEGOを介してこれらのAPIを認証するには、AmbariサーバーにKerberosプリンシパルが必要です。このセクションでは、ビューがSPNEGOを介してクラスターコンポーネントを認証できるように、Kerberosプリンシパルとキータブを使用してAmbariサーバーを構成する方法について説明します。

処理する

  1. KDCでAmbariサーバーのプリンシパルを作成します。たとえば、kadminを使用します。addprinc [email protected]
  2. サブジェクトの[email protected]を生成します。
  3. そのキーラベルをAmbariサーバーホストに貼り付けます。Ambariサーバーデーモンを実行しているユーザーがキータブファイル/etc/security/keytabs/ambari.server.keytabにアクセスできるように、ファイルのアクセス許可を必ず設定してください。
  4. ambariサーバーを停止します。ambari-serverが停止します。
  5. setup-securityコマンドを実行します。ambari-serverはセキュリティを設定します。
  6. 3を選択して、Ambari kerberosJAAS構成をセットアップします。
  7. 以前に設定したAmbariサーバーのKerberosプリンシパル名を入力します。
  8. アンバリ本体のキータブパスを入力します。
  9. kenafサーバーを再起動します。ambari-serverが再起動します。

HDFS、YARN、MapReduce2、HBase、Oozie、Falcon、およびStormのHTTP認証を構成します

Kerberos環境でHadoopコンポーネントのHTTP認証を構成する方法。

処理する

  1. 認証トークンの署名に使用するキーを作成します。このファイルにはランダムデータが含まれ、クラスター内の各ホストに配置する必要があります。また、hdfsユーザーに属し、hadoopグループに属している必要があります。

権限は440に設定する必要があります。例えば:

dd if=/dev/urandom of=/etc/security/http_secret bs=1024 count=1
chown hdfs:hadoop /etc/security/http_secret
chmod 440 /etc/security/http_secret
  1. Ambari Webで、[サービス]> [HDFS]> [構成]を参照します。
  2. 次の構成プロパティをAdvancedコアサイトに追加または変更します。
属性 新しい価値
hadoop.http.authentication.simple.anonymous.allowed false
hadoop.http.authentication.signature.secret.file / etc / security / http_secret
hadoop.http.authentication.type ケルベロス
hadoop.http.authentication.kerberos.keytab /etc/security/keytabs/spnego.service.keytab
hadoop.http.authentication.kerberos.principal HTTP / _HOST @ EXAMPLE.COM
hadoop.http.filter.initializers org.apache.hadoop.security.AuthenticationFilterInitializer
hadoop.http.authentication.cookie.domain hortonworks.local

注意:

上記の表の太字と斜体のエントリは、サイト固有です。hadoop.http.authentication.cookie.domainプロパティは、クラスター内のサーバーの完全修飾ドメイン名に基づいています。たとえば、NameNodeのFQDNがhost1.hortonworks.localの場合、hadoop.http.authentication.cookieです。ドメインはhortonworks.localに設定する必要があります。

  1. HBaseの場合、SPNEGOを構成することで、HBase WebUIのKerberos認証機能を有効にできます。
    a)Ambari Webで、「サービス」>「HBase」>「構成」を参照します。
    b)次の構成プロパティをカスタムhbase-site.xmlファイルに追加します。
属性
hbase.security.authentication.ui ケルベロス
hbase.security.authentication ケルベロス
hbase.security.authentication.spnego.kerberos.principal HTTP/[email protected]
hbase.security.authentication.spnego.kerberos.keytab /etc/security/keytabs/spnego.service.keytab
Hbase.security.authentication.spnego.kerberos.name.rules(オプション)
Hbase.security.authentication.signature.secret.file(オプション)
  1. 構成を保存し、影響を受けるビジネスを再開します。

ブラウザがspnegoによって有効にされたWebUIにアクセスできるようにします

ブラウザがspnegoによって有効にされたWebUIにアクセスできるようにする方法。

処理する

  1. ローカルマシンにKerberosをインストールします(ローカル環境にKerberosクライアントをインストールする方法の説明を検索します)。
  2. ローカルマシンでkrb5.confファイルを構成します。HDPクラスターでテストするには、/ etc /krb5.confファイルをクラスターホストの1つからローカルマシンの/etc/krb5.confにコピーします。独自のボタンを作成し、kinitを実行します。HDPクラスターでテストするには、「ambari_qa」キータブファイルを/etc/security/keytabs/smokeuser.headlessからコピーします。keytabを押してから、次のコマンドを実行します。
kinit -kt smokeuser.headless.keytab ambari-qa@EXAMPLE.COM

3. Kerberos SPNEGOを使用してWebブラウザを有効にします。a
)Mac上のChrome:
3。以前にkinitコマンドを実行してChromeを起動したのと同じシェルで次のコマンドを実行します。

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --
auth-server-whitelist="*.hwx.site"

.hwxを置き換えます。独自のドメイン名を持っています。

  1. 次のエラーが発生した場合は、すべてのChromeブラウザウィンドウを閉じて再起動してみてください。
    b)Firefoxの場合:
  2. about:config URLに移動します(アドレスバーにabout:configと入力し、Enterキーを押します)。
  3. network.negotiate-authまで下にスクロールします。その値をクラスタードメイン名(たとえば、.hwx.site)に変更します。
  4. network.negotiate-auth.delegation-uriの値をクラスタードメイン名(たとえば、hwx.site)に変更します。

おすすめ

転載: blog.csdn.net/m0_48187193/article/details/114879509