MaxCompute产品简介
MaxCompute是一款多功能、低成本、高性能、高可靠、易于使用的数据仓库和支持全部数据湖能力的大数据平台,支持超大规模、serverless和完善的多租户能力,内建企业级安全能力和管理功能,支持数据保护和安全共享,数据/生态开放,可以满足数据仓库/BI、数据湖非结构化数据处理和分析、湖仓一体联邦计算、机器学习等多业务场景需求。
阿里云MaxCompute提供了全托管的服务,用户开箱即用,只需要关注自己的业务和资源使用,真正做到Paas平台Saas模式使用。MaxCompute是一个真正的云原生多租户平台,可以做到较低的资源成本,让用户获得更低的TCO。租户之间可以方便的共享数据,而不必在多个Hadoop实例之间开接口。从接入和使用角度看,简单易用,支持多引擎, 可上可下。很多使用MC的客户反馈,不是业务不能迁移,只是再也没有其他更好用更经济的选择了。从数仓管理能力上看,MaxCompute提供统一元数据、统一的账号和权限体系,完善的企业级安全能力。从资源使用角度上看,自适应的按需弹性资源,避免资源浪费或不足,节省成本又满足需求。业务负载隔离,消除业务间资源争抢。从规模和数据存储角度看,支持TB到EB级的大规模部署应用和扩展。连接广泛外部数据源,支持结构化和非结构化数据存储和处理,支持联邦计算。
MaxCompute积累了阿里多年双11自动优化和稳定可靠能力,这一点是任何Hadoop商业版产品所不具备的, MaxCompute凭借先发优势和阿里持续自身业务锤炼,让产品非常成熟稳定。
MaxCompute产品架构和周边生态
MaxCompute是基于大数据技术的数仓,采用了自研的分布式存储引擎pangu、分布式资源管理调度器fuxi,和分布式高性能SQL引擎,与开源的HDFS、Yarn、Hive+Spark SQL关系对等,但能力全面领先开源。MaxCompute的存储包括数仓schema on write模式所需的库表,也包括最近开放的volume非结构化存储。MaxCompute采用了大数据存算分离的架构,可以在大规模场景下进一步的降低成本,降低客户TCO。MaxCompute提供了沙箱运行环境,让用户的UDF和业务代码更安全也更灵活的运行在多租环境中,免去了在数据外部由用户管理私有代码的麻烦和限制。
MaxCompute通过tunnel服务,收敛了数据入仓的通道,对外只暴漏tunnel endpoint,让数据出入仓更安全,同时检查文件格式、收集元数据,用于后续读写优化,以极小的代价获得相比Hive 近一个数量级的性能领先差异,这正是数仓模式的优势所在。MaxCompute还提供了web控制台、IDE studio、CMD、SDK等多种连接方式, MMA迁移工具帮助用户快速迁移到MaxCompute,Lemming提供边缘端的采集、计算和云边协同计算。
MaxCompute对接OSS数据湖对象存储,通过DLF获取湖上元数据,可以做到湖仓一体联邦,这时MaxCompute是仓,OSS是湖。对接客户的Hadoop系统,通过自动获取hms中元数据,自动映射hive database为MaxCompute 项目的external project,免去建外表即可直接将仓内数据与hive、HDFS数据关联计算,这时MaxCompute是仓,Hadoo是湖。
MaxCompute周边的二方生态和三方生态也构成了完整的数据链路和大数据解决方案。MaxCompute可以通过Dataworks数据集成获取批加载的数据,还可以直接对接Flink、Kafka、Datahub等消息队列或流式数据,实时入仓。Hologres可与MaxCompute无缝集成,权限互认、pangu直读,基于数仓模型直接获得交互式分析的高并发、低延时能力。MaxCompute的黄金搭档DataWorks是一套与MaxCompute一起发展起来的开发治理工具,有了DataWorks可以更好的发挥MC的能力和优势。
MaxCompute还支持PAI、ES、OS以及ADB、SLS等二方引擎,实现机器学习、检索、数据集市分析、日志处理等能力。并支持QuickBI、DataV等 表、dashboard、大屏应用。数据中台治理工具Dataphin、DataQ都将基于MaxCompute的多年阿里最佳实践,产品化赋能客户。更有Tableau、帆软等三方生态工具已经与MaxCompute互认,给用户更多选择。
关于数据安全的问题
可以从四个方面预设数据安全问题,下面对MaxCompute数据安全能力的解读会对应到这些问题上,解决企业数据安全的问题,保障数据安全。
what |
where |
who |
whether |
有什么数据? |
数据在哪里? |
谁能用数据? |
是否被滥用? |
有什么用户? |
从哪里可以访问数据? |
谁用了数据? |
是否有泄露风险? |
有什么权限? |
数据能下载到哪里? |
是否有丢失风险? |
MaxCompute安全体系
按照防数据滥用、防数据泄露、防数据丢失这个三个点,看下MaxCompute的安全体系核心功能。先从MaxCompute的数据安全核心能力开始。
防数据滥用包含:细粒度的权限管理(ACL/Policy/Role)、Label Security分级管理
防数据泄露包含:认证、租户隔离、项目空间保护、 络隔离
MaxCompute和DataWorks关系,以及MaxCompute隔离机制
在当前云上体系中,用户需在阿里云注册一个主账号,才可以申请开通MaxCompute,创建项目空间。
MaxCompute的付费模式有两种,按量付费(后付费共享资源)和包年包月(预付费独享资源),当开通MaxCompute项目时,需要开通DataWorks工作空间,DataWorks可以理解为一站式开发治理工具,包含数据采集、脚本开发、调度、数据服务等。MaxCompute包含表、字段、UDF、resource、元数据等。DataWorks一个工作空间可以帮忙两个项目,也就是两个MaxCompute project,一个开发环境一个生产环境,这两个project是隔离的,防止生产环境中关键敏感数据的泄露。
MaxCompute访问与控制
当前MaxCompute访问认证鉴权经过以下步骤,身份认证用于身份识别;请求源检查(ip白名单)用户检查是否设置 络隔离;项目空间状态检查,检查项目空间是否开启项目保护等安全设置;检查MaxCompute项目的labelsecurity|rle|policy|acl等权限管理规则。接下来就按照这个顺序讲一下MaxCompute的安全机制,到权限管理部分再详细展开讲一下权限体系。
认证流程
当用户真正发生请求时,会把(Accessld、请求时间、请求参数)+签名以固定的格式发送到MaxCompute前端,MaxCompute前端包含HttpServer和tunnel(数据上传下载通道)。这个过程需要检查用户请求是否过期。当MaxCompute拿到用户请求的AK信息,跟AK服务上的AK信息做对比,如果AK信息一致,则代表用户请求有效。MaxCompute的数据资源及计算资源的访问入口都需经过身份验证。用户认证 检查请求 Request 发送者的真实身份:正确验证消息发送方的真实身份,正确验证接收到的消息在途中是否被篡改。云账号认证使用消息签名机制,可以保证消息在传输过程中的完整性 Integrity 和真实性 Authenticity。
RAM子账号
一个主账号可以把当前主账号下的RAM账号加入MaxCompute project,也可以把其他主账号加入MaxCompute project,但不可以把其他主账号下的RAM账号加入MaxCompute project。
RAM Role
角色
角色类别 |
角色名称 |
角色说明 |
账户级别(tenant) |
Super_Administrator |
MaxCompute内置的管理角色。除了不能创建项目、删除项目、开通服务,其他在MaxCompute上的操作权限等同于阿里云账号。 |
Admin |
MaxCompute内置的管理角色。用于管理所有对象及 络连接(Networklink)的权限。 |
|
项目级别(Project) |
Project Owner |
项目所有者。用户创建MaxCompute项目后,该用户为此项目的所有者,拥有项目的所有权限。除项目所有者之外,任何人都无权访问此项目内的对象,除非有项目所有者的授权许可。 |
Super_Administrator |
MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和管理类权限。权限详细信息,请参见项目级别管理角色权限说明。项目所有者或具备Super_Administrator角色的用户可以将Super_Administrator角色赋予其他用户。 |
|
Admin |
MaxCompute内置的管理角色。拥有操作项目内所有资源的权限和部分基础管理类权限。权限详细信息,请参见项目级别管理角色权限说明。项目所有者可以将Admin角色赋予其他用户。Admin角色不能将Admin权限赋予其他用户、不能设定项目的安全配置、不能修改项目的鉴权模型、所对应的权限不能被修改。 |
|
自定义角色 |
非MaxCompute内置的角色,需要用户自定义。 |
租户
项目空间用户管理
Alice 创建一个 名为 WonderLand的项目,自动成为 Owner
没有 Alice 的授权,其他任何人都无法访问 WonderLand
Alice 要授权 Bob 允许他访问 WonderLand中的一些对象:
首先,Bob 要有一个合法的云账号或者是Alice的RAM子账号
然后,Alice 要 把 Bob 的账号加到项目中来
最后,赋一些对象的权限给 Bob
Alice 要禁止 Bob 访问项目,则直接将他的账号从项目中移除即可
Bob 虽然被移除出了项目,但他之前被授予的权限仍然保留在项目中。
下次一旦他被 Alice 加入同一个项目,原有的权限将会被自动激活。 除非彻底清除Bob的权限。
控制访问
IP白名单
当用户请求提供的IP是否跟MaxCompute元数据存储的白名单匹配,做一个项目级别的检查,如果IP匹配允许访问。白名单格式允许固定IP、掩码或者IP段的方式。可以查看下面的例子
作用范围:项目空间
白名单格式:101.132.236.134、100.116.0.0/16、
101.132.236.134-101.132.236.144
设置白名单:adminConsole;
setprojectodps.security.ip.whitelist=101.132.236.134,100.116.0.0/16
关闭白名单:清空白名单*
VPC访问MaxCompute
MaxCompute作为阿里云开发的海量数据处理平台,在安全性方面需要满足安全隔离规范的要求。因此,MaxCompute团队增加了MaxCompute对专有 络(VPC)的支持,为MaxCompute配置使用限制,即MaxCompute VPC的限制。目前MaxCompute支持VPC的具体情况如下所示:
下图为具体示例
下图绿色部分为经典 络部分,蓝色为用户本身的VPC 络,红色为公共云访问。
公共云MaxCompute访问外部 络
服务映射方案(外 )
服务映射方案(VPC)
适用于MaxCompute与VPC间的 络已连接,需要通过UDF或外部表访问处于VPC 络中的单个IP或域名的场景。只需要将MaxCompute项目所属地域的IP 段添加至VPC的安全组,并将目标IP或域名所属VPC实例添加至MaxCompute项目,完成双向授权后,即可访问目标IP或域名。
专有 络连接方案
适用于通过外部表、UDF或基于湖仓一体架构访问处于VPC 络下的RDS、HBase集群、Hadoop集群场景。您需要通过VPC 络管理控制台进行授权以及配置安全组,在MaxCompute控制台创建MaxCompute与VPC 络之间的连接,配置RDS、HBase集群、Hadoop集群等目标服务安全组,以此来建立MaxCompute与目标服务间的 络通路。
直接连通方案
适用于通过UDF或外部表访问阿里云OSS、OTS(Tablestore)服务的场景。OSS、OTS服务与MaxCompute连通无需申请开通专有 络。
项目空间保护
当有project:WonderLand、SecretGarden,可能有以下风险导致数据流出。
1、SQL:create table SecretGarden.Gotit as select * from WonderLand.customers;
2、MR:通过MR将表读出,然
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!