- 印刷する
- PDF
Secure Hadoop の構成(オプション)
- 印刷する
- PDF
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システム認証システムで構成されており、ユーザーとサービスがシステムで認証されている必要があります。
全ノードの 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 Kerberosの Advanced kerberos-env 設定ステップで必ず 「Install OS-specific Kerberos client package(s)」のチェックを外した後、Kerberizeを行います。
- Kerberize作業を行うには、クラスタ全体をシャットダウン(shutdown)します。可能な限りクラスタ運用の前に行います(推奨)。
Ambari Kerberize設定
Kerberos設定開始
- Ambari UIにアクセスした後、下の Cluster Admin > Kerberos を順にクリックします。
- [ENABLE KERBEROS] ボタンをクリックします。
- アラームポップアップで内容を確認し、 [PROCEED ANYWAY] ボタンをクリックします。
Kerberos設定ウィザード
1. Get Started
What type of KDC do you plan on using? 項目で Existing MIT KDC を選択します。以下のように下のチェックボックス3つを全て選択し、[Next] ボタンをクリックします。
2. Configure Kerberos
- 以下の各項目を設定した後、 [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 のチェックボックスを選択します。
Save Admin Credentials のチェックボックスを必ずクリックして選択します。選択しない場合、Cloud Hadoopサービスの使用時に制限される場合があります。
Advanced kerberos-env
- Install OS-specific Kerberos client package(s) 項目のチェックを外した後、Kerberizeを行います。
- Encryption Types項目を
aes256-cts aes128-cts
に変更します。 - Principal Attributes項目に
+requires_preauth
を追加します。
Advanced krb5.conf
- Cloud Hadoop作成時に Kerberos情報を使用するように設定した場合は、必ず Manage Kerberos client krb5.conf のチェックボックスのチェックを外します。チェックボックスのチェックを外した後、[NEXT] ボタンをクリックします。
3. Install and Test Kerberos Client
上の Kerberos構成タスクが完了すると、 Install Kerberos Client と Test Kerberos Client を自動で開始します。
画面に Kerberos service has been installed and tested successfully メッセージが表示されると、インストールが完了します。インストールが完了したら、[Next] ボタンをクリックします。
Admin session expiration error が発生すると、以下のように入力してから [SAVE] ボタンをクリックします。
- Admin principal :
admin/admin
- Admin password: クラスタ作成時に設定した KDC管理者アカウントのパスワード
- Save Admin Credentials チェックボックスをクリック
上のように入力してもエラーが継続して発生する場合、KDC管理者アカウントのパスワードを変更した履歴があるかご確認ください。
4. Configure Identities
サービスユーザーおよび Hadoopサービスの principal、キータブ位置を構成するステップです。
Ambari Wizardで自動で追加される設定リストを確認した後、 [Next] ボタンをクリックします。
5. Confirm Configuration
設定情報を確認し、 [Next] ボタンをクリックします。
6. Stop Services
設定情報の確認が完了すると、クラスタのシャットダウンを自動で開始します。シャットダウンが完了したら、 [Next] ボタンをクリックします。
7. Kerberize Cluster
合わせて7つのステップを順に行います。完了したら、 [Next] ボタンをクリックします。
8. Start and Test Services
Hadoopサービス起動および確認ステップです。完了したら、 [Complete] ボタンをクリックします。
9. Admin - Kerberos Enabledの状態確認
画面に Kerberos security is enabled メッセージが表示されている場合は、Kerberizeタスクが全て完了したクラスタです。
Kerberizeの適用確認
Kerberizeが適用されているか確認するために Hadoop service principalを確認し、hadoop fs
コマンドを実行してテストが行えます。
以下の例は Cloud Hadoop作成時に Kerberos情報を使用して設定したことを前提にしています。 (ex. Realm : NAVERCORP.COM)
上の Ambari Kerberize設定が完了したら、
kadmin -p admin/admin -q "listprincs"
コマンドを使用して実行します。- Hadoopサービス principalが作成されていることが確認でき、
hadoop fs
コマンドを実行するとエラーが発生します。
参考Ambariで Kerberizeが適用されていない場合、マスターノードで
kadmin -p admin/admin -q "listprincs"
コマンドを実行すると以下のように表示されます。以下のようにsshuser
デフォルトアカウントでhadoop fs
コマンドを実行すると、権限確認の過程を経ることなく結果値を確認できます。- Hadoopサービス principalが作成されていることが確認でき、
kinit
コマンドを使用して adminアカウントチケットを獲得した後、再度hadoop fs
コマンドを実行します。- 結果値が正常に表示されます。
kdestroy
コマンドでチケットを削除した後、再度hadoop fs
コマンドを実行するとエラーが発生することが確認できます。