参考 https://submarine.apache.org/zh-cn/docs/0.6.0/userDocs/submarine-security/spark-security/
从ranger的github地址https://github.com/apache/ranger中可以发现当前ranger并没有提供专门的Ranger Spark插件。
当然我们还可以通过Ranger HDFS插件做存储级别的权限控制,但是这种方式不利于做更细粒度(表,字段)的权限控制或者data masking的。
submarine-spark-security 支持基于标准SQL方式的Spark鉴权,包括:
- Table/Column级别的鉴权;(注:Database级别的鉴权功能没有问题,但有两点地方需要注意:1需要提前配置spark_catalog的权限;2可以use没有权限的库,但是后续鉴权会报错)
- Row级别的过滤;
- Data masking
编译
git clone -b release-0.6.0-RC0 https://github.com/apache/submarine
mvn clean package -Dmaven.javadoc.skip=true -DskipTests -pl :submarine-spark-security -Pspark-3.0 -Pranger-2.1
支持的版本如下:
Spark: -Pspark-2.3
, -Pspark-2.4
, -Pspark-3.0
Ranger: -Pranger-1.2
, -Pranger-2.0
直接看代码,-Pranger-2.1是已经支持了的
下面介绍下两个配置文件
ranger-spark-security.xml
<configuration> <property> <name>ranger.plugin.spark.policy.rest.url</name> <value>ranger admin address like http://ranger-admin.org:6080</value> </property> <property> <name>ranger.plugin.spark.service.name</name> <value>a ranger hive service name</value> </property> <property> <name>ranger.plugin.spark.policy.cache.dir</name> <value>./a ranger hive service name/policycache</value> </property> <property> <name>ranger.plugin.spark.policy.pollIntervalMs</name> <value>5000</value> </property> <property> <name>ranger.plugin.spark.policy.source.impl</name> <value>org.apache.ranger.admin.client.RangerAdminRESTClient</value> </property> </configuration>
ranger-spark-audit.xml
标签:ranger,Plugin,submarine,0.6,Spark,Submarine,spark,security,plugin From: https://www.cnblogs.com/aichihuluobo/p/16876472.html