文档

子账号授权

更新时间:

用户可选择的授权方式

  • 通过开通RAM子账号的方式,对子账号进行授权,提供该子账号的access key ID和secret。

授权子账号操作步骤

step1 开通RAM服务

在阿里云页面搜索框中搜索RAM,点击开通,进入控制台。

step2 下载配置客户端

MaxCompute的客户端详细介绍见:MaxCompute官方文档

1.下载,解压,进入目录,会有4个文件。

2

2.进入conf目录,修改odps_config.ini文件

(1) 阿里云文档中也有介绍,主要填充以下几个字段。

  • project_name:项目名称,在MaxCompute控制台中查询。

  • access_id: 项目使用的阿里云账号或RAM用户的AccessKey ID。

  • access_key: 项目使用的AccessKey ID对应的AccessKey Secret。

(2) 其它字段用默认值即可(具体可以参考客户端介绍文档,比较详细)。

3.进入bin目录,确认配置成功。

(1) 运行odpscmd,进行命令行。3

(2)执行 show tables;(注,命令要加上分号)确认结果是否与预期相符4

4.安装成功,退出。

step3 创建RAM子用户(user)

此步骤为创建要授权的子账号,为避免不必要的问题,请将这个子账号专门对接阿里智能推荐服务,不用授予文档中指定之外的权限。

阿里云官方参考文档(里面role和user的概念比较绕,可以先按本文档操作流程走完,感兴趣可以仔细了解)

1.进入控制台,在用户管理中栏中,点击创建用户。

5

2.根据您希望赋予子账号的情况进行选择。创建用户

step4 对子账号授权MaxCompute权限

1.在控制台用户中,点击添加权限。

8

2.搜索dataworks,进行授权。

9

step5 将子用户添加到MaxCompute的项目空间中

有两种方式,页面或者odps的cmd,建议走页面方式

页面方式:

阿里云官方参考文档

1.进入MaxCompute控制台,点击左侧“工作空间列表”-点击某个工作空间的“工作空间配置”-点击“更多配置”。

1011

2.在左侧的成员管理中添加成员。12

3.您可以通过odps的cmd验证一下:add user 注意,此时的username格式为RAM\$username13

odps cmd方式 在客户端执行 add user。

step6 创建MaxCompute中的角色role

支持页面和odps客户端两种方式创建,强烈建立走odps客户端方式(页面会有命名规则的冲突,比如页面可以有符号“-”,但是在odps授权时,会不识别这个符号)。

页面方式

见阿里云官方RAM文档。

odps cmd方式

执行命令 create role ; (不要忘记分号)。

14

step7 对创建的role进行policy授权

这一步只能通过odps的客户端授权。

1.本地编辑一个file,下面为获取read权限,替换项目名称即可 内容如下:

{
        "Version": "1",
        "Statement": [{
                "Effect": "Allow",
                "Action": [
                        "odps:List",
                        "odps:Read"
                ],
                "Resource": [
                        "acs:odps:*:projects/openrec_gray"
                ]
        },
      {
                "Effect": "Allow",
                "Action": [
                        "odps:Read",
                        "odps:Describe",
                        "odps:Select"
                ],
                "Resource": [
                        "acs:odps:*:projects/openrec_gray/tables/*"
                ]
        }]
}

2.如果用户要做个性化修改,可以参考上面的示范。

3.将该policy的策略生效到对应的role中:put policy on role ; (注意加分号,此时的roleName不用加任何的前缀)。15

4.验证是否生效:get policy on role16

step8 将角色role授权给子用户

只能通过odps的客户端完成。

grant to RAM\$;17

step9 完成

将以下参数传给我们

  • 子账户的access key id

  • 子账户的access key secret

  • MaxCompute中对应的表名称