通过控制台管理用户权限

MaxCompute支持用户在MaxCompute控制台通过角色为RAM账号(RAM用户、RAM角色)授予相应的MaxCompute权限。本文为您介绍各类权限的授权操作步骤与示例。

项目级管理类权限授权

MaxCompute项目级管理类权限主要包括进行项目安全配置、项目级用户与角色权限管理、Package管理、Label权限管控、清理过期权限等,更多信息请参见项目管理类权限一览表

操作步骤

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏选择工作区 > 项目管理

  3. 项目管理页面,单击目标项目操作列的管理

  4. 角色权限页签,您可以创建管理类(Admin)角色或修改已有的管理类(Admin)角色权限。

    说明

    默认只有阿里云账号(主账号)有权限对项目进行角色管理,如果您需要以RAM账号(RAM用户/RAM角色)进行,需要拥有对应项目的管理权限角色。

    • 创建管理类(Admin)角色

      1. 项目配置页面,单击角色权限

      2. 角色权限页签,单击新增项目级别角色

      3. 新建角色对话框,创建管理类(Admin)角色,填写Policy授权策略。新建admin

      4. 单击确定,完成新建角色与授权。

    • 修改已有的管理类(Admin)角色权限

      1. 项目配置页面,单击角色权限

      2. 角色权限页签,单击目标角色操作列的编辑角色,进行Policy授权策略修改。

      3. 单击确定,完成已有角色权限策略修改。

    相关Action及Resource取值请参见项目管理类权限一览表,授权语法请参见Policy概况。本文档依据管理模块提供部分Policy授权示例。

  5. 单击目标角色操作列的成员管理,在成员管理对话框可以查看角色成员、将角色赋予用户或将用户从角色里移除(即收回赋予用户的角色)。

Policy示例

说明
  • 同一模块的管理类权限一般会涉及多类操作及多类资源权限,因此示例中大多使用通配符*表达,实现一次操作对一组对象进行授权。

  • 相关Action及Resource取值请参见项目管理类权限一览表

  • 授权语法请参见Policy概况

  • 需要将示例中的project_name替换为待授权的MaxCompute项目名称。

  • 支持角色管理类权限的Policy示例。

    {
      "Statement": [
        {
          "Action": [
            "odps:*"
          ],
          "Effect": "Allow",
          "Resource": [
            "acs:odps:*:projects/project_name/authorization/roles",
            "acs:odps:*:projects/project_name/authorization/roles/*/*"
          ]
        }
      ],
      "Version": "1"
    }
  • 支持Package管理类权限的Policy示例。

    {
      "Statement": [
        {
          "Action": [
            "odps:*"
          ],
          "Effect": "Allow",
          "Resource": [
            "acs:odps:*:projects/project_name/authorization/packages",
            "acs:odps:*:projects/project_name/authorization/packages/*",
            "acs:odps:*:projects/project_name/authorization/packages/*/*/*"
          ]
        }
      ],
      "Version": "1"
    }
    说明

    在控制台进行Package管理依赖Project的list权限,因此需要先授予执行人当前Project的list权限,通过控制台的授权请参见项目级对象操作权限授权;通过命令行授权请参见通过命令管理用户权限

  • 支持修改项目安全配置的管理权限Policy示例。

    {
      "Statement":[
        {
          "Action":[
            "odps:*"
          ],
          "Effect":"Allow",
          "Resource":[
            "acs:odps:*:projects/project_name/authorization/configurations/*"
          ]
        }
      ],
      "Version":"1"
    }
  • 支持项目用户管理的Policy示例。

    {
      "Statement":[
        {
          "Action":[
            "odps:*"
          ],
          "Effect":"Allow",
          "Resource":[
            "acs:odps:*:projects/project_name/authorization/users"
          ]
        }
      ],
      "Version":"1"
    }
  • 支持所有管理类权限的Policy示例。

    {
      "Statement":[
        {
          "Action":[
            "odps:*"
          ],
          "Effect":"Allow",
          "Resource":[
            "acs:odps:*:projects/project_name/authorization/*"
          ]
        }
      ],
      "Version":"1"
    }

