为Kyuubi Gateway配置并启用LDAP认证

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

前提条件

  • 已创建Kyuubi GatewayToken,具体请参见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服务,则可以参考示例内容填写。

参数

说明

示例

kyuubi.authentication

固定为LDAP,表示启用LDAP认证。

LDAP

kyuubi.authentication.ldap.baseDN

LDAP服务认证的基础DN。

o=emr

kyuubi.authentication.ldap.userDNPattern

登录用户到LDAP DN的转换模式。

uid=%s,ou=people,o=emr

用户test登录时,会将其转换为DN = uid=test,ou=people,o=emrLDAP服务中进行查询验证。

kyuubi.authentication.ldap.binddn

连接LDAP服务绑定的DN。

uid=admin,o=emr

kyuubi.authentication.ldap.bindpw

连接LDAP服务绑定的DN的密码。

OpenLDAP服务的配置中查找admin_pwd的参数值。

kyuubi.authentication.ldap.url

LDAP服务的连接地址,填写格式为ldap://<ldap_url>:<ldap_port>。

<ldap_url>填写为Master节点的内网IP地址或域名,<ldap_port>默认为10389,例如 ldap://master-1-1.c-xxxxxxxxxx.cn-hangzhou.emr.aliyuncs.com:10389。

说明

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

步骤三:连接开启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>