通过启用LDAP认证,可以增强Kyuubi的安全性,确保只有提供正确的用户名和密码后,客户端才能成功连接到Kyuubi Server启动Spark Session并执行SQL查询,有效防止未授权访问敏感数据和功能的风险。
前提条件
已创建Kyuubi Gateway和Token,具体请参见Gateway管理。
推荐使用下述引擎版本:
esr-4.x:esr-4.3.0及之后版本。
esr-3.x:esr-3.3.0及之后版本。
esr-2.x:esr-2.7.0及之后版本。
可选:如果您需要使用阿里云EMR on ECS集群的OpenLDAP服务,则需创建选择了OpenLDAP服务的集群并添加了用户,详情请参见创建集群和OpenLDAP用户管理。
操作流程
步骤一:网络准备
在开始配置之前,必须先设置好网络,确保Serverless Spark可以与您的虚拟私有云(VPC)之间网络互通,使得Kyuubi Gateway能够顺利连接到LDAP服务进行认证。具体操作,请参见EMR Serverless Spark与其他VPC间网络互通。
步骤二:配置Kyuubi Gateway
对于希望开启LDAP认证功能的Kyuubi Gateway,需先停止该会话。然后编辑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登录时,会将其转换为DN = |
| 连接LDAP服务绑定的DN。 |
|
| 连接LDAP服务绑定的DN的密码。 | 在OpenLDAP服务的配置中查找admin_pwd的参数值。 |
| LDAP服务的连接地址,填写格式为ldap://<ldap_url>:<ldap_port>。 |
说明 如果LDAP是高可用服务,则多个LDAP连接地址之间需要用空格进行分隔,例如 |
步骤三:连接开启LDAP认证的Kyuubi Gateway
为您提供了两种常用的连接方法。连接Kyuubi Gateway前,请根据您的实际情况替换以下信息:
<endpoint>
:您在总览页签获取的Endpoint(外网)或Endpoint(内网)信息。如果使用内网Endpoint,访问Kyuubi Gateway仅限于同一VPC内的资源。
<token>
:Token管理页签的Token信息。<port>
:端口号。使用外网域名访问时端口号为443,使用内网域名访问时端口号为80。<username>
和<password>
:用于登录LDAP服务的账号名称与密码。如果您连接的是阿里云EMR on ECS集群的OpenLDAP服务,则为您在EMR on ECS的用户管理页面添加的用户名和密码。
方式一:使用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
方式二:使用JDBC URL
如果您希望通过其他应用程序(如Java程序)或构建完整的JDBC链接字符串时,应采用以下格式。
jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<username>;password=<password>