文档章节

【阿里云大数据产品MaxCompute】DT时代企业数据资产的护卫舰

_夜枫
 _夜枫
发布于 2017/04/09 21:10
字数 2126
阅读 6
收藏 0

阿里云数加MaxCompute设计之初就是面向多租户,确保租户的数据安全是MaxCompute的必备功能之一。在MaxCompute系统的安全设计和实现上,MaxCompute的工程师们会遵循一些经过实践检验的安全设计原则(如Saltzer-Schroeder原则)。在常用密码算法及安全协议的设计和实现上,也会遵循业界相关标准(如PKCS-及FIPS-系列标准),并坚持最佳安全实践。

这里从如下几个方面来解刨一下MaxCompute的安全特性,让关心MaxCompute数据安全的读者有一个基本的了解。更多产品信息请访问https://www.aliyun.com/product/odps 。

1. API认证

认证是一个服务的安全入口。MaxCompute认证采用业界标准的API认证协议来实现,如HmacSHA1。MaxCompute还提供HTTP和HTTPS两种的EndPoint以满足用户对认证安全的不同要求。HTTP EndPoint是明文传输,那么HmacSHA1认证只能保证消息请求的真实性(Authenticity)和完整性(Integrity),适合于对数据安全不太敏感的用户。HTTPS EndPoint则能提供更多的安全性,比如信道加密,抗重放攻击等。适合于对数据安全比较敏感的用户。

2. 访问控制

当你创建项目空间后,你就是项目空间的owner。一个项目空间只有一个owner,只有owner对项目空间有完全控制权限。你可以上传/下载数据、提交SQL进行数据处理。在没有你的授权的情况下,任何其他用户都无权访问你的项目空间。 注意,MaxCompute平台并没有超级管理员的角色,所以MaxCompute的开发、测试、运维同学都是没有权限看到用户数据的。有人会问了,通过MaxCompute背后的运维管理控制台也不能访问用户数据吗?的确不能。运维同学只有在获得内部授权之后,可以通过该控制台来执行一些运维管理类操作,比如停止一个有恶意行为的用户作业,但该控制台没有操作用户数据的权限。

MaxCompute产品面向的是企业级用户,所以提供了丰富的项目空间内的用户管理及授权功能,有兴趣的同学可以参考MaxCompute用户手册中的相关章节。MaxCompute访问控制粒度非常精细,比如你可以授权一个用户只能读某个table的部分columns,并且可以要求该用户只能在某个时间范围内、而且必须从指定的某些IP地址来进行访问。换句话说,一个企业主可以做到只允许其员工在公司内、在正常上班时间才能访问数据,下班回家就不允许访问了。

3. 数据流控制

MaxCompute设计之初就是要满足数据分享(或数据交换)的场景。所以,只要有授权,用户就可以非常方便的进行跨项目空间的数据访问。比如,在获得相应的访问权限之后,项目空间A中的作业可以直接处理项目空间B中的数据,而不必事先将数据从项目空间B中复制到项目空间A。

数据保护有两层含义,一是防止未授权的数据访问;二是防止获得授权的用户滥用数据。很多商用系统并不提供后一种数据安全保证。但在MaxCompute平台上,用户的这种担忧比较明显:用户希望能确保对自己的数据拥有控制权,而一旦授权他人读取,他人就可能会做复制数据,那么就相当于失去了对数据的控制权。

MaxCompute通过支持数据流控制来防止跨项目空间的数据复制。如果你想确保项目空间中的所有数据都不允许流出去,那么你可以打开项目空间的数据流控设置。你还可以设置项目空间的数据保护策略,以限制哪些数据可以流出到哪些项目空间。

4. 用户作业的隔离运行

MaxCompute支持用户提交各种类型的作业(如SQL/XLib/MR)。为了确保不同用户作业在运行时互不干扰,MaxCompute将用户作业的Worker进程运行在飞天 Container沙箱中。如果用户作业含有Java代码(比如UDF),那么飞天Container沙箱中的Worker进程启动JVM时,还会设置严格的Java 沙箱策略以限制UDF的运行时权限。

5. 作业运行时使用最小权限

最小权限原则是系统安全和容错设计的一个基本指导原则,即让每个任务在运行时使用刚好满足需要(不多也不少)的权限来执行。

