MaxCompute和DataIDE权限体系介绍

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 理解大数据开发套件和大数据计算服务的权限体系。

产品关系

MaxCompute是阿里云自主研发的大数据计算引擎。通过MaxCompute,可以使用SQL、MapReduce和Graph的计算模型处理海量数据。产品还提供了机器学习的功能,并包装成机器学习这个产品对外提供服务。用户使用MaxCompute,不需要关心底层的分布式计算细节,就可以轻松地处理海量数据。

但是直接用MaxCompute也有一些不方便之处,比如需要更方便地进行开发代码的管理、进行数据的导入导出、设置任务的定时调度以及上下游依赖、管理任务的运行情况并做好异常报警、需要有简单方便的元数据的管理以及我们这次要讲的更方便的数据权限设置。为此诞生了大数据开发套件(Data IDE)这个产品。Data IDE在MaxComput外面又包了一层。用户不需要直接去操作MaxComupt,只需要在Data IDE上做操作就可以了,大大简化了数据仓库搭建的过程。有时候,我们甚至会称Data IDE是MaxCompte的开发工具。

MaxCompte作为计算引擎,本身就有一套健全的安全规则和权限体系。这些权限设置,足够让用户只能访问到他被授权的那些数据。在此基础上,Data IDE提供了一套自己的权限体系,包含Data IDE上的模块的授权和MaxCompte上的授权。通过在Data IDE上做配置,就能很方便的给账号授予对应的MaxCompte权限。以下我们分别对这两个产品做一些说明。

MaxCompute 权限设置

MaxCompute在添加一个用户后,可以对用户通过ACL直接授权、基于角色的ACL授权、Policy授权、Package授权,使其获得对应的权限。其中ACL直接授权、基于角色的ACL授权是目前对外提供的权限控制方法。Policy授权、Package授权这两个功能,目前还是在内部测试阶段,公共云上的MaxCompute的文档里暂时还没有提供,但不排除以后会提供的可能。

添加用户

MaxCompute需要把某个具体的云账号添加到项目里后才能对这个账号进行授权。MaxComupte本身支持对具体的某个云账号,或者本主账号下的其他子账号进行授权。不过后面的大数据开发套件就只支持本账号下的子账号。

添加的方式为

  • 主账号:add user aliyun$alice@aliyun.com;
  • 子账号:add user ram$alice@aliyun.com:ram_name;

ACL授权

直接的ACL授权,其实就是一个简单的,把XX权限授权给YY,或者把YY上的XX权限解除授权的一个过程。在add user之后,通过grant和revoke语法来进行授权或者解除授权,具体的语法是

grant actions on object to subject 
revoke actions on object from subject

举个实际的例子,要给一个账号授权查询某张表的权限,然后又解除授权,步骤是

grant List, CreateTable, CreateInstance on project prj1 to user aliyun$alice@aliyun.com; --使用grant语句对用户授权
grant Describe, Select on table wc_in to user aliyun$alice@aliyun.com;
revoke Describe, Select on table wc_in from user aliyun$alice@aliyun.com;
revoke List, CreateTable, CreateInstance on project prj1 from user aliyun$alice@aliyun.com; --使用revoke解除授权

而基于角色的ACL授权就是先定义一个角色(或者说是一个权限包),比如说创建一个叫开发者的角色,然后把各种前面提到的权限先授权给这个角色。后面来了个研发人员需要这样的权限,直接把开发者这个角色授权给他就可以了,不需要全部重新授权一遍。可以看下授权的命令

add user aliyun$alice@aliyun.com; --添加用户
create role dev; --创建角色
grant List, CreateInstance on project prj1 to role dev; --对角色赋权
grant Describe, Select on table userprofile to role dev;
grant dev to aliyun$alice@aliyun.com; --对用户赋予角色dev

其他

如前面提到,Policy授权、Package授权两个功能,目前公共云的MaxcCompute上还没有提供,所以本文也不再做详细介绍。不过可以可以大致说明一下:

Policy是通过设置json格式的配置来授权,使用起来比较复杂,功能上也比较全。

Package是先把资源添加到资源包里,然后授予对方安装资源包的方式来实现资源的跨项目授权

DataIDE权限设置

