通過啟用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>