SparkSQL ThriftServer 安全相关功能的现状分析

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: SparkSQL Thrift Server 是 Spark SQL基于 Apache Hive的 HiveServer2开发的,通过SparkSQL Thrift Server 可以使 Spark SQL支持 JDBC/ODBC 的连接方式,用户可以通过 JDBC and ODBC 协议,在Spark上执行 SQL。

SparkSQL Thrift Server

SparkSQL Thrift Server 是 Spark SQL基于 Apache Hive的 HiveServer2开发的,通过SparkSQL Thrift Server 可以使 Spark SQL支持 JDBC/ODBC 的连接方式,用户可以通过 JDBC and ODBC 协议,在Spark上执行 SQL.

ThriftServer的安全

HiveServer2 和 SparkSQL 的Thrift Server的安全主要包含以下两方面内容:

  • 认证(Authentication):

    认证就是验证用户的身份,就是我们通常说的登录
  • 授权(Authorization):

    授权就是验证用户是否有权限进行特定的操作,有时也叫鉴权。
    

ThriftServer 认证

Apache Hive HiveServer2 支持的认证

  • Kerberos authentication
    Kerberos authentication 是 Hadoop 强安全认证的一个重要方式, 在Thrift client 和 HiveServer2 之间,HiveServer2 和 Kerberos 的 HDFS 之间都是支持 Kerberos 的;
  • LDAP authentication
    在 Thrift client 和 HiveServer2 之间认证时,LDAP authentication 也是支持的;
  • Pluggable Authentication
    在 Thrift client 和 HiveServer2 之间的认证还可以通过实现 Pluggable authentication进行自定义的 Authentication,根据 HiveServer2 实现自己的 Provider 即可

Apache SparkSQL ThriftServer 的认证

理论上, Spark SQL Thrift Server 支持 Hive Server2 的所有的认证。(笔者测试了 Spark 2.1.1 的 Kerberos 支持是可以的)

ThriftServer 授权

Apache Hive HiveServer2 的认证

默认的 Hive Authorization

Hive 早期的授权方式,不安全。

Storage-based Authorization

Storage-based authorization 是基于 HDFS 文件的权限进行认证的, 一般授权可以控制的级别是 databases, tables 和 partitions,但是 Hive的 Grant/Revoke 是无效的

SQL standard-based Authorization

SQL standard-based Authorization 是在 Hive Metastore 中存储了权限的元数据信息,ThriftServer 可以通过读取对应的信息进行授权管理。这种场景下. Grant/Revoke 的 SQL 命令管理方式也是支持的。

Apache Sentry Authorization

Apache Sentry 也是一款不错的授权管理组件,由 Cloudera 主要维护,用户可以通过 HUE 和 Hive命令执行 grant/revoke SQL 语句。
老版本的 Sentry 基于 Hive 上的 Semantic Analyzer Hook, V2 基于 Hive Authorization Factory,也就是 SQL standard-based Authorization。

Spark Thrift Server 的授权

Storage-based Authorization

Storage-based Authorization 是依赖于 HDFS 上的文件权限的,Spark Thrift Server 可以使用, 但是 Spark Thrift Server 不支持 impersonation(类似hive.server2.enable.doAs=true),所以,用户通过Kerberos认证后,ThriftServer 只能以ThriftServer的身份去执行具体的查询
https://issues.apache.org/jira/browse/SPARK-5159

这个问题修复后,最好可以配合 Sentry 这种 Sentry-HDFS permission sync 一起用,在 HDFS 文件的权限 和 Warehouse 权限。

SQL standard-based Authorization

对于 SQL standard-based Authorization (Apache Sentry Authorization), Spark Thrift Server 不支持 SQL standard-based 认证。但是,社区中已经有相应的patch。

https://issues.apache.org/jira/browse/SPARK-8321
https://github.com/apache/spark/pull/11045

总结

  • STS(Spark Thrift Server) 支持 Kerberos Authentication
  • STS 不支持 SQL standard-based Authorization;
    https://github.com/apache/spark/pull/11045
  • STS 支持 Storage-based Authorization, 但是 STS 不支持impersonation (doAs), STS使用这种方式,其实并不能达到完整的授权管理;
  • 当 impersonation 支持后, 如果需要高效的管理,最好进入HDFS 文件和数据库权限同步的机制.

原创文章,如需转载,请先联系作者 dapeng.sdp#alibaba-inc.com
欢迎加入Apache Spark中国技术社区参与更多直播、讨论

image

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
4月前
|
存储 分布式计算 监控
Spark如何优化?需要注意哪些方面?
【10月更文挑战第10天】Spark如何优化?需要注意哪些方面?
60 6
|
6月前
|
存储 分布式计算 供应链
Spark在供应链核算中应用问题之通过Spark UI进行任务优化如何解决
Spark在供应链核算中应用问题之通过Spark UI进行任务优化如何解决
|
9月前
|
SQL Kubernetes Apache
深度实践 | 自如基于Apache StreamPark 的实时计算平台实践
深度实践 | 自如基于Apache StreamPark 的实时计算平台实践
449 57
深度实践 | 自如基于Apache StreamPark 的实时计算平台实践
|
9月前
|
SQL 机器学习/深度学习 分布式计算
硬核!Apache Hudi Schema演变深度分析与应用
硬核!Apache Hudi Schema演变深度分析与应用
262 3
|
存储 分布式计算 NoSQL
spark价值及优势:
spark价值及优势:
135 0
SparkSQL实践与优化
SQL实践:1.多数据源支持 2.多数据类型支持 3.多组件对接
2188 0
|
分布式计算 大数据 Apache
Spark框架概览【大数据技术】
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势: Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求 官方资料介绍Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍,在实际项目中也比较接近这一指标。
1524 0
|
存储 分布式计算 Hadoop
《Spark与Hadoop大数据分析》——1.3 工具和技术
本节书摘来自华章计算机《Spark与Hadoop大数据分析》一书中的第1章,第1.3节,作者 [美]文卡特·安卡姆(Venkat Ankam),译 吴今朝,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1305 0