DataIDE的权限主要分IDE本身的一些功能权限和底层计算引擎的权限。IDE里,在添加用户后,可以给其授予部署、访客 、项目管理员、开发、运维的角色,在IDE里配置了角色后,对应的账号可以获得IDE上对应的角色所拥有的IDE上的对应模块的操作权限外,还获得了底层的计算引擎MaxCompute上的对应权限,如图
image
比如我给chuanxue这个子账号授权了“开发”的角色后
image
可以看到。在子账号授予权限后,除了DataIDE上的相关模块的权限外,还给了这个MaxCompute项目的一些开发需要用到的项目权限(CreateTable、CreateInstance、List、Read、Write;可以看到是通过ACL实现的)以及用Policy实现其他的一些权限。

在实际的工作中,需要先根据子账号用户的实际需要的IDE的权限,授予他对应的项目成员管理里的角色。一般情况下,这样授权就已经足够了。但是如果有一些MaxCompute的权限需要调整的,可以再通过MaxCompute的授权命令进行调整。

除了这个之外,DataIDE的数据管理模块里还支持对表进行权限申请,申请通过后,会自动通过ACL的方式获得对应的表的Describe和Select权限。

典型案例

以上说明后可能需要一些实际的例子来说明会更加清楚。之前有过这样的一个案例,有个用户在项目内授予了开发权限,但是查询的时候一直没有提示没有这张表的查询权限。照道理说,有了开发权限后,就已经有这个项目下的所有的表的查询权限了。从错误上看,我们认为目前的权限异常是出在计算引擎上的,所以需要检查MaxCompute上的权限设置。

首先到https://workbench.data.aliyun.com/console?#/projectlist ,看看项目名称对应的显示名,从而得到真实的项目名称。其实这个是个非常简单但是容易犯错的情况,很多开发工程师并非是项目的创建者,看到的别名就误以为是项目名称,导致授权检查的时候查错项目。
image
比如咱们这个截图里,项目的名称是aliyun2014,但是显示名是aliyun。所以出现问题的时候,要排查的也是看aliyun2014这个项目下的权限对不对。

然后我们可以在大数据开发套件里,创建一个SQL脚本,执行whoami;来看看当前的执行账号是否确实是预期中的那个账号,如图
image
看看项目名称能不能对上,对上后看看Name是否和自己的预期是能对上的。

确定了项目名称和登录账号后,可以用项目管理员的账号,打开MaxCompute的客户端,使用Show grants for xxx;查看这个账号的所有的权限(前文就有一个这样show grants的截图)。通过这个办法可以看到这个账号的目前计算引擎上的实际权限。如果发现这里的权限不对的话,那说明可能是被人从计算引擎层面上误删除了对应的权限,可以再通过命令补上,当然更加方便的方法是在DataIDE上取消其开发角色后再重新加上,这样在加上的时候会重新进行MaxComupte的权限的授权。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
7月前
|
数据采集 分布式计算 DataWorks
maxcompute开发环境问题之申请生产环境和开发环境的表权限失败如何解决
MaxCompute开发环境是指设置和配置用于开发MaxCompute项目的本地或云端环境;本合集将指导用户如何搭建和管理MaxCompute开发环境,包括工具安装、配置和调试技巧。
|
5月前
|
存储 分布式计算 DataWorks
MaxCompute产品使用合集之表被删除重建后如何查到之前的权限信息
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
弹性计算 分布式计算 大数据
MaxCompute产品使用合集之如何将用户A从项目空间A申请的表权限需要改为用户B
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
分布式计算 运维 DataWorks
MaxCompute操作报错合集之用户已在DataWorks项目中,并有项目的开发和运维权限,下载数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
7月前
|
分布式计算 Cloud Native MaxCompute
MaxCompute数据问题之没有访问权限如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
|
6月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用问题之如何为某个用户授予仅对生产表的SELECT权限
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
分布式计算 DataWorks API
DataWorks操作报错合集之在将ODPS空间设置成保护模式后,导出到OSS的任务出现了权限问题,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
181 1
|
6月前
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute产品使用问题之有什么命令可以看到当前账号拥有哪些项目的什么权限
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在执行SQL时,出现了权限问题。错误代码为odps-0433121,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7月前
|
机器学习/深度学习 SQL 分布式计算
MaxCompute产品使用合集之要撤销一个开发角色对某个表的查询权限,具体的操作步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

相关产品

  • 云原生大数据计算服务 MaxCompute