更新时间:2025-12-11 GMT+08:00
分享

配置Spark对接LakeFormation授权管理

LakeFormation数据湖权限支持配置数据库、数据表、函数等维度的权限。云服务管理员可针对不同的管理对象配置不同IAM用户组的权限,统一对数据湖资源进行管理。

MRS集群对接LakeFormation后,LakeFormation服务中的相关数据湖权限策略及角色信息会自动同步至MRS Ranger,对于MRS集群内的用户,可通过关联至对应Ranger角色后获取对应资源的访问权限。

开启数据源鉴权时需为Spark组件配置相关访问权限。

前提条件

  • 本章节内容仅适用于MRS 3.6.0及之后版本。
  • LakeFormation实例运行正常,数据库、数据表、数据权限等页面加载正常。
  • 集群关闭Kerberos认证(普通模式),且运行正常,包含Guardian、Ranger、Hive、Spark等服务。
  • 已完成MRS集群对接LakeFormation,并配置MRS集群Spark组件的存算分离,详情可参考创建集群时配置LakeFormation数据连接为已有集群配置LakeFormation数据连接
  • 已下载安装了集群客户端,例如安装目录为“/opt/client”。
  • 已登录MRS集群的FusionInsight Manager界面添加人机用户“sparkuser”,加入hadoop、hive用户组,用户创建成功后初始化密码。

授权插件说明

Spark组件提供了两种授权插件选项:Ranger授权插件和LakeFormation授权插件,LakeFormation授权插件仅适用于MRS 3.6.0及之后版本。

Spark组件默认采用Ranger授权插件进行权限管理。这种配置依赖于用户在LakeFormation中设置的数据权限策略同步机制。通过这一机制,数据权限得以实时更新和同步,确保权限管理的时效性和准确性。

如果您希望切换到LakeFormation授权插件,需要进行以下配置:

  1. 禁用Ranger授权插件: 登录Manager页面,在Spark服务界面停用Ranger鉴权。重新下载客户端,或手动刷新客户端配置文件“客户端安装目录/Spark/spark/conf/spark-defaults.conf”中参数“spark.ranger.plugin.authorization.enable”值为“false”。Spark关闭Ranger鉴权后,需要重启Spark服务。
  2. 启用LakeFormation授权插件: 设置配置参数 spark.lakeformation.plugin.authorization.enable=true 以启用LakeFormation授权插件。
  • 独立性:LakeFormation授权插件不依赖于数据湖权限策略的同步机制,因此在某些场景下可能更为轻便和高效。
  • 兼容性:由于Ranger授权插件通过同步权限策略兼容Lakeformation统一元数据,存在少量差异,可参考表1
  • 权限策略重置:切换授权插件需要重启Spark组件,并同步客户端配置。并注意二者兼容性。
  • 差异性:LakeFormation授权插件不支持SET ROLE ADMIN命令。

