LDAP 認証を有効にすることで、Spark Thrift Server のセキュリティを強化します。これにより、クライアントは有効なユーザー名とパスワードを提供しないと接続して SQL クエリを実行できなくなり、機密データや機能への不正アクセスを防ぐことができます。
制限事項
この手順は、以下の EMR Serverless Spark エンジンバージョンにのみ適用されます。
-
esr-4.x:esr-4.2.0 以降。
-
esr-3.x:esr-3.0.1 以降。
-
esr-2.x:esr-2.4.1 以降。
前提条件
-
Spark Thrift Server セッションが作成済みであること。詳細については、「Spark Thrift Server セッションの管理」をご参照ください。
-
(任意) Alibaba Cloud EMR on ECS クラスター上の OpenLDAP サービスを使用するには、クラスターを作成し、OpenLDAP サービスを有効にして、ユーザーを追加する必要があります。詳細については、「クラスターの作成」および「OpenLDAP のユーザー管理」をご参照ください。
操作手順
ステップ 1:ネットワークの準備
開始する前に、EMR Serverless Spark とお使いの Virtual Private Cloud (VPC) との間のネットワーク接続を確保するために、ネットワークを設定します。これにより、Spark Thrift Server は認証のために LDAP サービスに接続できるようになります。手順については、「EMR Serverless Spark と他の VPC との間のネットワーク接続」をご参照ください。
ステップ 2:Spark Thrift Server 起動パラメーターの設定
LDAP 認証を有効にするには、まず対象の Spark Thrift Server セッションを停止します。 Normal Network Connection ドロップダウンリストで、作成した接続を選択します。 Spark Configuration セクションで、次のパラメーターを追加します。 完了後、セッションを再起動して変更を適用します。
spark.hive.server2.authentication LDAP
spark.hive.server2.authentication.ldap.url ldap://<ldap_url>:<ldap_port>
spark.hive.server2.authentication.ldap.baseDN <ldap_base_dn>
パラメーターは以下のとおりです。プレースホルダーを特定の値に置き換えてください。
-
<ldap_url>および<ldap_port>:LDAP サーバーの URL とポート。Alibaba Cloud EMR on ECS クラスター上の OpenLDAP サービスに接続する場合、<ldap_url>をマスターノードの内部 IP アドレスに、<ldap_port>を10389に設定できます。説明お使いの LDAP サービスが高可用性 (HA) 用に設定されている場合は、複数の LDAP サーバーアドレスをスペースで区切ります。例:
ldap://<ldap_url_1>:<ldap_port> ldap://<ldap_url_2>:<ldap_port> -
<ldap_base_dn>:LDAP サービス認証のベース DN を指定します。Alibaba Cloud EMR on ECS クラスターの OpenLDAP サービスに接続している場合は、ou=people,o=emrに設定できます。
ステップ 3:Spark Thrift Server への接続
一般的な接続方法を 2 つ紹介します。接続する前に、次のプレースホルダーをお客様の情報に置き換えてください。
-
<endpoint>: Overview タブから取得する Endpoint (Public) または Endpoint (Internal) です。内部エンドポイントを使用すると、Spark Thrift Server へのアクセスが同じ VPC 内のリソースに制限されます。
-
<token>: Tokens タブのトークンです。 -
<port>:ポート番号。ポート番号は、パブリックエンドポイント経由のアクセスの場合は 443、内部の同一リージョンエンドポイント経由のアクセスの場合は 80 です。 -
<username>および<password>: LDAP サービスのユーザー名とパスワードです。Alibaba Cloud EMR on ECS クラスター上の OpenLDAP サービスに接続する場合、EMR on ECS コンソールの Users ページで追加したユーザー名とパスワードを使用します。
方法 1:Beeline の使用
beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' -n <username> -p <password>
方法 2:JDBC URL の使用
Java プログラムなどの他のアプリケーションから接続する場合、または JDBC URL を構築する場合は、次のフォーマットを使用します。
jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<username>;password=<password>