2.2 MaxCompute基础特性
MaxCompute为用户提供完善的数据导入方案以及多种经典的分布式计算模型,助用户快速解决海量数据的计算问题,有效降低企业成本并保障数据安全。用户可以不必关心分布式计算和维护细节,便可轻松完成大数据分析。
概括地说(从官方抄来了),MaxCompute有如下特性优势:
MaxCompute适用于100GB以上规模的存储及计算需求,最大可达EB级别。
MaxCompute支持SQL、MapReduce、Graph等计算类型及MPI迭代类算法。
与企业自建专有云相比,MaxCompute的计算存储更高效,可以降低20%-30%的采购成本。
MaxCompute具备强数据安全特性:MaxCompute已稳定支撑阿里全部离线分析业务7年以上,提供多层沙箱防护及监控。
2.3 MaxCompute安全特性
MaxCompute拥有完备的措施来保证用户的数据安全,产品在最开始设计阶段就已经考虑到多租户环境下的安全问题。除了项目的创建者外的其他人(包括阿里云的员工),未经授权无法看到用户的数据。
MaxCompute 有健全的安全体系,支持多种权限设置方法,包括基于 ACL 和角色管理实现的对 Project 级别、表级别的授权,保证只有经过授权的用户才能访问到数据。
MaxCompute 安全沙箱系统,可以防止其他的客户恶意操作。
使用 Access Id/Key 作为角色验证的方法,和阿里云账号区分开,如果出现泄露可以很快禁用,不会影响其他 Access Id/Key 的使用。
在 DataWorks 控制台甚至可以直接设置 MaxCompute 项目高级参数,包括多个安全特性。
只有完成上述访问控制策略链路上每个节点的安全检查,用户才能访问MaxCompute项目权限内的资源。
身份鉴别通过 AK/AS完成,这在创建项目时需要配置,网络访问控制通过 IP 地址白名单控制(需要手工启用)、项目之间或项目内的访问控制通过 MaxComputer 的鉴权机制来实现。
3.2 基于角色的权限控制矩阵
MaxCompute 项目空间有不同的用户角色,如:项目拥有者、管理员、开发者等。
虽然可以使用Console 和开发工具对接 Maxcompute,但是图形界面的 DataWorks 仍然是大数据计算场景使用频发的交互接口,DataWorks为MaxCompute提供一站式的数据同步、业务流程设计、数据开发、管理和运维功能。
官方视频里也有一段针对DataWorks用户权限和MaxCompute项目的角色关系映射表,供参考。
3.3 项目内保护机制-授权
当有新用户加入项目组时,项目管理员可以通过 Web 控制台或 MaxCompute Console 将新用户加入项目组,并授权其访问项目资源。
被授权的账号既可以是在上注册过的有效邮箱地址,也可以是执行此命令的云账号的某个RAM 子账号。如果是通过支付宝、淘宝等账号联登的账户,需要从用户中心获取账号名,如下图所示:
3.4 项目内保护机制-防数据下载
对于一些数据敏感类项目,项目所有者通过 MaxCompute控制台可以为项目设置数据保护功能,如:防止下载查询结果。
具体操作可以在项目配置界面,开启【在本项目中能下载select结果:】的开关。
添加成功后效果如下:
3.6 项目间保护机制-项目保护开关
一个典型的应用场景是:Project B 项目的用户李四要加入 Project A项目,A 的项目所有者为李四开通了访问权限。
这个引用场景的风险是:李四有多种方法将 Project A数据导出,其中最简单的是通过下面语句转出数据。
CREATE TABLE ProjectB.Result AS SELECT * FROM ProjectA.SensitiveData
如果Project A的数据敏感度很高,不希望外流;那么管理员可以为该项目设置 ProjectProtection 开关(`SET ProjectProtection=true;
`),阻止数据外流。一旦开启 ProjectProtection开关,该项目的数据只能流入不能流出,任何直接或间接的数据导出方式都将失效。用户李四只能在项目内进行资源访问,不能在项目间流转数据。
3.7 项目间保护机制-例外与互信
企业用户的需求总是由特定场景决定的。虽然 MacCompute 支持项目保护功能,但不排除在运营过程中出现仍然需要与其它项目互访,或受信外部项目访问的情况。为此,阿里云MacCompute为系统增加了ProjectProtection模式下的例外机制和项目互信机制。
3.7.1 例外策略机制
通过编写策略文件 PolicyFile并将其加入到项目Protection 的里外中,可以实现项目空间例外访问控制策略,命令如下:
USE ProjectA;
SET ProjectProtection=true with exception policy.json;
3.7.2 项目互信与互信组
若因项目需求关系,经过严格审查,确定 Project A 和 Project B 项目之间可以完全互信,互相访问,则通过设置信任项目的方式,可以设置 A、B 项目互信,实现数据互访。具体操作指令如下:
USE ProjectA;
ADD trustedproject ProjectB
经上述设置后,A 和 B 在同一个受信域内,允许各自授权用户的互相访问。如果出现 A 信任 B、B 信任的情况,则表明 A、B、C 三者是完全互信的,可以直接设置一个项目互信组 TrustedGroup,同样能满足项目互信要求。
3.8 Policy 授权机制
如此前章节介绍,项目访问控制除了标准的 ACL 控制策略外,还有基于 Policy 的授权机制。Policy 主要解决 ACL 无法实现的一些复杂场景授权,通常可以实现:一次操作对一组受访问课题资源的授权,带限制条件的授权等。该授权机制可以更加方便灵活地定义用户对数据的访问权限控制。以下是一个简单的实例:
以下是参考Policy的JSON样例,该策略允许user_b@使用odps:Select权限访问项目ProjectA的 datas 表。
LabelSecurity对敏感数据的粒度可以支持列级别,管理员可以对表的任何列设置敏感度标记(Label),一张表可以由不同敏感等级的数据列构成。
对于view,也支持和表同样的设置,即管理员可以对view设置label等级,view的等级和它对应的基表的label等级是独立的,在view创建时,默认的等级也是0。
LabelSecurity默认安全策略
在对数据和user分别设置安全等级标记之后,LabelSecurity的默认安全策略如下:
(No-ReadUp) 不允许user读取敏感等级高于用户等级的数据,除非有显式授权。
(Trusted-User) 允许user写任意等级的数据,新创建的数据默认为0级(不保密)
4.企业敏感数据处理实践某企业底层数据系统中存放有各类敏感信息,包括:用户名、手机号、身份证号码等。数据分析团队需要对数据进行挖掘,那么下面的问题将不得不面对:
根据上文对MaxCompute安全特性的介绍,我们可以按照如下策略开展。
返回搜狐,查看更多
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。