MaxCompute的作业运行过程一般是这样:用户提交的SQL/XLib/MR作业会被调度到某一计算集群上运行,运行时每个作业一般对应一组并行跑的Worker进程,Worker进程一般会从数据集群上读数据、处理完成后最终会将数据写回到数据集群。举个例子来理解MaxCompute是如何遵循最小权限原则的。我们假设用户Alice被授权读访问一个项目空间下t1和t2两个table数据,但她提交的某个SQL只需要读t1的数据。在MaxCompute中,这个SQL对应的Worker进程在运行时就只能读t1对应的底层数据文件,而不会有更多的数据访问权限。

MaxCompute最小权限是依赖于底层的飞天分布式操作系统提供的Kerberos认证和Capability访问控制来实现的。Kerberos认证用于解决飞天底层服务模块之间的身份认证,Capability则用于解决底层服务模块之间的访问控制技术。这与上层MaxCompute所提供的认证和访问控制是完全正交的安全机制,对MaxCompute用户是完全透明的。

6. 数据访问审计

MaxCompute还提供精准的、细粒度的数据访问操作记录,并会长期保存。MaxCompute平台体系所依赖的功能服务模块非常之多,我们可以把它称之为底层服务栈。对于数据操作记录来说,MaxCompute会收集服务栈上的所有操作记录,从上层table/column级别的数据访问日志,一直到底层分布式文件系统上的数据操作日志。最底层分布式文件系统上处理的每一次数据访问请求,也都能追溯到是最上层的哪个项目空间中的哪个用户的哪个作业发起的数据访问。

有了服务栈上的各层操作审计之后,即使是内部攻击者(工程师或渗透到内部系统中的黑客)想从内部(绕过MaxCompute服务)直接访问底层分布式文件系统上的用户数据的话,也一定是可以从操作日志中被发现的。所以,通过数据访问审计,用户就可以准确的知道他在MaxCompute上的数据是否存在未授权的数据访问。

7. 风险控制

除了不同层面的防御机制之外,MaxCompute产品还会提供一套安全监控系统,用于监控用户作业及用户数据的安全活动,如AccessKey滥用,项目空间安全配置不当,用户代码运行时触犯安全策略,以及用户数据是否遭受异常访问等。

安全攻击防不胜防,所以MaxCompute会通过安全监控手段来及时发现问题,一旦发现安全问题则会启动相应的处理流程,尽可能将用户损失降到最低。


结语:虽然没有绝对的安全,但安全性在MaxCompute产品设计和实现中享有最高优先级。MaxCompute团队已经汇聚了多领域的安全专家,以保障用户数据安全。同时,我们欢迎更多安全专家的加入,共同增强MaxCompute的数据安全。

本文转载自:https://yq.aliyun.com/articles/69140

_夜枫
粉丝 10
博文 506
码字总数 0
作品 0
朝阳
后端工程师
私信 提问
2017杭州云栖大会100位大咖视频+讲义全分享 大数据

摘要: “如果我看得更远一点的话,是因为我站在巨人的肩膀上。”2017杭州云栖大会资料全部整理完毕,首批100位大咖视频+讲义分享给大家。 杭州云栖大会是阿里集团一年一度的全生态科技盛会。...

qq_40954115
2017/11/06
0
0
比自建Hadoop便宜 云栖大会揭秘阿里云数加MaxCompute

DT时代,越来越多的企业应用数据步入云端。 Hadoop是当下流行的大数据并行计算体系,横向扩展、生态圈成熟等一直是它的主要特点。 阿里云数加MaxCompute (原名ODPS)是一种快速、完全托管的T...

大大大大风车
2017/09/21
1K
2
阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171127)

概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方...

隐林
2017/05/05
0
0
当大数据邂逅酷暑,谁的热度更高?— 大数据计算杭州峰会圆满落幕

今夏,什么最热?世界杯。。。 除了世界杯还有什么热?杭州的天气。。。 当杭州酷暑遇上大数据,哪个更热? 先不答,往下看。 众所周知,计算的价值绝不止于计算本身,而是让不会说话的数据发...

晋恒
2018/07/17
0
0
阿里云MaxCompute技术共享计划 首波技术公开课干货集锦

今夏伊始,阿里云大数据计算服务MaxCompute,为将计算红利惠及更多企业和更多开发者,隆重开启技术共享计划。 为让更多开发者能够高效、便捷、循序渐进的了解大数据、了解MaxCompute以及阿里...

迷你芊宝宝
2018/06/26
6
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
42分钟前
59
1
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
9
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部