为Spark Thrift Server配置并启用LDAP认证

通过启用LDAP认证,可以增强Spark Thrift Server的安全性,确保只有提供正确的用户名和密码后,客户端才能成功连接到Thrift Server并执行SQL查询,有效防止未授权访问敏感数据和功能的风险。

使用限制

Serverless Spark以下引擎版本支持本文操作:

  • esr-4.x:esr-4.2.0及之后版本。

  • esr-3.x:esr-3.0.1及之后版本。

  • esr-2.x:esr-2.4.1及之后版本。

前提条件

操作流程

一、网络准备

在开始配置之前,必须先设置好网络,确保Serverless Spark可以与您的虚拟私有云(VPC)之间网络互通,使得Thrift Server能够顺利连接到LDAP服务进行认证。具体操作,请参见EMR Serverless Spark与其他VPC间网络互通

二、配置Spark Thrift Server启动参数

对于希望开启LDAP认证功能的Spark Thrift Server会话,需首先停止该会话。在网络连接下拉列表中选择已创建的连接名称,在Spark配置中添加以下配置项。编辑完成后,请务必重新启动会话,以确保所做更改生效。

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和端口。如果您连接的是阿里云EMR on ECS集群的OpenLDAP服务,<ldap_url>可填写Master节点的内网IP地址,<ldap_port>10389。

    说明

    如果LDAP是高可用服务,则多个LDAP连接地址之间需要用空格进行分隔,例如ldap://<ldap_url_1>:<ldap_port> ldap://<ldap_url_2>:<ldap_port>

  • <ldap_base_dn>:需要填写用于LDAP服务认证的基础dn。如果您连接的是阿里云EMR on ECS集群的OpenLDAP服务,可填写为ou=people,o=emr

三、连接开启LDAP认证的Spark Thrift Server

为您提供了两种常用的连接方法。连接Spark Thrift Server前,请根据您的实际情况替换以下信息:

  • <endpoint>:您在总览页签获取的Endpoint(外网)Endpoint(内网)信息。

    如果使用内网Endpoint,访问Spark Thrift Server仅限于同一 VPC内的资源。

  • <token>Token管理页签的Token信息。

  • <port>:端口号。使用外网域名访问时端口号为443,使用内网域名访问时端口号为80。

  • <username><password>:用于登录LDAP服务的账号名称与密码。如果您连接的是阿里云EMR on ECS集群的OpenLDAP服务,则为您在EMR on ECS用户管理页面添加的用户名和密码。

方式一:使用Beeline命令行工具

beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' -n <username> -p <password>

方式二:使用JDBC URL

如果您希望通过其他应用程序(如Java程序)或构建完整的JDBC链接字符串时,应采用以下格式。

jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<username>;password=<password>