Secure Hadoop の構成(オプション)

Prev Next

VPC環境で利用できます。

Kerberosは Hadoopクラスタと一緒に連携され、ユーザーおよびサービスに対する強力な認証を提供します。

このガイドでは Secure Hadoop構成のために Cloud Hadoopにインストールされた認証システムの構成方法について説明します。

参考

Secure Hadoopを構成する前に、クラスタの Data Catalogサービス連携有無をご確認ください。クラスタが Data Catalogで外部の Hive Metastoreと連携された場合、クラスタに Kerberosを適用すると一部のサービスが正常に動作しない場合があります。

構成

クラスタ関係者はユーザーおよびグループ統合管理のみならず、Kerberosを通じたユーザー認証および権限管理まで Cloud Hadoopの細分化された認証構成が行えます。

Multi-Master構成

  • サービスの連続性を維持するため、LDAPと Kerberosサービスの冗長化構成をデフォルトで Cloud Hadoopマスターノード2台にインストールして提供します。
  • マスターノードでは認証サービスのために slapd、krb5kdc、kadminデーモンを起動します。
Master 1 Master 2
LDAP (slapd) LDAP (slapd)
Kerberos (krb5kdc / kadmin) Kerberos (krb5kdc / kadmin)

認証 Workflow

Cloud Hadoopは Kerberosによって認証するように設計されています。Kerberosと LDAPシステム認証システムで構成されており、ユーザーとサービスがシステムで認証されている必要があります。

chadoop-3-7-00_ko

全ノードの Hadoopサービスは認証に使用する Kerberos principalを有します。サービスにはサーバに保存されたキータブ(keytab)ファイルがあり、キータブファイルには任意のパスワードが含まれています。サービスと相互作用するため、一般的にユーザーが kinit コマンドで Kerberosチケットを獲得します。

Kerberosの principal

Kerberosではユーザーを principalと呼びます。Hadoopリリース環境にはユーザー principalおよびサービス principalが存在します。ユーザー principalは一般的に Kerberos Distribute Center(KDC)に同期化されます。1つのユーザー principalは、実際のユーザー1人を意味します。サービス principalは各サーバのサービス別に異なるため、各サーバのサービス別に当該サービスを表す固有の principalが1つずつ存在します。

キータブファイル

キータブファイルには Kerberos principalとキーが含まれています。会話型ツールを使うかパスワードを入力する必要なく、ユーザーおよびサービスがキータブを使用して Hadoopサービスを認証できます。Hadoopでは各ノードのサービスごとにサービス principalが作成されます。これらの principalは Hadoopノードのキータブファイルに保存されます。

Kerberizeの事前ジョブ

  • ambari-serverを含むクラスタ内で実行中の全ノードに ambari-agentをご確認ください。
  • Ambariで管理する全ノード(マスターサーバ2台を除く)に krb5-workstationパッケージがインストールされています。以下の2. Configure KerberosAdvanced kerberos-env 設定ステップで必ず 「Install OS-specific Kerberos client package(s)」 のチェックを外した後、Kerberizeを行います。
    chadoop-3-7-03-02-0_ko
  • Kerberizeジョブを行うには、クラスタ全体をシャットダウン(shutdown)します。可能な限りクラスタ運用の前に行います(推奨)。

Ambari Kerberize設定

Kerberos設定開始

  1. Ambari UIにアクセスした後、左下の Cluster Admin > Kerberos を順にクリックします。
  2. [ENABLE KERBEROS] ボタンをクリックします。
    chadoop-3-7-02-01_ko
  3. 警告ポップアップで内容を確認した後、 [PROCEED ANYWAY] ボタンをクリックします。
    chadoop-3-7-02-02_ko

Kerberos設定ウィザード

1. Get Started

What type of KDC do you plan on using? 項目で Existing MIT KDC を選択します。以下のように下の3つのチェックボックスをすべて選択した後、 [Next] ボタンをクリックします。
chadoop-3-7-03-01_ko

2. Configure Kerberos

  1. 以下の各項目を設定した後、 [Next] ボタンをクリックします。

KDC

  • KDC hosts : KDCがインストールされている2台のマスターノードのホスト名(FQDN)をコンマ(,)区切りを使用して作成します。
  • Realm name : Cloud Hadoopインストール時にコンソールで設定した Realmを入力します。
  • Test KDC Connection ボタンをクリックしてアクセス可否をテストします。

Kadmin

  • Kadmin host : 1つのマスターノードのホスト名(FQDN)のみ入力します。入力すべきマスターノードの FQDNが分からない場合は、マスターノードで kadmin -p admin/admin -q "listprincs"を入力した後、kadmin/FQDN@REALMの FQDNを入力します。
  • Admin principal : admin/adminを入力します。
  • Save Admin Credentials のチェックボックスを選択します。
    chadoop-3-7-03-02-01_ko
注意

Save Admin Credentials のチェックボックスを必ずクリックして選択します。選択しない場合、Cloud Hadoopサービスの使用時に制限される場合があります。

