このトピックでは、E-MapReduce(EMR)コンソールで Knox ユーザーアカウントを構成して、インターネット経由で Hadoop 分散ファイルシステム(HDFS)、YARN、Spark、Ganglia などの特定のサービスの Web UI にアクセスする方法について説明します。
前提条件
Knox サービスを含む EMR クラスタが作成されていること。詳細については、「クラスタを作成する」をご参照ください。
クラスタに Knox サービスが含まれていない場合は、Knox を追加できます。詳細については、「サービスを追加する」をご参照ください。
準備
セキュリティグループルールの追加
オンプレミスマシンのパブリック IP アドレスを取得します。
セキュリティ上の理由から、セキュリティグループルールを構成する際は、現在のパブリック IP アドレスからのアクセスのみを許可することをお勧めします。現在のパブリック IP アドレスを取得するには、http://myip.ipip.net/ にアクセスしてください。
セキュリティグループルールを追加します。
この例では、ポート 8443 が有効になっています。
目的のクラスタの [基本情報] タブに移動します。[セキュリティ] セクションで、[クラスタセキュリティグループ] の右側のリンクをクリックします。
表示されるページの [セキュリティグループ] [詳細] タブで、[受信] サブタブの [ルールの追加] をクリックします。
[承認オブジェクト] パラメーターを前の手順で取得したパブリック IP アドレスに設定し、[ポート範囲] パラメーターを [8443/8443] に設定します。
[アクション] 列の [保存] をクリックします。
外部ユーザーからの攻撃を防ぐため、[承認オブジェクト] を [0.0.0.0/0] に設定することはできません。
クラスタの作成時に [パブリック IP アドレスの割り当て] スイッチをオンにしなかった場合、パブリック IP アドレスは使用できません。この場合、ECS コンソールでクラスタのマスターノードにパブリック IP アドレスを追加できます。
Knox ユーザーアカウントの構成
Knox にアクセスする際は、ユーザー名とパスワードを入力する必要があります。認証は、Lightweight Directory Access Protocol(LDAP)に基づいています。クラスタ内の Apache Directory Server の LDAP サービスを使用できます。
方法 1(推奨)
[EMR On ECS] ページで、目的のクラスタの名前をクリックします。表示されるページで、[ユーザー] タブをクリックします。タブで、[ユーザーの追加] をクリックして Knox ユーザーアカウントを追加します。詳細については、「ユーザーアカウントの管理」をご参照ください。
方法 2
SSH モードで目的のクラスタにログオンします。詳細については、「クラスタへのログオン」をご参照ください。
Tom などのユーザー名を準備します。
次のコマンドを実行して、users.ldif ファイルを開きます。
su knox vim /opt/apps/KNOX/knox-current/templates/users.ldifファイル内で、
emr-guestとEMR GUESTをTomに置き換え、userPassword パラメーターをユーザー名のパスワードに設定します。次のコマンドを実行して、ユーザーデータを LDAP にインポートします。
cd /opt/apps/KNOX/knox-current/templates sh ldap-sample-users.sh
サービスの Web UI へのアクセス
詳細については、「EMR コンソールでオープンソースコンポーネントの Web UI にアクセスする」をご参照ください。
FAQ
Q: Knox が異常停止し、Knox の起動時に
Failed to start gateway: org.apache.hadoop.gateway.services.ServiceLifecycleException: Gateway SSL Certificate is Expiredというエラーが報告された場合はどうすればよいですか?
A: 次の手順を実行して、問題を解決できます。
SSH モードでクラスタにログオンします。詳細については、「クラスタへのログオン」をご参照ください。
次のコマンドを実行して、期限切れの SSL 証明書の名前を変更します。
sudo mv /opt/apps/KNOX/knox-current/data/security/keystores/gateway.jks /opt/apps/KNOX/knox-current/data/security/keystores/bak_gateway.jks説明期限切れの SSL 証明書を別のディレクトリに移動することもできます。
Knox を起動します。
クラスタの [サービス] タブに移動します。[サービス] タブで、Knox を見つけ、ポインターを
アイコンの上に移動し、[開始] を選択します。表示されるダイアログボックスで、[実行理由] パラメーターを構成し、[OK] をクリックします。
[確認] メッセージで、[OK] をクリックします。