使用Databricks Runtime 9.1 LTS及以下版本的Databricks集群默認情況下不啟用GCM (Galois/Counter Mode)密碼套件。
必須在集群上啟用GCM密碼套件才能連接到需要GCM密碼套件的外部服務器。
驗證所需的密碼套件
使用nmap實用程序來驗證外部服務器需要哪些密碼套件。
%sh nmap——script ssl-enum-cipher -p.使用實例
創建一個初始化腳本以啟用GCM密碼套件
使用示例代碼創建在集群上啟用GCM密碼套件的init腳本。
% python dbutils.fs.put(“/ < path-to-init-script > / enable-gcm.sh”,“”“# !/bin/bash sed -i 's/, GCM//g' /databricks/spark/dbconf/java/extra.使用實例安全”“”,真的)
% scala dbutils.fs.put(“/ < path-to-init-script > / enable-gcm.sh”,“”“# !/bin/bash sed -i 's/, GCM//g' /databricks/spark/dbconf/java/extra.使用實例安全”“”,真的)
記住初始化腳本的路徑。在配置集群時將需要它。
使用init腳本配置集群
按照文檔配置集群範圍的初始化腳本(AWS|Azure|GCP).
必須指定初始化腳本的路徑。
初始化腳本配置完成後,需要重啟集群。
驗證是否啟用了GCM密碼套件
這個示例代碼在集群中查詢所有受支持的密碼套件,然後打印輸出。
導入java.util.Map;進口java.util.TreeMap;import javax.net.ssl.SSLServerSocketFactory import javax.net.ssl._ SSLContext.getDefault.getDefaultSSLParameters.getProtocols.foreach(println)
如果啟用了GCM密碼套件,您將在輸出中看到以下AES-GCM密碼。
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
連接外部服務器
一旦您驗證了在集群上安裝了GCM密碼套件,就可以連接到外部服務器。