Advanced kerberos-env

  • Install OS-specific Kerberos client package(s) 項目のチェックを外した後、Kerberizeを行います。
    chadoop-3-7-03-02-0_ko
    • Encryption Types項目を aes256-cts aes128-ctsに変更します。
    • Principal Attributes項目に +requires_preauthを追加します。
      chadoop-3-7-03-02-1_ko

Advanced krb5.conf

  • Cloud Hadoop作成時に Kerberos情報を使用するように設定した場合は、必ず Manage Kerberos client krb5.conf のチェックボックスのチェックを外します。チェックボックスのチェックを外した後、 [NEXT] ボタンをクリックします。
    chadoop-3-7-03-02-2_ko

3. Install and Test Kerberos Client

上の Kerberos構成タスクが完了すると、 Install Kerberos ClientTest Kerberos Client を自動で開始します。
画面に Kerberos service has been installed and tested successfully メッセージが表示されると、インストールが完了します。インストールが完了したら、 [Next] ボタンをクリックします。

chadoop-3-7-03-03_ko

参考

Admin session expiration error の発生時に、以下のように入力した後、 [SAVE] ボタンをクリックします。

  • Admin principal : admin/admin
  • Admin password: クラスタ作成時に設定した KDC管理者アカウントのパスワード
  • Save Admin Credentials チェックボックスを選択

上のように入力してもエラーが継続して発生する場合、KDC管理者アカウントのパスワードを変更した履歴があるかご確認ください。

4. Configure Identities

サービスユーザーおよび Hadoopサービスの principal、キータブ位置を構成するステップです。
Ambari Wizardで自動で追加される設定リストを確認した後、 [Next] ボタンをクリックします。
chadoop-3-7-03-04_ko

5. Confirm Configuration

設定情報を確認した後、 [Next] ボタンをクリックします。
chadoop-3-7-03-05_ko

6. Stop Services

設定情報の確認が完了すると、クラスタのシャットダウンを自動で開始します。シャットダウンが完了したら、 [Next] ボタンをクリックします。
chadoop-3-7-03-06_ko

7. Kerberize Cluster

合わせて7つのステップを順に行います。完了したら、 [Next] ボタンをクリックします。
chadoop-3-7-03-07_ko

8. Start and Test Services

Hadoopサービス起動と確認ステップです。完了したら、 [Complete] ボタンをクリックします。
chadoop-3-7-03-08_ko

9. Admin - Kerberos Enabledのステータス確認

画面に Kerberos security is enabled メッセージが表示されている場合は、Kerberizeジョブをすべて完了したクラスタです。
chadoop-3-7-04-1_ko

Kerberizeの適用確認

Kerberizeが適用されているか確認するために Hadoop service principalを確認し、hadoop fs コマンドを実行してテストが行えます。
以下の例は Cloud Hadoop作成時に Kerberos情報を使用して設定したことを前提にしています。 (ex. Realm : NAVERCORP.COM)

  1. 上の Ambari Kerberize設定が完了したら、kadmin -p admin/admin -q "listprincs" コマンドを使用して実行します。

    • Hadoopサービス principalが作成されていることが確認でき、hadoop fs コマンドを実行するとエラーが発生します。

    chadoop-3-7-05-02_ko

    参考

    Ambariで Kerberizeが適用されていない場合、マスターノードで kadmin -p admin/admin -q "listprincs" コマンドを実行すると以下のように表示されます。以下のように sshuser デフォルトアカウントで hadoop fs コマンドを実行すると、権限のチェックプロセスなしで結果値を確認できます。

    chadoop-3-7-05-01_ko

  2. kinit コマンドを使用して adminアカウントチケットを獲得した後、再度 hadoop fs コマンドを実行します。

    • 結果値が正常に表示されます。
    • kdestroy コマンドでチケットを削除した後、再度 hadoop fs コマンドを実行するとエラーが発生することが確認できます。

    chadoop-3-7-05-03_ko

HDFS Log Level変更

Hadoopでは log4jを用いて様々なコンポーネント(例: HDFS、YARN、MapReduceなど)で発生するログを管理・制御します。
ログレベルを調整することで、HDFSジョブに対する情報をより少なく、またはより多く収集できます。設定できるログレベルには、 ALL、DEBUG、INFO、WARN、ERROR、FATAL、OFFの合計7ステップがあります。レベルによって不要な情報までログ容量に含まれることがあるため、必要に応じて適切に調整します。

HDFSの audit.logロブレベル変更する方法は、次の通りです。
chadoop-3-7-06-02

  1. Ambari Web UI > HDFS > Configs > Advanced > Advanced hadoop-env を選択します。
  2. hadoop-env templateSHARED_HDFS_NAMENODE_OPTS-Dhdfs.audit.logger 値を目的のログレベルに変更します。
  3. [SAVE] ボタンをクリックした後、サービスを再開します。