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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 本文将为您介绍跨项目空间的访问控制和权限管理。

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

  • 跨项目空间访问
  • 项目空间保护
  • 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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
4月前
|
机器学习/深度学习 设计模式 人工智能
面向对象方法在AIGC和大数据集成项目中的应用
【8月更文第12天】随着人工智能生成内容(AIGC)和大数据技术的快速发展,企业面临着前所未有的挑战和机遇。AIGC技术能够自动产生高质量的内容,而大数据技术则能提供海量数据的支持,两者的结合为企业提供了强大的竞争优势。然而,要充分利用这些技术,就需要构建一个既能处理大规模数据又能高效集成机器学习模型的集成框架。面向对象编程(OOP)以其封装性、继承性和多态性等特点,在构建这样的复杂系统中扮演着至关重要的角色。
70 3
|
4月前
|
监控 Java 开发者
揭秘Struts 2性能监控:选对工具与方法,让你的应用跑得更快,赢在起跑线上!
【8月更文挑战第31天】在企业级应用开发中,性能监控对系统的稳定运行至关重要。针对流行的Java EE框架Struts 2,本文探讨了性能监控的工具与方法,包括商用的JProfiler、免费的VisualVM以及Struts 2自带的性能监控插件。通过示例代码展示了如何在实际项目中实施这些监控手段,帮助开发者发现和解决性能瓶颈,确保应用在高并发、高负载环境下稳定运行。选择合适的监控工具需综合考虑项目需求、成本、易用性和可扩展性等因素。
45 0
|
4月前
|
SQL 大数据 分布式数据库
SQL与大数据的神秘力量:如何用高效SQL处理海量数据,让你的项目一鸣惊人?
【8月更文挑战第31天】在现代软件开发中,处理海量数据是关键挑战之一。本文探讨了SQL与大数据结合的方法,包括数据类型优化、索引优化、分区优化及分布式数据库应用,并通过示例代码展示了如何实施这些策略。通过遵循最佳实践,如了解查询模式、使用性能工具及定期维护索引,开发者可以更高效地利用SQL处理大规模数据集。随着SQL技术的发展,其在软件开发中的作用将愈发重要。
116 0
|
5月前
|
弹性计算 分布式计算 大数据
MaxCompute产品使用合集之如何将用户A从项目空间A申请的表权限需要改为用户B
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5月前
|
分布式计算 运维 DataWorks
MaxCompute操作报错合集之用户已在DataWorks项目中,并有项目的开发和运维权限,下载数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何查询MaxCompute项目中的所有表及其字段信息
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
分布式计算 DataWorks API
DataWorks操作报错合集之在将ODPS空间设置成保护模式后,导出到OSS的任务出现了权限问题,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
178 1
|
6月前
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute产品使用问题之有什么命令可以看到当前账号拥有哪些项目的什么权限
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
存储 SQL 分布式计算
MaxCompute产品使用问题之如何查看项目空间耗用的存储大小
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
110 3

相关产品

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