权限管理概述
DLI服务不仅在服务本身有一套完善的权限控制机制,同时还支持通过统一身份认证服务(Identity and Access Management,简称IAM)细粒度鉴权,可以通过在IAM创建策略来管理DLI的权限控制。两种权限控制机制可以共同使用,没有冲突。
IAM鉴权使用场景
企业用户在云上使用DLI服务时,需要对不同部门的员工使用DLI资源(队列)进行管理,包括资源的创建、删除、使用、隔离等。同时,也需要对不同部门的数据进行管理,包括数据的隔离、共享等。
DLI使用IAM进行精细的企业级多租户管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制云资源的访问。
通过IAM,您可以在云帐号中给员工创建IAM用户,并使用策略来控制他们对云资源的访问范围。例如您的员工中有负责软件开发的人员,您希望他们拥有DLI的使用权限,但是不希望他们拥有删除DLI等高危操作的权限,那么您可以使用IAM为开发人员创建用户,通过授予仅能使用DLI,但是不允许删除DLI的权限策略,控制他们对DLI资源的使用范围。
说明对于新建的用户,需要先登录一次DLI,记录元数据,后续才可正常使用。
IAM是云提供权限管理的基础服务,无需付费即可使用,您只需要为您帐号中的资源进行付费。
如果云帐号已经能满足您的需求,不需要创建独立的IAM用户进行权限管理,您可以跳过本章节,不影响您使用DLI服务的其他功能。
DLI系统权限
如下表所示,包括了DLI的所有系统权限。
权限类别:根据授权精程度分为角色和策略。
- 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
- 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对DLI服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。
DLI系统权限
系统角色/策略名称 | 描述 | 类别 |
---|---|---|
DLI FullAccess | 数据湖探索所有权限。 | 系统策略 |
DLI ReadOnlyAccess | 数据湖探索只读权限。 只读权限可控制部分开放的、未鉴权的DLI资源和操作。例如创建全局变量、创建程序包以及程序包组、default队列提交作业、default数据库下建表、创建跨源连接、删除跨源连接等操作。 |
系统策略 |
Tenant Administrator | 租户管理员。 操作权限:具有所有云服务的管理和使用权限。创建后,可通过ACL赋权给其他子用户使用。 作用范围:项目级服务。 |
系统角色 |
DLI Service Admin | DLI服务管理员。 操作权限:具有数据湖探索服务队列、数据的管理和使用权限。创建后,可通过ACL赋权给其他子用户使用。 作用范围:项目级服务。 |
系统角色 |
DLI权限分类
DLI服务权限分类如下表所示,其可控制的资源请参考DLI自定义策略章节中的表“DLI的指定资源与对应路径”。
DLI权限分类
权限大类 权限小类 控制台操作 SQL语法 API定义 队列权限
队列管理权限
请参考队列权限管理 无
请参考《数据湖探索API参考》中的“权限相关API > 队列赋权”章节。相关文档请联系管理员获取。
队列使用权限
数据权限
数据库权限
请参考 《数据湖探索SQL语法参考》 中的“批作业SQL语法 > 数据权限管理 > 数据权限列表”章节。
请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。相关文档请联系管理员获取。
表权限
列权限
作业权限
Flink作业
请参考Flink作业权限管理
无
请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。相关文档请联系管理员获取。
程序包权限
程序包组权限
请参考程序包组和程序包权限管理
无
请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。相关文档请联系管理员获取。
程序包权限
跨源认证权限
跨源认证权限
请参考跨源认证权限管理
无
请参考 《数据湖探索API参考》中的“权限相关API > 数据赋权(用户)”章节。相关文档请联系管理员获取。
场景举例
某互联网公司,主要有游戏和音乐两大业务,使用DLI服务进行用户行为分析,辅助决策。
如图所示,“基础平台组组长”在云上申请了一个“租户管理员”(Tenant Administrator)帐号,用于管理和使用云的各个服务。因为“大数据平台组”需要使用DLI进行数据分析,所有“基础平台组组长”增加了一个权限为“DLI服务管理员”(DLI Service Admin)的子帐号用于管理和使用DLI服务。“基础平台组组长”按照公司两个业务对于数据分析的要求,创建了“队列A”分配给“数据工程师A”运行游戏数据分析业务,“队列B”分配给“数据工程师B”运行音乐数据分析业务,并分别赋予“DLI普通用户”权限,具有队列使用权限,数据(除数据库)的管理和使用权限。
详见下图:权限分配
“数据工程师A”创建了一个gameTable表用于存放游戏道具相关数据,userTable表用于存放游戏用户相关数据。因为音乐业务是一个新业务,想在存量的游戏用户中挖掘一些潜在的音乐用户,所以“数据工程师A”把userTable表的查询权限赋给了“数据工程师B”。同时,“数据工程师B”创建了一个musicTable用于存放音乐版权相关数据。
“数据工程师A”和“数据工程师B”对于队列和数据的使用权限如下表所示。
使用权限说明
用户 | 数据工程师A (游戏数据分析) | 数据工程师B (音乐数据分析) |
---|---|---|
队列 | 队列A(队列使用权限) | 队列B(队列使用权限) |
数据(表) | gameTable(表管理和使用权限) | musicTable(表管理和使用权限) |
数据(表) | userTable(表管理和使用权限) | userTable(表查询权限) |
说明队列的使用权限包括提交作业和终止作业两个权限。