LDAP 認証を有効にすることで、Kyuubi のセキュリティを強化できます。 LDAP により、正しいユーザー名とパスワードを持つクライアントのみが Kyuubi Server に接続して Spark セッションを開始し、SQL クエリを実行できるようになります。 これにより、機密データおよび機能への不正アクセスを防ぎます。
前提条件
Kyuubi Gateway とトークンを作成済みであること。 詳細については、「Kyuubi Gateway の管理」をご参照ください。
以下のエンジンバージョンを推奨します。
esr-4.x: esr-4.3.0 以降のバージョン。
esr-3.x: esr-3.3.0 以降のバージョン。
esr-2.x: esr-2.7.0 以降のバージョン。
オプション: ECS クラスタ上の EMR の OpenLDAP サービスを使用する必要がある場合は、まず OpenLDAP サービスを使用してクラスタを作成し、ユーザーを追加します。 詳細については、「クラスタの作成」および「OpenLDAP ユーザー管理」をご参照ください。
手順
ステップ 1: ネットワークの確認
構成を開始する前に、Serverless Spark と仮想プライベートクラウド (VPC) 間のネットワーク接続を確認する必要があります。これにより、Kyuubi Gateway が認証のために LDAP サービスに接続できるようになります。 詳細については、「EMR Serverless Spark と他の VPC 間のネットワーク接続」をご参照ください。
ステップ 2: Kyuubi Gateway の構成
Kyuubi Gateway の LDAP 認証を開くには、まずセッションを停止する必要があります。 次に、Kyuubi Gateway を編集し、[ネットワーク接続] ドロップダウンリストから接続名を選択し、[Kyuubi 構成] に次の構成項目を追加します。 変更を有効にするには、Kyuubi Gateway を再起動します。
kyuubi.authentication LDAP
kyuubi.authentication.ldap.baseDN <ldap_base_dn>
kyuubi.authentication.ldap.userDNPattern <ldap_user_pattern>
kyuubi.authentication.ldap.binddn <ldap_bind_dn>
kyuubi.authentication.ldap.bindpw <ldap_bind_pwd>
kyuubi.authentication.ldap.url ldap://<ldap_url>:<ldap_port>/以下はパラメータの説明です。 状況に応じて置き換えてください。
EMR on ECS クラスタの OpenLDAP サービスに接続する場合は、入力例を参照できます。
パラメータ | 説明 | 例 |
|
|
|
| LDAP サービス認証のベース DN。 |
|
| ログインユーザーを LDAP DN に変換するためのパターン。 |
ユーザー "test" がログインすると、LDAP サービスでのクエリ検証のために DN = |
| LDAP 接続サービスにバインドされた DN。 |
|
| LDAP 接続サービスにバインドされた DN のパスワード。 | OpenLDAP サービス構成で [admin_pwd] パラメータ値を見つけます。 |
| LDAP サービスの接続アドレス。 |
|
ステップ 3: LDAP 認証が有効になっている Kyuubi Gateway への接続
このセクションでは、Kyuubi Gateway に接続する 2 つの方法について説明します。 接続する前に、状況に応じて以下の情報を置き換えてください。
<endpoint>: [概要] タブの [エンドポイント (パブリック)] または [エンドポイント (内部)] 情報。エンドポイント (内部) を使用する場合、同じ VPC 内の Kyuubi Gateway のリソースにのみアクセスできます。
<token>: [トークン管理] タブのトークン情報。<port>: ポート番号。 パブリックエンドポイントを使用してサーバーにアクセスする場合はポート番号は 443、内部の同一リージョンエンドポイントを使用してサーバーにアクセスする場合は 80 です。<username>および<password>: LDAP サービスのアカウント名とパスワード。 EMR on ECS クラスタの OpenLDAP サービスに接続している場合は、EMR on ECS の [ユーザー管理] ページのユーザー名とパスワードです。
方法 1: kyuubi-beeline コマンドラインツールを使用する
直接指定: コマンドラインにパスワードが表示されても構わない場合は、コマンドラインからユーザー認証情報を直接提供できます。
kyuubi-beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' -n <username> -p <password>対話型入力: セキュリティ上の理由から、-p の後のパスワードを省略し、文字を表示せずにパスワードを手動で入力できます。
kyuubi-beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' -n <username> -p
方法 2: JDBC URL を使用する
Java アプリケーションなどの他のアプリケーションを使用するか、完全な Java Database Connectivity (JDBC) URL を構築して Spark Thrift Server に接続できます。 URL は次の形式である必要があります。
jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<username>;password=<password>