用户可选择的授权方式
通过开通RAM子账号的方式,对子账号进行授权,提供该子账号的access key ID和secret。
授权子账号操作步骤
step1 开通RAM服务
在阿里云页面搜索框中搜索RAM,点击开通,进入控制台。
step2 下载配置客户端
MaxCompute的客户端详细介绍见:MaxCompute官方文档
1.下载,解压,进入目录,会有4个文件。
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,进行命令行。
(2)执行 show tables;(注,命令要加上分号)确认结果是否与预期相符
4.安装成功,退出。
step3 创建RAM子用户(user)
此步骤为创建要授权的子账号,为避免不必要的问题,请将这个子账号专门对接阿里智能推荐服务,不用授予文档中指定之外的权限。
阿里云官方参考文档(里面role和user的概念比较绕,可以先按本文档操作流程走完,感兴趣可以仔细了解)。
1.进入控制台,在用户管理中栏中,点击创建用户。
2.根据您希望赋予子账号的情况进行选择。
step4 对子账号授权MaxCompute权限
1.在控制台用户中,点击添加权限。
2.搜索dataworks,进行授权。
step5 将子用户添加到MaxCompute的项目空间中
有两种方式,页面或者odps的cmd,建议走页面方式
页面方式:
1.进入MaxCompute控制台,点击左侧“工作空间列表”-点击某个工作空间的“工作空间配置”-点击“更多配置”。
2.在左侧的成员管理中添加成员。
3.您可以通过odps的cmd验证一下:add user 注意,此时的username格式为RAM\$username
odps cmd方式 在客户端执行 add user。
step6 创建MaxCompute中的角色role
支持页面和odps客户端两种方式创建,强烈建立走odps客户端方式(页面会有命名规则的冲突,比如页面可以有符号“-”,但是在odps授权时,会不识别这个符号)。
页面方式
见阿里云官方RAM文档。
odps cmd方式
执行命令 create role ; (不要忘记分号)。
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不用加任何的前缀)。
4.验证是否生效:get policy on role
step8 将角色role授权给子用户
只能通过odps的客户端完成。
grant to RAM\$;
step9 完成
将以下参数传给我们
子账户的access key id
子账户的access key secret
MaxCompute中对应的表名称