更新时间:2024-11-07 GMT+08:00

权限管理概述

DLI服务不仅在服务本身有一套完善的权限控制机制,同时还支持通过统一身份认证服务(Identity and Access Management,简称IAM)细粒度鉴权,可以通过在IAM创建策略来管理DLI的权限控制。两种权限控制机制可以共同使用,没有冲突。

IAM鉴权使用场景

企业用户在华为云上使用DLI服务时,需要对不同部门的员工使用DLI资源(队列)进行管理,包括资源的创建、删除、使用、隔离等。同时,也需要对不同部门的数据进行管理,包括数据的隔离、共享等。

DLI使用IAM进行精细的企业级多租户管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。

通过IAM,您可以在华为云账号中给员工创建IAM用户,并使用策略来控制他们对华为云资源的访问范围。例如您的员工中有负责软件开发的人员,您希望他们拥有DLI的使用权限,但是不希望他们拥有删除DLI等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用DLI,但是不允许删除DLI的权限策略,控制他们对DLI资源的使用范围。

对于新建的用户,需要先登录一次DLI,记录元数据,后续才可正常使用。

IAM是华为云提供权限管理的基础服务,无需付费即可使用,您只需要为您账号中的资源进行付费。关于IAM的详细介绍,请参见《IAM产品介绍》

如果华为云账号已经能满足您的需求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用DLI服务的其他功能。

DLI系统权限

表1所示,包括了DLI的所有系统权限。

权限类别:根据授权精程度分为角色和策略。
  • 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
  • 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对DLI服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。

了解DLI SQL常用操作与系统策略的授权关系,请参考常用操作与系统权限关系

表1 DLI系统权限

系统角色/策略名称

描述

类别

依赖关系

DLI FullAccess

数据湖探索所有权限。

系统策略

该角色有依赖,需要在同项目中勾选依赖的角色:

  • 创建跨源连接:VPC ReadOnlyAccess
  • 创建包年/包月资源:BSS Administrator
  • 创建标签:TMS FullAccess、EPS EPS FullAccess
  • 使用OBS存储:OBS OperateAccess
  • 创建委托:Security Administrator

DLI ReadOnlyAccess

数据湖探索只读权限。

只读权限可控制部分开放的、未鉴权的DLI资源和操作。例如创建全局变量、创建程序包以及程序包组、default队列提交作业、default数据库下建表、创建跨源连接、删除跨源连接等操作。

系统策略

Tenant Administrator

租户管理员。

  • 操作权限:具有数据湖探索服务资源的所有执行权限。创建后,可通过ACL赋权给其他子用户使用。
  • 作用范围:项目级服务。

系统角色

DLI Service Administrator

数据湖探索管理员。

  • 操作权限:具有数据湖探索服务资源的所有执行权限。创建后,可通过ACL赋权给其他子用户使用。
  • 作用范围:项目级服务。

系统角色

具体的授权方式请参考创建IAM用户并授权使用DLI以及《如何创建子用户》和《如何修改用户策略》。

DLI权限分类

DLI服务权限分类如表2所示,其可控制的资源请参考表4

表2 DLI权限分类

权限大类

权限小类

控制台操作

SQL语法

队列权限

队列管理权限

请参考队列权限管理

队列使用权限

数据权限

数据库权限

请参考在DLI控制台配置数据库权限在DLI控制台配置表权限

请参考 《权限列表》。

表权限

列权限

作业权限

Flink作业

请参考配置Flink作业权限

程序包权限

程序包组权限

请参考配置程序包权限

程序包权限

跨源认证权限

跨源认证权限

请参考跨源认证权限管理

场景举例

某互联网公司,主要有游戏和音乐两大业务,使用DLI服务进行用户行为分析,辅助决策。

图1所示,“基础平台组组长”在华为云上申请了一个“租户管理员”(Tenant Administrator)账号,用于管理和使用华为云的各个服务。因为“大数据平台组”需要使用DLI进行数据分析,所有“基础平台组组长”增加了一个权限为“DLI服务管理员”(DLI Service Administrator)的子账号用于管理和使用DLI服务。“基础平台组组长”按照公司两个业务对于数据分析的要求,创建了“队列A”分配给“数据工程师A”运行游戏数据分析业务,“队列B”分配给“数据工程师B”运行音乐数据分析业务,并分别赋予“DLI普通用户”权限,具有队列使用权限,数据(除数据库)的管理和使用权限。

图1 权限分配

“数据工程师A”创建了一个gameTable表用于存放游戏道具相关数据,userTable表用于存放游戏用户相关数据。因为音乐业务是一个新业务,想在存量的游戏用户中挖掘一些潜在的音乐用户,所以“数据工程师A”把userTable表的查询权限赋给了“数据工程师B”。同时,“数据工程师B”创建了一个musicTable用于存放音乐版权相关数据。

“数据工程师A”“数据工程师B”对于队列和数据的使用权限如表3所示。

表3 使用权限说明

用户

数据工程师A(游戏数据分析)

数据工程师B(音乐数据分析)

队列

队列A(队列使用权限)

队列B(队列使用权限)

数据(表)

gameTable(表管理和使用权限)

musicTable(表管理和使用权限)

userTable(表管理和使用权限)

userTable(表查询权限)

队列的使用权限包括提交作业和终止作业两个权限。