操作步骤

  1. 关闭Kerberos认证的集群(普通模式)默认关闭Ranger鉴权,需要参考以下步骤开启Spark的Ranger鉴权。

    1. 启用Hive服务的Ranger鉴权。

      登录MRS集群Manager,选择“集群 > 服务”,单击待操作的服务名称(例如Hive),在右上角选择“更多 > 启用Ranger鉴权”根据界面提示进行启用。

    2. 先重启Hive服务,再重启Spark服务。

      选择“集群 > 服务”,单击待操作的服务名称(例如Hive),在页面右上角选择“更多 > 重启服务”。

    3. 参考以上操作,启用Spark服务的Ranger鉴权,启用完成后重启Spark服务。

  2. 在LakeFormation中添加鉴权角色。

    1. 登录LakeFormation管理控制台
    2. 在LakeFormation管理控制台,选择“数据权限 > 角色”页面,单击“创建角色”,“角色名称”填写“spark_role”,单击“确定”。

  3. 在Ranger为待鉴权用户添加角色。

    1. 使用Ranger管理员用户rangeradmin(默认密码为Rangeradmin@123)登录Ranger管理页面。
    2. 在“Roles”页签,单击在LakeFormation创建的角色名,如“spark_role”,在“Users”项的“Select User”框中选择待鉴权的人机用户,如“sparkuser”,然后单击“Add Users”,单击“Save”。

  4. 在LakeFormation对角色进行授权。

    进入LakeFormation的“数据授权”页面,单击“授权”,编辑如下,将访问表所需的权限赋予“spark_role”,单击“确定”。

    • 主体类型:选择“角色”。
    • 选择角色:下拉框选择刚创建的角色“spark_role”。
    • 授权类型:选择“资源”。
    • Catalog:选择“hive”。
    • 选择数据库、表、列、函数等待授权的资源类型。
    • 操作类型:参考表1
      表1 类型说明

      类型

      SQL 语句

      Ranger授权插件所需资源权限

      LakeFormation授权插件所需资源权限

      (仅适用于MRS 3.6.0及之后版本)

      DDL语句

      ALTER DATABASE

      database:ALTER

      database:ALTER

      ALTER TABLE

      table:ALTER

      table:ALTER

      ALTER VIEW

      column:SELECT

      column:SELECT

      table:ALTER

      table:ALTER

      CREATE DATABASE

      None

      catalog:CREATE_DATABASE

      CREATE OR REPLACE FUNCTION (CREATE)

      database:CREATE_FUNC

      database:CREATE_FUNC

      tempudfadmin(Ranger添加)

      CREATE OR REPLACE FUNCTION (REPLACE)

      database:CREATE_FUNC

      database:CREATE_FUNC

      function:ALTER

      CREATE TABLE

      database:CREATE_TABLE

      database:CREATE_TABLE

      CREATE VIEW

      database:CREATE_TABLE

      database:CREATE_TABLE

      column:SELECT

      column:SELECT

      DROP DATABASE

      database:DROP

      database:DROP

      DROP FUNCTION

      function:DROP

      function:DROP

      tempudfadmin(Ranger添加)

      DROP TABLE

      table:DROP

      table:DROP

      DROP VIEW

      table:DROP(target)

      table:DROP(target)

      REPAIR TABLE

      table:ALTER

      table:ALTER

      TRUNCATE TABLE

      table:UPDATE

      table:UPDATE 或 table:DELETE

      table:SELECT

      USE DATABASE

      None

      database:任意权限

      DML语句

      INSERT TABLE

      table:UPDATE

      table:INSERT

      LOAD DATA

      table:UPDATE

      table:SELECT

      table:UPDATE

      DR语句

      SELECT

      column:SELECT

      column:SELECT

      EXPLAIN

      取决于执行sql

      取决于执行sql

      Auxiliary语句

      ANALYZE TABLE

      table:SELECT

      table:SELECT

      table:DESCRIBE

      DESCRIBE DATABASE

      None

      None

      DESCRIBE FUNCTION

      None

      None

      DESCRIBE QUERY

      None

      table:SELECT

      DESCRIBE TABLE

      table:DESCRIBE

      table:DESCRIBE

      REFRESH TABLE

      None

      table:SELECT

      REFRESH FUNCTION

      None

      None

      SHOW COLUMNS

      table:DESCRIBE

      table:DESCRIBE

      SHOW CREATE TABLE

      table:DESCRIBE

      table:DESCRIBE

      SHOW DATABASES

      None

      None

      SHOW FUNCTIONS

      None

      None

      SHOW PARTITIONS

      table:DESCRIBE

      table:DESCRIBE

      SHOW TABLE EXTENDED

      None

      None

      SHOW TABLES

      None

      None

      SHOW TBLPROPERTIES

      None

      table:DESCRIBE

      SHOW VIEWS

      None

      None

      UNCACHE TABLE

      None

      table:SELECT

相关文档