MaxCompute 跨项目空间的访问控制和权限管理

简介: 本文将为您介绍跨项目空间的访问控制和权限管理。

跨项目空间的访问控制分为以下五类:

  • 跨项目空间访问
  • 项目空间保护
  • TrustedProject
  • ExceptionPolicy
  • 项目空间资源共享

跨项目空间访问

场景示例

1

如上图所示,有两个项目WonderLand和MiddleLand,每个项目有不同的成员,Dean用户想要访问WonderLand中的资源和表。那么面对作为非本项目团队成员Dean的访问请求,Alice应该怎么办?

常见的普通授权方式如下所示:

  1. 将Dean用户添加到WonderLand项目空间中。
  2. 对申请的对象进行用户授权。

但是,如果把其他部门的成员加入到本项目中,会存在风险。

Alice将WonderLand项目空间中的表customers的读权限赋给了Dean,假设Dean还有另外一个项目空间SecretGarden,那么Dean可以有多种方法把这张表的数据“盗走”:

  • SQL:通过执行SQL语句盗取数据。

    create table SecretGarden.GotIt as select * from WonderLand.customers;
  • MR:通过MR将表读出,然后写入SecretGarden中。
  • 导出:通过数据导出工具,将该表数据导出。
  • PAI:将数据间接导出。
  • 其他…

数据保护机制

设置ProjectProtection规则:数据只能流入,不能流出。

set ProjectProtection=true;

设置后,上述的4种操作均将失效,因为它们都违反了ProjectProtection规则。

项目空间保护下的合规数据流出

经过严格审查,发现Bob将表customers导出到另一个项目空间SecretGarden是符合规定的。现在已经设置了项目保护,Alice可以通过以下两种方式,在不破坏目前保护机制的情况下,对Bob的要求予以满足。

设置例外策略。

在设置项目保护(ProjectProtection)的同时,附加一个例外策略(exception):

set ProjectProtection=true with exception bob_policy.JSON;

1

项目互信。

若当前项目空间处于受保护状态,如果将数据流出的目标空间设置为当前空间的TrustedProject,那么向目标项目空间的数据流向将不会被视为触犯ProjectProtection规则。如果多个项目空间之间两两互相设置为TrustedProject,那么这些项目空间就形成了一个TrustedProject Group,数据可以在这个Project Group内流动,但禁止流出到Project Group之外。

list trustedprojects;  --查看当前project中的所有TrustedProjects
add trustedproject <projectname>;  --在当前project中添加一个 
TrustedProject,此处为SecretGarden
remove trustedproject <projectname>; --在当前project中移除一个TrustedProject

资源共享Package

Package是一种跨项目空间共享数据及资源的机制,主要用于解决跨项目空间的用户授权问题。

如果不使用Package,对于下面的场景我们无法有效解决。

Alifinance项目空间的成员若要访问Alipay项目空间的数据, 则需要Alipay项目空间管理员执行繁琐的授权操作:首先需要将Alifiance项目空间中的用户添加到Alipay项目空间中,再分别对这些新加入的用户进行普通授权。实际上,Alipay项目空间管理员并不期望对Alifiance项目空间中的每个用户都进行授权管理, 而更期望有一种机制能使得Alifiance项目空间管理员能对许可的对象进行自主授权控制。

使用Package之后,Alipay项目空间管理员可以对Alifinance需要使用的对象进行打包授权(也就是创建一个Package), 然后许可Alifinance项目空间可以安装这个Package。在Alifinance项目空间管理员安装Package之后, 就可以自行管理Package是否需要进一步授权给自己Project下的用户。

1

创建者的基本操作

操作 命令
创建package CREATE PACKAGE ;
删除package DROP PACKAGE ;
添加想要分享的资源到package ADD TO PACKAGE [with privileges privileges];
从package中去掉分享的对象 REMOVE FROM PACKAGE ;
允许其他项目空间使用此 package ALLOW PROJECT TO INSTALL PACKAGE [USING LABEL ];
撤销项目空间对该package的使用许可 DISALLOW PROJECT TO INSTALL PACKAGE ;
查看已安装的package SHOW PACKAGE;
查看package的详细信息 DESCRIBE PACKAGE ;

使用者的基本操作

操作 命令
安装package INSTALL PACKAGE ;
卸载package UNINSTALL PACKAGE ;
查看已安装的package SHOW PACKAGES;
查看package的详细信息 DESCRIBE PACKAGE ;

被安装的Package是独立的MaxCompute对象类型。如果要访问Package中的资源(即其他项目空间分享的资源),必须拥有对该Package的Read权限。如果请求者没有Read权限,则需要向ProjectOwner或Admin申请。ProjectOwner或Admin可以通过ACL授权或Policy授权机制来完成。

Dean安装来自项目空间WonderLand的包pkg_wl并授权给Emma,执行命令如下:

INSTALL PACKAGE WonderLand.pkg_wl;
GRANT READ ON PACKAGE WonderLand.pkg_wl TO USER RAM$dean@aliyun.com:emma;

项目空间的安全配置—鉴权配置

您可通过设置下列参数来定制项目空间的鉴权模型。

参数 说明
CheckPermissionUsingACL 激活/冻结ACL授权机制,默认为true
CheckPermissionUsingPolicy 激活/冻结Policy授权机制,默认为true
ObjectCreatorHasAccessPermission 允许/禁止对象创建者默认拥有访问权限,默认为true
ObjectCreatorHasGrantPermission 允许/禁止对象创建者默认拥有授权权限,默认为true
LabelSecurity 开启/关闭LabelSecurity安全策略,默认为false
ProjectProtection 开启/关闭项目空间的数据保护机制,默认false

您可执行下述语句查看当前鉴权模型。

show SecurityConfiguration;
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
11月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
396 4
|
11月前
|
SQL 分布式计算 大数据
别再迷信“上大数据就能飞”了!大数据项目成败的5个真相
别再迷信“上大数据就能飞”了!大数据项目成败的5个真相
255 6
|
11月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
737 3
|
数据采集 分布式计算 数据可视化
大数据项目成功的秘诀——不只是技术,更是方法论!
大数据项目成功的秘诀——不只是技术,更是方法论!
386 8
大数据项目成功的秘诀——不只是技术,更是方法论!
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
318 0
|
机器学习/深度学习 设计模式 人工智能
面向对象方法在AIGC和大数据集成项目中的应用
【8月更文第12天】随着人工智能生成内容(AIGC)和大数据技术的快速发展,企业面临着前所未有的挑战和机遇。AIGC技术能够自动产生高质量的内容,而大数据技术则能提供海量数据的支持,两者的结合为企业提供了强大的竞争优势。然而,要充分利用这些技术,就需要构建一个既能处理大规模数据又能高效集成机器学习模型的集成框架。面向对象编程(OOP)以其封装性、继承性和多态性等特点,在构建这样的复杂系统中扮演着至关重要的角色。
368 3
|
分布式计算 运维 DataWorks
MaxCompute操作报错合集之用户已在DataWorks项目中,并有项目的开发和运维权限,下载数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
328 8
|
弹性计算 分布式计算 大数据
MaxCompute产品使用合集之如何将用户A从项目空间A申请的表权限需要改为用户B
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
262 6
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何查询MaxCompute项目中的所有表及其字段信息
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

相关产品

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