项目级对象操作权限授权

项目级对象操作权限主要包括对项目(Project)、表(Table)、函数(Function)、资源(Resource)等项目及项目内对象的操作权限,如CreateTable、CreateInstacne、SelectTable等。更多信息请参见项目及项目内对象权限一览表

操作步骤

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏选择工作区 > 项目管理

  3. 项目管理页面,单击目标项目操作列的管理

  4. 角色权限页签,您可以创建资源操作类(Resource)角色或修改已有的资源操作类(Resource)角色权限。

    说明

    默认只有阿里云账号有权限对项目进行角色管理,如果您需要以RAM账号(RAM用户/RAM角色)操作,需要拥有对应项目的管理权限角色。

    • 创建资源操作类(Resource)角色

      1. 项目配置页面,单击角色权限

      2. 角色权限页签,单击新增项目级别角色

      3. 新建角色对话框,创建资源操作类(Resource)角色,进行ACL授权或Policy授权策略填写。

      4. 单击确定,完成新建角色与授权。

    • 修改已有的资源操作类(Resource)角色权限

      1. 项目配置页面,单击角色权限

      2. 角色权限页签,单击目标角色操作列的编辑角色,进行ACL授权或Policy授权策略修改。

      3. 单击确定,完成已有角色权限策略修改。

    相关权限请参见项目及项目内对象权限一览表,授权语法请参见Policy概况。本文档提供控制台ACL及Policy授权示例,详情请参见项目级管理类权限授权

  5. 单击目标角色操作列的成员管理,在成员管理对话框可以查看角色成员、将角色赋予用户或将用户从角色里移除(即收回赋予用户的角色)。

授权示例

