场景:MaxCompute引擎在不同模式工作空间访问资源与权限说明

DataWorks包括简单模式和标准模式两种工作空间模式,本文为您详细介绍MaxCompute引擎在不同模式工作空间的权限管理特征、资源访问行为差异。

前提条件

使用说明

类别

说明

相关文档

MaxCompute不同空间模式下权限管理特征的差异。

由于不同工作空间模式下,引擎映射的DataWorks环境不同,将导致不同模式下数据访问行为习惯与数据权限、数据安全等级存在差异。

不同模式工作空间的权限管理特征

MaxCompute不同空间模式下资源访问行为的差异。

由于不同工作空间模式对应的引擎个数,对应的DataWorks空间环境个数不同,其默认访问的资源及需要访问生产资源的方式存在差异。

MaxCompute引擎在不同模式工作空间的资源访问行为差异

不同模式下数据库、表命名规范。

命名规范严格区分数据库名和表名,避免误操作生产环境。

MaxCompute引擎在不同模式下数据库表命名规范

不同模式工作空间的权限管理特征

不同工作空间模式下,引擎映射的DataWorks环境不同,不同工作空间类型的权限管理特征与优缺点也不一致,以下表格为您对比介绍两种空间类型的权限细分特点。

细分特点

简单模式

标准模式

权限概述

在简单模式空间下,DataWorks的“开发”角色因为与所绑定MaxCompute项目的“Role_Project_Dev” Role进行了映射,因此:

  • DataWorks开发角色天然能够读取MaxCompute项目内的所有数据。

  • 由于简单模式工作空间的开发环境即生产环境,因此预设角色映射引擎Role后,该角色将拥有直接操作生产环境的权限。

在标准模式空间下,DataWorks的“开发”角色因为与所绑定MaxCompute项目(dev环境)的“Role_Project_Dev” Role进行了映射,因此:

  • DataWorks开发角色天然能够读取MaxCompute项目(dev环境)内的所有数据。

  • 由于没有和MaxCompute项目(PROD环境)的role映射,因此默认情况下DataWorks开发角色无MaxCompute(PROD环境)的数据权限。

优点

简单、方便、易用。

仅需要授权数据开发人员“DataWorks开发角色”即可完成所有数据仓库开发工作。

安全、规范。

  • 具备安全、规范的代码发布管控流程(包含代码评审、代码DIFF查看等功能),保障生产环境稳定性,避免不必要的因代码逻辑引起的脏数据蔓延或任务报错等非预期情况。

  • 数据访问得到有效管控,数据安全得以保障。

缺点

存在不稳定、不安全的风险。

  • 开发角色可以不经过任何人审批,随时新增、修改代码并提交至调度系统,给生产环境带来不稳定因素。

  • 面向MaxCompute计算引擎时,开发角色默认拥有当前MaxCompute项目所有表的读写权限,可随意对表进行增加、删除和修改等操作,存在数据安全风险。

流程相对复杂,一般情况下无法一人完成所有数据开发、生产流程。

MaxCompute引擎在不同模式工作空间的资源访问行为差异

MaxCompute可跨项目访问资源,所以在DataWorks上,开发人员可在数据开发即开发环境界面直接访问生产环境下的资源。由于简单模式与标准模式对应的引擎项目个数和DataWorks空间环境个数不同,其访问生产环境资源的命令不同,具体访问行为如下表所示:

场景

工作空间模式

数据开发界面

生产运维中心

执行账号

标准模式

当前操作人

调度引擎指定账号

简单模式

调度引擎指定账号

说明

简单模式工作空间下,如果调度引擎指定账号为阿里云主账号,无论是否是主账号进行执行任务的操作,其都将使用主账号身份执行任务。

资源所在环境

标准模式

projectname_dev.tablename/function/resource

projectname.tablename/function/resource

简单模式

projectname.tablename/function/resource

访问资源

标准模式

场景一:select col1 from tablename

  • 用个人账号访问开发环境下该表。

  • 即用个人账号访问:projectname_dev.tablename

场景二:select col1 from projectname.tablename

  • 用个人账号访问生产环境下该表。

  • 即用个人账号访问:projectname.tablename

说明

阿里云RAM用户(非调度引擎指定账号)默认无权限访问生产环境,生产表权限需要在安全中心申请。

select col1 from tablename

  • 用调度引擎指定账号访问生产环境下该表。

  • 即调度引擎指定账号访问:projectname.tablename

简单模式

select col1 from tablename.

  • 用调度引擎指定账号访问生产表。

  • 即用调度引擎指定账号访问生产表:projectname.tablename

说明

简单模式工作空间下,如果调度引擎指定账号为阿里云主账号,无论是否是主账号进行执行任务的操作,其都将使用主账号身份访问该资源。

访问资源权限问题

标准模式

个人所拥有的资源权限。

调度引擎指定账号所拥有的权限。

简单模式

调度引擎指定账号所拥有的权限。

说明

如果当前简单模式工作空间使用的调度引擎指定账号为阿里云主账号,权限过大,不建议您直接使用阿里云主账号作为简单模式工作空间调度引擎执行账号。

MaxCompute引擎在不同模式下数据库表命名规范

简单模式下不区分开发环境和生产环境,开发库即生产库。标准模式下,支持开发环境和生产环境隔离,开发环境和生产环境的数据库表命名有所区别,如果需要在开发环境访问生产环境的数据库表,请根据以下命名规范严格区分数据库表名,避免误操作生产环境。

环境类型

标准模式

示例

开发环境

项目名_dev.表名

在projectA项目下创建一个开发库表user_info,则数据库表名为:projectA_dev.user_info。

生产环境

项目名.表名

在projectA项目下创建一个生产库表user_info,则数据库表名为:projectA.user_info。