本文介绍如何通过项目级别租户资源访问控制功能,为MaxCompute的租户级资源配置精细化的项目级访问权限。
功能背景
MaxCompute可使用的资源对象包括租户对象和项目级别对象。
租户资源对象:包括外部数据源、网络连接、自定义镜像及配额组,这些权限均由租户管理员通过RAM Policy控制。
项目级别对象:用户在项目中使用归属项目的对象,Schema、Table、Role、Instance、Resource、Function、View等,权限由项目管理员通过MaxCompute内的授权方案控制。
租户资源对象可以跨项目使用,默认情况下并不检查项目对租户资源对象的使用权限。如果租户资源对象的管理者不希望某个项目使用其创建的对象,则可以通过开启项目级别租户资源访问控制来制定租户资源和项目的授权关系。这是一种增强的访问控制方案,用户可以按需开启。
使用说明
对于租户对象是否有权被项目使用,以及在项目中使用租户对象的权限再分配,有如下两种安全管理模式,用户可以按照安全管理能力要求决定是否开启项目级别租户资源访问控制。
所有的租户资源对象,一起受项目级别租户资源访问控制开关的控制,打开开关则会对所有租户资源的所有对象进行权限检查。
目前此功能仅提供预览,暂不支持开启。如有需要,可提交工单。
模式一:开启项目级别租户资源访问控制
租户资源创建者可以通过设置资源与项目的挂载关系,指定哪些项目可以使用其创建的资源。
再由项目管理员通过授权方案对项目内部的用户授予使用资源的权限。
开启项目级别租户资源访问控制,即可以指定某些项目是否能够使用资源管理者的租户对象。目前暂无租户管理员强制所有项目都开启项目级别租户资源访问控制的开关。
模式二:不开启项目级别租户资源访问控制
任何项目内有权限运行任务的用户,都可以使用任务相关的租户资源。
即使租户资源创建者设置了资源与项目的挂载关系,或项目管理员通过Policy授权方案对项目内部的用户授予了资源的usage权限,在未开启项目级别租户资源访问控制的情况下,这些访问控制配置都不会生效。租户级别的Policy授权与该访问控制无关,仍然有效。
开启项目级别租户资源访问控制
开启项目级别租户资源访问控制,需要执行如下操作:
配置租户对象与项目的挂载关系:
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择配置对象( 、管理配置网络连接、管理配置外部数据源及管理配置镜像管理)。
单击目标对象操作列的增强访问控制,选择挂载的项目,完成挂载关系的配置。
挂载完成的租户对象查看方法:
在左侧导航栏选择,在项目管理页面,单击目标项目操作列的管理,进入该项目的项目配置页面。
在项目配置页面,选择参数配置页签。在权限属性区域,单击编辑。单击查看项目绑定租户资源,即可查看项目与网络连接、外部数据源、镜像及配额组的绑定情况。
对于已挂载到项目上的租户对象,进行Policy配置:
在左侧导航栏选择,在项目管理页面,单击目标项目操作列的管理,进入该项目的项目配置页面。
在项目配置页面,选择角色权限页签。选择目标项目级别角色,单击操作列的编辑角色。
在编辑角色对话框中,选择授权方式为Policy。
在Policy授权脚本框中修改角色Policy。
以计算Quota为例,项目
project_a内配置用户a可以使用Quota 500 CU的Policy如下:{ "Statement":[ { "Action":[ "odps:Usage" ], "Effect":"Allow", "Resource":[ "acs:odps:*:regions/*/quotas/500cu" ] } ], "Version":"1" }当
用户a具有project_a内租户资源使用权限后,才可以在开启项目级别租户资源访问控制模式下,进行用户或角色级别的租户资源使用权限控制。其他Policy配置,详情请参见Policy权限控制。