说明
  • 示例一:通过ACL方式为资源操作类(Resource)角色授予在项目(Project)中创建表(CreateTable)、创建实例(CreateInstance)、查看项目所有类型的对象列表(List)、读取所有表(Table)的元信息(Describe)和表数据(Select)的权限。

    • 授予在项目中创建表、创建实例以及查看所有对象列表权限。在项目中创建表

    • 授予读取所有表的元信息(Describe)和表数据(Select)的权限。表的授权

    说明

    提交的时候请不要关闭进度条或页面,否则授权将会中断。

  • 示例二:通过Policy方式为资源操作类(Resource)角色授予在项目(Project)中创建表(CreateTable)、创建实例(CreateInstance)、查看项目所有类型的对象列表(List)、读取所有表(Table)的元信息(Describe)和表数据(Select)的权限。

    {
        "Statement": [{
                "Action": ["odps:CreateTable","odps:CreateInstance","odps:List"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name"]},
            {
                "Action": ["odps:Describe","odps:Select"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name/tables/*"]}],
        "Version": "1"}
                        
  • 示例三:通过Policy方式为资源操作类(Resource)角色授予在项目内所有tmp开头的表(Table)的元信息(Describe)和表查询(Select),读取、更新所有资源,读取、更新所有函数的权限,并禁止删除所有表。

    {
        "Statement": [{
                "Action": ["odps:Describe","odps:Select"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name/tables/tmp_*"]},
            {
                "Action": ["odps:Read","odps:Write"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name/resources/*"]},
                {
                "Action": ["odps:Read","odps:Write"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name/functions/*"]},
                {
                "Action": ["odps:Drop"],
                "Effect": "Deny",
                "Resource": ["acs:odps:*:projects/project_name/tables/*"]}],
        "Version": "1"}

    如果项目开启了按Schema存储(Schema操作),则需将策略修改为:

    {
        "Statement": [{
                "Action": ["odps:Describe","odps:Select"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/tmp_*"]},
            {
                "Action": ["odps:Read","odps:Write"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name/schemas/*/resources/*"]},
                {
                "Action": ["odps:Read","odps:Write"],
                "Effect": "Allow",
                "Resource": ["acs:odps:*:projects/project_name/schemas/*/functions/*"]},
                {
                "Action": ["odps:Drop"],
                "Effect": "Deny",
                "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/*"]}],
        "Version": "1"}
                        

租户级别管理类权限授权

租户级别管理类权限指租户级别用户与角色权限管理,包括添加/删除租户用户、创建/删除租户级别角色、查看租户级别用户/角色列表及权限内容、将租户级别角色授予用户、取消用户被授予的租户级别角色、将租户级别角色添加至项目、移出项目内的租户级别角色等。

说明

仅阿里云账号或者具备租户级别Super_Administrator和Admin角色的用户可操作租户级别权限管理。

若希望授予RAM账号(RAM用户/RAM角色)管理类权限,仅支持通过阿里云账号赋予RAM账号Super_Administrator和Admin角色以实现权限授予。但租户级别Super_Administrator和Admin角色管理权限较大(具体权限请参见角色规划),请谨慎操作。租户级别角色信息请参见租户级别角色授权

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏选择租户管理 > 用户管理

  3. 用户管理页面,单击待授权用户操作列的修改角色,在编辑角色对话框选择相应角色授予。

租户级别对象操作权限授权

租户级别对象操作权限包括对租户级对象Quota和网络连接(Networklink)的操作。例如use quotaCreateNetworkLink等。租户级别对象操作还包括实现一账号管理多个Project对象,提升权限管理的便捷性。更多租户级别角色信息请参见租户级别角色授权

操作步骤

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏选择租户管理 > 角色管理

  3. 角色管理页面,创建新的租户级角色或管理已有自定义角色的权限。

    说明

    仅阿里云账号或者具备租户级别Super_Administrator和Admin角色的用户可操作租户级别权限管理。

    • 新增租户级角色

      1. 角色管理页面,单击新增角色

      2. 新增角色对话框,配置如下信息。

        参数名称

        说明

        角色名称

        新建账户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求:以字母开头。只能包含字母、下划线(_)或数字。长度为6~64个字符。

        policy内容

        角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。

      3. 单击确定,完成新建租户级角色与授权。

    • 修改已有的已有租户级角色权限

      1. 角色管理页面,单击目标角色操作列的权限管理,修改Policy授权策略。

      2. 单击确定,完成已有角色的权限策略修改。

  4. 用户管理页面,单击待授权用户操作列的修改角色,在编辑角色对话框选择相应角色授予。

Policy示例

说明
  • 示例一:为租户级角色授予所有Region下所有Quota的Usage操作及所有Networklinks的CreateNetworkLinkListExecute操作权限。

    {
        "Statement":[
          {
                "Action":[
                    "odps:Usage"
                ],
                "Effect":"Allow",
                "Resource":[
                    "acs:odps:*:regions/*/quotas/*"
                ]
          },
          {
                "Action":[
                    "odps:CreateNetworkLink",
                    "odps:List",
                    "odps:Execute"
                ],
                "Effect":"Allow",
                "Resource":[
                    "acs:odps:*:networklinks/*"
                ]
          }
        ],
        "Version":"1"
    }
                        
  • 示例二:为租户级角色授予MaxCompute项目project_1project_2的所有操作权限。

    {
        "Statement":[
            {
                "Action":[
                    "odps:*"
                ],
                "Effect":"Allow",
                "Resource":[
                    "acs:odps:*:projects/project_1",
                    "acs:odps:*:projects/project_1/*",
                    "acs:odps:*:projects/project_2",
                    "acs:odps:*:projects/project_2/*"
                ]
            }
        ],
        "Version":"1"
    }
    说明

    通过租户级别角色对Project对象授权后,需要将对应的租户级角色添加到Project中才会生效,因此需要Project的Owner或拥有Project Super_Administrator或Admin角色添加租户角色,在角色权限页签,角色级别选择租户,单击目标角色操作列的启用