更新时间:2026-09-08 GMT+08:00

DLI权限体系概述

DLI服务有两套权限体系,两种权限控制机制共同使用,权限相互叠加,且权限机制可以互补,共同提供更全面的权限控制。

表1 DLI权限体系类型和说明

类型

说明

相关说明

DLI服务权限管理

DLI服务提供了对IAM用户的资源权限控制资源操作权限控制的能力,可用于给不同的IAM用户分配不同资源和操作权限。例如,对某IAM用户可以授予只能查询表的权限,而管理员用户可以进行查询表、删除表、访问表元数据等多种操作权限。

  • 资源权限控制:DLI服务中的各种资源(如弹性资源池、队列、数据库、表等)可以被设置不同的访问权限。这些权限可以精确到具体的读写操作。例如,可以设置某个IAM用户显示表权限,但不具备查询表权限。
  • 资源操作权限控制:DLI服务还对用户可以执行的操作进行权限控制。例如,可以设置某个IAM用户查询表的权限,但不具备添加列的权限。

DLI权限管理概述

IAM权限管理

IAM提供权限的细粒度管理能力,允许创建和管理细粒度的权限策略。这些策略可以精确地定义用户或用户组在DLI服务中的操作权限。例如,可以创建一个权限并添加允许创建DLI弹性资源池的策略,并将该权限与用户组绑定,那么所有添加到该用户组中的用户都具备创建弹性资源池的权限。

IAM权限管理概述

DLI服务的权限管理侧重于对DLI服务内部资源和操作的精细管理,而IAM权限管理则侧重于从身份认证和全局权限策略的角度进行控制。通过两者的结合,可以实现从用户身份到具体资源操作的全方位权限管理。

例如对用户组A中的用户A赋予删除数据库资源的权限,但是用户组A中的其他用户不具备删除数据库资源池权限,那么通过IAM权限授予用户组A中的权限时不添加删除数据库权限“dli:database:dropDatabase”,但是通过DLI管理控制台提供的表权限管理可以精确地控制仅对用户A授予删除数据库的权限。

从这个例子可以看出DLI权限体系与IAM鉴权体系的作用范围是明确区分的,这也确保了两种权限控制机制相互独立不会受到互相干扰。

DLI权限管理与IAM项目、IAM权限管理与企业项目

本节介绍DLI权限管理与IAM项目、IAM权限管理与企业项目的项目作用。

首先了解IAM项目和企业项目的区别。

IAM项目

IAM项目是针对同一个区域内的资源进行分组和隔离,是物理隔离

华为云的区域为默认项目,在区域下新建的项目为当前区域的子项目。

图1 IAM项目

DLI服务是区域项目级服务,所以DLI的授权是基于区域项目级的。

DLI的数据库、表、增强型跨源连接支持DLI项目授权、跨租户项目授权,这里的项目都是当前区域下的子项目。

企业项目

企业项目是IAM项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。企业项目可以实现对特定云资源的授权,

图2 IAM企业项目

例如:将任一弹性资源池添加至企业项目,对企业项目进行授权后,可以控制用户仅能使用后该弹性资源池。

如果您开通了企业管理,将不能创建IAM项目。

权限管理的基本原则

  • 优先级原则:如果存在明确的拒绝(Deny)权限,那么无论其他权限如何,鉴权结果都应该是拒绝。
  • 默认拒绝:如果没有明确的允许(Allow)权限,即使没有拒绝权限,鉴权结果也应该是拒绝。
  • 明确允许:只有当存在明确的允许权限时,鉴权结果才是允许。

两种权限的访问机制冲突时如何工作?

  • 没有策略授予Allow权限时,默认情况即为Deny权限。当有策略授权Allow权限,且没有其他策略Deny该权限时,Allow的权限才能生效。

    例如,IAM鉴权策略中对某个数据库DB1已经存在“创建表”的Allow权限的策略,再新增“创建视图”的Allow权限的策略,会在原权限的基础上进行叠加,增大用户的权限;

    如果新“增删除数据库”的Deny权限的策略,则会根据Deny优先原则调整用户的权限,即使通过DLI控制台授予了该数据库的允许删除数据库的操作权限,但是最后也会按照Deny优先原则拒绝用户具备“删除数据库”的权限。

  • 基于最小权限原则, Deny始终优先于Allow。

    例如,在DLI控制台授予某IAM用户允许在数据库DB1中创建表的权限,但IAM鉴权策略中添加了“dli:database:createTable”的Deny权限,即禁止该用户创建数据表,那么用户最终将无法访问该数据表。

    图3 DLI两种权限工作机制

不同DLI资源类型支持的权限管理方式

DLI SQL资源即可使用SQL语句创建的资源,例如数据库和表。使用SQL资源需要具备“SQL操作权限”和“SQL资源权限”,其中SQL操作权限即授予使用该类型资源的DLI API的相关权限。

  • SQL资源:元数据、数据库、表(包含视图)列。

    在提交DLI作业前,您需要预先授予IAM用户使用DLI元数据、数据库、表、列的权限,确保作业在执行过程中能够顺利访问所需的数据和资源。

  • 其他DLI资源:队列、弹性资源池、作业、全局变量、程序包、增强型跨源连接、跨源认证
    表2 不同DLI资源类型支持的权限管理方式

    资源类型

    授权类型

    Spark 2.x

    Spark 3.3.x

    SQL资源

    IAM细粒度授权(角色或策略授权)

    支持

    支持

    SQL资源

    DLI 资源授权

    支持

    支持

    其他DLI资源

    IAM细粒度授权(角色或策略授权)

    支持

    支持

    其他DLI资源

    DLI 资源授权

    支持

    支持