开箱即用的安全方案:MaxCompute数据安全方案介绍

摘要: MaxCompute 是一个支持多租户的统一大数据处理平台,不同的用户对数据安全需求不尽相同。为了满足不同租户对数据安全的灵活需求,MaxCompute 支持项目空间级别的安全配置,ProjectOwner 可以定制适合自己的外部账号支持和鉴权模型并且在某种程度上保障Project的数据安全。

MaxCompute 是一个支持多租户的统一大数据处理平台,不同的用户对数据安全需求不尽相同。为了满足不同租户对数据安全的灵活需求,MaxCompute 支持项目空间级别的安全配置,ProjectOwner 可以定制适合自己的外部账号支持和鉴权模型并且在某种程度上保障Project的数据安全。

通常情况下,常见的开发模式为__MaxCompute+DataWorks__方式,针对这种场景下数据安全方案如下:

禁止数据流出或下载本地

方式①:

数据保护机制也被称之为开启项目空间数据保护,可以通过MaxCompute console 开启服务端禁止数据流出:

方式②:

那么更多开发者通过DataWorks进行数据分析,通常会屏显在IDE上并且可以下载结果,这种可以通过项目管理 > 项目配置中打开“在本项目中能下载select结果”,具体如下:

那么这种情况下,在DataWorks查询结果页面就不可以通过“下载”按钮进行下载数据到本地。

开启数据保护机制后的数据流出方法

在您的Project被设置了ProjectProtection之后,您可能很快就会遇到这样的需求:user1向您提出申请,她的确需要将某张表的数据导出您的项目空间。

而且经过您的审查之后,那张表也的确没有泄漏您关心的敏感数据。为了不影响user1的正常业务需要,MaxCompute为您提供了在ProjectProtection被设置之后的两种数据导出途径。

方式①:

ProjectOwner设置ExceptionPolicy,针对已经开启项目数据保护的进行开例外。具体方式如下(需要通过MaxCompute console操作):

SET ProjectProtection=true WITH EXCEPTION <policyFile>

这种policy不同于Policy授权(尽管它与Policy授权语法完全一样),它只是对项目空间保护机制的例外情况的一种描述,即所有符合policy中所描述的访问情形都可以打破ProjectProtection规则。>>>policy详细文档

*** 另外,可以通过show grants [for <username>] [on type <objectType>] 查看某用户权限,查看是否加例外成功。

方法②:

设置TrustedProject,若当前项目空间处于受保护状态,如果将数据流出的目标空间设置为当前空间的TrustedProject,那么向目标项目空间的数据流向将不会被视为触犯ProjectProtection规则。可以通过如下命令方式进行设置(需通过MaxCompute console进行):

MaxCompute支持Project级别的IP白名单。

setproject odps.security.ip.whitelist=101.132.236.134,100.116.0.0/16,101.132.236.134-101.132.236.144;

白名单中IP列表的表示格式有三种。

具体详细教程可以参考,>>>>IP白名单控制。

更精细化的管理

当然MaxCompute Policy机制也可以实现控制某个用户/或者角色的用户从具体IP地址来访问具体资源(表、UDF、资源)等。

Policy样例:

数据保护伞为DataWorks的一个数据安全模块,具体可以通过点击进入进行了解,其包括数据脱敏、安全审计等。https://help.aliyun.com/document_detail/86320.html

可以针对敏感数据在DataWorks屏显进行加**显示,如下图所示:

1、列级别LabelSecurity访问控制

项目空间中的LabelSecurity安全机制默认是关闭的,ProjectOwner可以自行开启。

【应用场景】

场景说明:user_profile是某项目空间中的一张含有敏感数据的表,它包含有100列,其中有5列包含敏感数据:id_card, credit_card, mobile, user_addr, birthday. 当前的DAC机制中已经授权了所有用户对该表的Select操作。ProjectOwner希望除了Admin之外,所有用户都不允许访问那5列敏感数据。

ProjectOwner操作步骤如下:

Alice是项目空间中的一员,由于业务需要,她要申请访问user_profile的mobile列的数据,需要访问1周时间。项目空间管理员操作步骤如下:

GRANT LABEL 2 ON TABLE user_profile TO USER alice WITH EXP 7;

更多关于列级别安全控制文档:https://help.aliyun.com/document_detail/34604.html

2、Role Policy管理自定义Role

很多用户会因为DataWorks内置的数据开发、运维、管理员等角色不能满足其个性化需求,会基于ACL创建符合自己业务逻辑的角色如数据分析师、ETL开发等,基于这些role如何进行复杂的授权,如批量授予ods_开头的表权限,但限制条件的,以及Deny类型的角色,这个时候就需要结合Role policy来精细化管理。

方式①:

Policy操作代码如下所示:

更多关于Policy的介绍以及操作详见文档:http://www.aiwanba.net/plugin/odps-doc/prddoc/odps_security/odps_sec_authorization_dac.html

方式②:

通过DataWorks-项目管理-MaxCompute配置-自定义用户角色中进行。

创建步骤:

MaxCompute JDBC 2.4针对数据安全加固做了一定的挑战,具体JDBC地址:https://github.com/aliyun/aliyun-odps-jdbc/releases

在JDBC中使用数据安全加固方案具体步骤:

作者:祎休

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();