Spark AuthZ 插件

概述

师成师成· 更新于 2026-09-29· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

安全是 Kyuubi 用于企业级部署的基础特性之一。当部署 Kyuubi 对接安全集群时,默认启用的是基于存储的授权,它仅提供文件级别的粗粒度授权模式。当需要行级、列级的细粒度访问控制时,可以使用 Kyuubi Spark AuthZ 插件来增强数据访问模型。

Kyuubi 中的授权

基于存储的授权

由于 Kyuubi 支持多租户,租户只能访问被授权的资源,包括计算资源、数据等。大多数文件系统(如 HDFS)都支持基于文件和目录的 ACL 管理。

Kyuubi 默认支持所谓的基于存储的授权模式。在该模型中,元数据层的所有对象(如数据库、表、分区)都会映射到存储层中的文件夹或文件及其权限。

基于存储的授权为用户提供数据库、表和分区级别的粗粒度访问控制。

基于 Ranger 的 SQL 标准授权

SQL 标准授权通常提供行级、列级的细粒度访问控制,以满足现实世界中的数据安全需求。

Apache Ranger 是一个用于在整个 Hadoop 平台上启用、监控和管理综合数据安全性的框架。该插件为 Kyuubi 提供了面向 Spark SQL 引擎的数据和元数据访问控制能力,包括:

  • 列级细粒度授权
  • 行级细粒度授权,也称为行级过滤
  • 数据脱敏

插件本身

Kyuubi Spark AuthZ 插件本身在使用 Spark SQL 时,为数据和元数据的 ACL 管理提供了通用功能。它不必与 Kyuubi 服务器和引擎一起部署,也可以作为任何 Spark SQL 作业的扩展使用。不过,授权始终需要一个健壮的认证层和多租户支持,因此 Kyuubi 与之是绝佳的搭配。

限制安全配置

最终用户可以通过修改 Spark 的配置来禁用 AuthZ 插件。例如:

select * from parquet.`/path/to/table`
set spark.sql.optimizer.excludedRules=org.apache.kyuubi.plugin.spark.authz.ranger.RuleAuthorization

Kyuubi 提供了一种机制,用于禁用安全相关的配置,从而增强生产环境的安全性。

注意

关于如何修改 Spark 引擎的配置,请参阅文档 Spark Configurations

限制会话级配置

你可以指定配置 kyuubi.session.conf.ignore.list 的值和配置 kyuubi.session.conf.restrict.list 的值,以便在服务端禁用对会话级配置的修改。例如:

kyuubi.session.conf.ignore.list    spark.driver.memory,spark.sql.optimizer.excludedRules
kyuubi.session.conf.restrict.list    spark.driver.memory,spark.sql.optimizer.excludedRules

限制操作级配置

你可以通过指定 spark.kyuubi.conf.restricted.list 的值,来禁止在引擎侧修改操作级配置。这意味着,处于受限列表中的配置项无法通过 SET 语法进行动态配置设置。例如:

spark.kyuubi.conf.restricted.list  spark.sql.adaptive.enabled,spark.sql.adaptive.skewJoin.enabled

Note

  1. 请注意,配置 spark.sql.runSQLOnFiles 的取值以及配置 spark.sql.extensions 的取值默认都在引擎的限制配置列表中。
  2. 键等于 spark.sql.optimizer.excludedRules、且取值包含 org.apache.kyuubi.plugin.spark.authz.ranger.* 的 SET 语句同样不允许修改。

评论

登录后参与评论

正在加载评论…