通用 spark 安全配置怎樣
通用 Spark 的安全配置較為全面。
身份認(rèn)證方面,支持以共享秘鑰方式進(jìn)行,如在 YARN 方式部署時(shí)將 spark.authenticate 設(shè)為 true 可自動(dòng)生成并分發(fā)共享秘鑰,其他部署類型則需在各節(jié)點(diǎn)設(shè)置 spark.authenticate.secret 參數(shù)。
Web UI 可通過配置 spark.ui.filters 用 javax servlet filters 確保安全性,其 ACL 行為由 spark.acls.enable 和 spark.ui.view.acls 控制。
事件日志啟用時(shí),對(duì)應(yīng)目錄需手動(dòng)創(chuàng)建并設(shè)好權(quán)限。
加密方面,對(duì) Akka 和 HTTP 協(xié)議支持 SSL,數(shù)據(jù)塊傳輸服務(wù)支持 SASL 加密,但 Web UI 暫不支持加密,臨時(shí)數(shù)據(jù)存儲(chǔ)也未加密,若需加密可配置集群管理器將數(shù)據(jù)存到加密磁盤。
SSL 配置是層級(jí)式的,默認(rèn)配置在 spark.ssl 命名空間,Akka 的在 spark.ssl.akka 下,HTTP 協(xié)議的在 spark.ssl.fs 下,且須在每個(gè)節(jié)點(diǎn)配置。
在 YARN 模式下,key-store 文件可由客戶端準(zhǔn)備并分發(fā),也可提前配置。獨(dú)立模式下,要為 master 和 worker 分別提供 key-store 和相關(guān)配置選項(xiàng),可通過環(huán)境變量設(shè)置。
配置 SASL 加密時(shí),啟用認(rèn)證后數(shù)據(jù)塊傳輸服務(wù)可設(shè) spark.authenticate.enableSaslEncryption 為 true,開啟外部混洗服務(wù)設(shè) spark.network.sasl.serverAlwaysEncrypt 為 true 禁止非加密連接。
配置網(wǎng)絡(luò)安全端口時(shí),不同訪問源和目標(biāo)的默認(rèn)值、用途及配置方式不同,如獨(dú)立模式下瀏覽器訪問 Standalone Master 的默認(rèn)端口是 8080 等。