我有一个在远程服务器上运行的独立Spark集群,我是Spark的新手。似乎没有默认情况下保护集群主机(7077)端口的身份验证方案。任何人都可以简单地将自己的代码提交给集群,没有任何限制。
Spark documentation声明使用spark.authenticate.secret
参数在独立部署模式下进行身份验证是可能的,但是并没有详细说明应该如何使用它。
是否可以使用某种共享密钥来阻止任何潜在的攻击者向集群提交任务?任何人都可以解释如何配置?
有2个部分可以支持身份验证:
在群集中的每个服务器上,将以下配置添加到conf/spark-defaults.conf
:
spark.authenticate.secret SomeSecretKey
当你初始化spark上下文时,你也应该为它添加相同的配置,即:
val conf = new SparkConf()
.set("spark.authenticate.secret", "SomeSecretKey")
val sc = new SparkContext(conf)
或者如果您使用的是SparkSession:
val spark = SparkSession.builder()
.conf("spark.authenticate.secret", "SomeSecretKey")
.getOrCreate()