通过启用LDAP认证,可以增强Spark Thrift Server的安全性,确保只有提供正确的用户名和密码后,客户端才能成功连接到Thrift Server并执行SQL查询,有效防止未授权访问敏感数据和功能的风险。
使用限制
目前仅支持esr-2.4.0(Spark 3.3.1,Scala 2.12)及以上引擎版本的Spark Thrift Server会话配置LDAP认证。
前提条件
已创建Spark Thrift Server会话,具体请参见管理Spark Thrift Server会话。
可选:如果您需要使用阿里云EMR on ECS集群的OpenLDAP服务,则需创建选择了OpenLDAP服务的集群并添加了用户,详情请参见创建集群和管理用户。
操作流程
一、网络准备
在开始配置之前,必须先设置好网络,确保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>