本文为您介绍如何实现将资源(表、UDF等)设置为仅能被指定的用户访问。此方法涉及数据的加密解密算法,属于数据安全管控范畴。
前提条件
背景信息
设置用户访问权限的常见方法有如下几种:
- Package方案,通过打包授权进行权限精细化管控。
Package用于解决跨项目空间的数据共享及资源授权问题。通过Package授予用户开发者角色后,用户拥有所有权限,风险不可控。详情请参见基于Package跨项目访问资源。
- 下图为DataWorks开发者角色的权限。
由上图可见,开发者角色对工作空间中的Package、Functions、Resources和Table默认有全部权限,不符合权限配置的要求。
- 下图为通过DataWorks添加子账号并赋予开发者角色的权限。
由此可见,通过打包授权和DataWorks默认的角色都不能满足特定用户访问指定UDF的需求。例如,授予子账号
RAM$xxxxx.pt@example.com:ramtest
开发者角色,则默认该子账号拥有当前工作空间中全部对象的所有操作权限,详情请参见用户授权。 - 下图为DataWorks开发者角色的权限。
- 在DataWorks中新建角色进行权限管控。
进入DataWorks的自定义用户角色进行权限管控。但是在MaxCompute高级配置中,只能针对某个表或项目进行授权,不能对资源和UDF进行授权。
页面,在左侧导航栏上单击 - Role Policy结合Project Policy实现指定用户访问指定UDF。
通过Policy可以精细化地管理具体用户对特定资源的具体权限粒度。说明 为了安全起见,建议初学者使用测试项目来验证Policy。
因此您可以通过Policy方案实现特定UDF被指定用户访问:
- 如果您不想让其他用户访问工作空间内具体的资源,在DataWorks中添加数据开发者权限后,再根据Role Policy的操作,在MaxCompute客户端将其配置为拒绝访问权限。
- 如果您需要指定用户访问指定资源,通过Role Policy在DataWorks中配置数据开发者权限后,再根据Project Policy的操作,在MaxCompute客户端将其配置为允许访问权限。
操作步骤
- 创建默认拒绝访问UDF的角色。
- 验证拒绝访问UDF的角色是否创建成功。
- 配置Project Policy。