通過啟用LDAP認證,可以增強Spark Thrift Server的安全性,確保只有提供正確的使用者名稱和密碼後,用戶端才能成功串連到Thrift Server並執行SQL查詢,有效防止未授權訪問敏感性資料和功能的風險。
使用限制
僅Serverless Spark以下引擎版本支援本文操作:
esr-4.x:esr-4.2.0及之後版本。
esr-3.x:esr-3.0.1及之後版本。
esr-2.x:esr-2.4.1及之後版本。
前提條件
已建立Spark Thrift Server會話,具體請參見管理Spark Thrift Server會話。
可選:如果您需要使用阿里雲EMR on ECS叢集的OpenLDAP服務,則需建立選擇了OpenLDAP服務的叢集並添加了使用者,詳情請參見建立叢集和OpenLDAP 使用者管理。
操作流程
一、網路準備
在開始配置之前,必須先設定好網路,確保Serverless Spark可以與您的虛擬私人雲端(VPC)之間網路互連,使得Thrift Server能夠順利串連到LDAP服務進行認證。具體操作,請參見EMR Serverless Spark與其他VPC間網路互連。
二、配置Spark Thrift Server啟動參數
對於希望開啟LDAP認證功能的Spark Thrift Server會話,需首先停止該會話。在網路連接下拉式清單中選擇已建立的串連名稱,在Spark配置中添加以下配置項。編輯完成後,請務必重新啟動會話,以確保所做更改生效。
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>參數說明如下,其中部分參數請根據您的實際情況替換:
<ldap_url>和<ldap_port>:LDAP伺服器的URL和連接埠。如果您串連的是阿里雲EMR on ECS叢集的OpenLDAP服務,<ldap_url>可填寫Master節點的內網IP地址,<ldap_port>為10389。說明如果LDAP是高可用服務,則多個LDAP串連地址之間需要用空格進行分隔,例如
ldap://<ldap_url_1>:<ldap_port> ldap://<ldap_url_2>:<ldap_port>。<ldap_base_dn>:需要填寫用於LDAP服務認證的基礎dn。如果您串連的是阿里雲EMR on ECS叢集的OpenLDAP服務,可填寫為ou=people,o=emr。
三、串連開啟LDAP認證的Spark Thrift Server
為您提供了兩種常用的串連方法。串連Spark Thrift Server前,請根據您的實際情況替換以下資訊:
<endpoint>:您在總覽頁簽擷取的Endpoint(外網)或Endpoint(內網)資訊。如果使用內網Endpoint,訪問Spark Thrift Server僅限於同一 VPC內的資源。
<token>:Token管理頁簽的Token資訊。<port>:連接埠號碼。使用外網網域名稱訪問時連接埠號碼為443,使用內網網域名稱訪問時連接埠號碼為80。<username>和<password>:用於登入LDAP服務的帳號名稱與密碼。如果您串連的是阿里雲EMR on ECS叢集的OpenLDAP服務,則為您在EMR on ECS的使用者管理頁面添加的使用者名稱和密碼。
方式一:使用Beeline命令列工具
beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' -n <username> -p <password>方式二:使用JDBC URL
如果您希望通過其他應用程式(如Java程式)或構建完整的JDBC連結字串時,應採用以下格式。
jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<username>;password=<password>