Presto の Web UI にアクセスする前、または Presto ジョブを送信する前に、ご利用の Presto クラスターの管理者パスワードを設定します。本トピックでは、E-MapReduce (EMR) コンソールでパスワードを設定する方法について説明します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
-
Presto がデプロイ済みの ACK クラスター(EMR on ACK)
-
EMR コンソール へのアクセス権限
-
ローカルマシンに
htpasswdがインストール済みであること(「htpasswd のインストール」をご参照ください)
仕組み
Presto クラスターは認証情報を password.db ファイルに格納します。各行は username:hashed_password のフォーマットに従い、パスワードは bcrypt でハッシュ化されている必要があります。有効なエントリの例を以下に示します。
admin:$2y$10$BqTb8hScP5DfcpmHo5PeyugxHz5Ky/qf3wrpD7SNm8sWuA3VlGqsa
Apache HTTP Server に付属する htpasswd ユーティリティを使用すると、bcrypt 互換のハッシュを生成できます。生成コマンドで使用されるフラグは以下のとおりです。
| フラグ | 目的 |
|---|---|
-B |
bcrypt ハッシュアルゴリズムを使用 |
-C 10 |
bcrypt のコストを 10 に設定 |
-n |
出力をファイルではなく標準出力(stdout)に表示 |
-n は標準出力に結果を表示するため、出力内容をコピーして手動で構成に貼り付ける必要があります。
htpasswd のインストール
お使いのオペレーティングシステムに応じて、htpasswd をインストールします。
| OS | コマンド |
|---|---|
| macOS | htpasswd コマンドを直接実行(macOS にプリインストール済み) |
| CentOS | yum install httpd |
| Ubuntu | apt-get install apache2-utils |
コマンドおよびパッケージ名は、お使いのシステムバージョンや構成によって異なる場合があります。必要に応じて調整してください。
管理者パスワードの設定
ステップ 1:password.db タブを開く
-
EMR コンソール にログインします。左側のナビゲーションウィンドウで、EMR on ACK をクリックします。
-
EMR on ACK ページで、対象のクラスターを見つけ、[操作] 列の 設定 をクリックします。
-
設定 タブで、
アイコンにポインターを合わせ、password.db を選択します。
ステップ 2:パスワードの生成と保存
-
ローカルマシンで、以下のコマンドを実行して bcrypt パスワードハッシュを生成します。
htpasswd -nBC 10 adminプロンプトが表示されたら、任意のパスワードを入力します。コマンドは次のようなハッシュを標準出力に表示します。
admin:$2y$10$BqTb8hScP5DfcpmHo5PeyugxHz5Ky/qf3wrpD7SNm8sWuA3VlGqsa -
EMR コンソールの password.db タブで、admin の値を、上記ステップで生成したハッシュに置き換えます。
-
保存 をクリックします。
-
表示されるダイアログボックスで、実行理由 パラメーターを設定し、保存 をクリックします。
ステップ 3:Presto の再起動
-
サービスの詳細 タブをクリックします。
-
コンポーネント セクションで、TrinoCoordinator を見つけ、[操作] 列の 再起動 をクリックします。
-
表示されるダイアログボックスで、実行理由 パラメーターを設定し、OK をクリックします。
-
確認 メッセージで、OK をクリックします。
設定の確認
Presto の再起動後、新しいパスワードを使用して Presto の Web UI にアクセスしたり、Presto ジョブを送信したりできます。
-
ブラウザで Presto の Web UI を開きます。
-
ユーザー名
adminと新しいパスワードでログインします。 -
誤ったパスワードでログインを試行し、アクセスが拒否されることを確認します。