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. 租户管理页面,单击用户管理
  4. 用户管理页签,待授权用户的角色列选择相应角色授予。
    选择角色

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

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

操作步骤

  1. 登录MaxCompute控制台,在左上角选择地域。
  2. 在左侧导航栏单击租户管理
  3. 租户管理页面,单击角色管理
  4. 角色管理页签,创建新的租户级角色或管理已有自定义角色的权限。
    说明 仅阿里云账号或者具备租户级别Super_Administrator和Admin角色的用户可操作租户级别权限管理。
    • 新增租户级角色
      1. 角色管理页签,单击新增角色
      2. 新增角色对话框,配置如下信息。
        参数名称 说明
        角色名称 新建账户级别角色的名称。在阿里云账号内唯一。命名需要满足如下要求:以字母开头。只能包含字母、下划线(_)或数字。长度为6~64个字符。
        policy内容 角色的权限策略。您可以直接在界面上根据策略模板编辑策略代码。
      3. 单击确定,完成新建租户级角色与授权。
    • 修改已有的已有租户级角色权限
      1. 角色管理页签,单击目标角色操作列的权限管理,修改Policy授权策略。
      2. 单击确定,完成已有角色的权限策略修改。
  5. 租户管理页面,单击用户管理,在待授权用户的角色列选择相应角色授予。

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角色添加租户角色,在 角色权限页签, 角色级别选择 租户,单击目标角色 操作列的 启用启用角色