原文链接:
http://click.aliyun.com/m/27074/
理解大数据开发套件和大数据计算服务的权限体系。
产品关系
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的权限的授权。
本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
原文链接:
http://click.aliyun.com/m/27074/
分享到:
相关推荐
### MaxCompute多租户数据安全体系介绍 #### 一、MaxCompute数据安全整体架构 MaxCompute作为阿里云的大数据计算服务平台,在数据安全方面构建了一套完整的多租户数据安全体系。该体系主要由以下几个关键部分组成...
总的来说,MaxCompute的多租户数据安全体系是一个综合性的解决方案,涵盖了权限控制、数据分类、项目保护、异常处理和安全传输等多个方面,为用户在大数据环境中的数据安全提供了全方位的保障。通过合理配置和使用...
- **权限模型**:定义了用户、组和权限的关系。 - **权限实现**:通过ACLs (Access Control Lists) 实现权限控制。 - **权限授权管理框架**:Sentry和Ranger提供了权限授权管理功能。 ##### 7.2 MaxCompute安全 ...
9月4日MaxCompute直播课件下载。 了解更多MaxCompute产品和技术相关内容,可扫描二维码加入“MaxCompute开发者交流”钉钉群。
在数据质量管理方面,MaxCompute 结合 DataIDE(大数据开发集成环境)可以实现数据质量的全面监控和控制。DataIDE 提供了可视化开发界面,使得数据开发、管理和调度变得更加便捷,同时支持多人协同工作,确保数据...
本资料重点讨论的是MaxCompute在公有云环境下的多租户设计,以及分贝通公司在大数据体系建设过程中的实践经验。下面我们将深入探讨相关知识点。 1. **MaxCompute多租户设计**: - **资源隔离**:在公有云环境中,...
MaxCompute是阿里巴巴云推出的一种大规模数据处理服务,它专注于大数据的存储和计算,能够支持PB级别的数据处理。在大数据生态集成和开发工具方面,MaxCompute 2.0展现了其强大的兼容性和灵活性。 首先,MaxCompute...
知识点 2: MaxCompute 产品介绍 * MaxCompute 是一个大规模弹性资源池,提供了 SQL、MR、Spark 等多种计算能力。 * MaxCompute 提供了丰富的大数据开发工具、完善的数据导入导出方案以及多种经典的分布式计算模型。...
MaxCompute Serverless 架构演进是阿里云MaxCompute SQL引擎负责人谢德军的分享,主要介绍了MaxCompute Serverless的架构演进和关键技术。 大数据与Serverless 大数据时代,数据规模和处理速度的要求不断增加,...
项目空间Owner可以将其他用户加入MaxCompute项目空间中,并授予相对应权限,以便这些用户可以操作MaxCompute中的数据、作业、资源及函数。 七、MaxCompute的各项功能 MaxCompute提供了多种功能,包括数据处理、...
阿里大数据计算服务MaxCompute入门指南 本资源摘要信息涵盖了阿里大数据计算...MaxCompute项目空间Owner需要将其他用户加入MaxCompute项目空间中,并授予相对应权限,方能操作MaxCompute中的数据、作业、资源及函数。
在本文中,我们将介绍 MaxCompute 的最新特性和应用场景。 MaxCompute 概念 MaxCompute 是阿里云旗下的数据处理平台,提供了高效、灵活、可靠的数据处理解决方案。MaxCompute 可以处理大规模数据,提供了高性能、...
- **数据仓库和BI分析**:在大型互联网企业中,MaxCompute用于存储和分析大量的业务数据,支持高效的数据仓库建设和商业智能应用。 - **日志分析**:网站日志数据可通过MaxCompute进行处理,以获取用户行为、流量...
9月11日MaxCompute直播课件下载。 了解更多MaxCompute产品和技术相关内容,可扫描二维码加入“MaxCompute开发者交流”钉钉群。
1.3.2 项目空间(Project):项目空间是ODPS中的基本组织单位,它提供了数据隔离和权限控制,用户可以在不同的项目空间内进行独立的数据管理和分析工作。 除此之外,手册可能会进一步涵盖ODPS的数据模型、SQL语句、...
通过合理的资源分配和权限管理,MaxCompute能够满足不同规模企业的需求,无论是小型初创公司还是大型企业,都能在平台上高效地运行大数据分析任务。 在纺织产业供应链金融领域,大数据风控体系扮演着至关重要的角色...
文档首先介绍了MaxCompute的基础架构和数据处理流程,为读者构建了一个清晰的框架。随后,详细阐述了多种数据导入方法,包括但不限于使用DataIDE工具、命令行工具以及API接口等。每种方法都有详细的步骤说明和操作...