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

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

使用限制

目前仅支持esr-2.4.0(Spark 3.3.1,Scala 2.12)及以上引擎版本的Spark Thrift Server会话配置LDAP认证。

前提条件

操作流程

一、网络准备

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

二、配置Spark Thrift Server启动参数

对于希望开启LDAP认证功能的Spark Thrift Server会话,需首先停止该会话。在Spark配置中添加以下配置项。编辑完成后,请务必重新启动会话,以确保所做更改生效。

spark.emr.serverless.network.service.name      <connection_name>
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>

参数说明如下,其中部分参数请根据您的实际情况替换:

  • <connection_name>网络连接中创建的连接名称。

  • <ldap_url><ldap_port>:LDAP服务器的URL和端口。如果您连接的是阿里云EMR on ECS集群的OpenLDAP服务,<ldap_url>可填写Master节点的内网IP地址,<ldap_port>为10389。

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

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

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

  • <endpoint>:您在总览页签获取的Endpoint信息。

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

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

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

  • 直接指定用户名和密码:如果您不介意在命令行中显示密码,则可以直接通过命令行参数提供用户凭据。

    beeline -u 'jdbc:hive2://<endpoint>:443/;transportMode=http;httpPath=cliservice/token/<token>' -n <username> -p <password>
  • 交互式输入密码:为了安全起见,您可以省略-p后面的密码,在执行命令后根据提示手动输入密码而不显示字符。

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

方式二:使用JDBC URL

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

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