您在使用RAM用户访问同账号或其他阿里云账号(跨账号)下的云资源时,需根据使用场景为RAM用户授权。同账号访问的云资源时,您需要为RAM用户授予AliyunADBSparkProcessingDataRole权限;跨账号访问云资源时,您需要为其他阿里云账号授权。本文介绍同账号授权和跨账号授权的详细步骤。
前提条件
已创建企业版及湖仓版集群。详情请参见创建集群。
Spark作业权限说明
提交Spark作业,需要具备以下三种权限。
AliyunADBFullAccess:管理AnalyticDB MySQL集群的权限。具体操作请参见为RAM子账号授权。
AnalyticDB MySQL库表的读写权限:AnalyticDB MySQL默认通过数据库账号进行库表权限管理。通过RAM用户提交Spark作业时,如果Spark作业需要读写数据,需要将数据库普通账号与RAM用户绑定。具体操作请参见绑定或解绑RAM用户与数据库账号。
AliyunADBSparkProcessingDataRole:用于授权AnalyticDB MySQL Spark访问其他云资源,如访问OSS目录,OTS数据等。具体操作请参见同账号授权。
同账号授权
同账号授权时,需先创建RAM用户。详情请参见创建RAM用户。
单击快速授权链接。
单击左下角同意授权,快速授予AliyunADBSparkProcessingDataRole权限。
授权后将自动创建可供AnalyticDB MySQL使用的服务角色AliyunADBSparkProcessingDataRole,AnalyticDB MySQL使用此角色来访问其他云资源。
仅支持使用阿里云账号(主账号)为RAM用户授权。
跨账号授权
本文以阿里云账号A(主账号,账号ID为testAccountID)跨账号访问阿里云账号B(主账号,账号ID为testAccountID1)中的数据为例,介绍跨账号授权的具体操作。
步骤1:为B账号创建RAM角色并授权
创建RAM角色,并允许A账号扮演该RAM角色。
说明如果您已创建RAM角色,并允许A账号扮演该RAM角色,可跳过该步骤,执行后续步骤。
使用阿里云账号B(主账号)或RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在角色页面,单击创建角色。
在创建角色页面,选择可信实体类型为阿里云账号,然后单击下一步。
设置角色信息。
设置角色名称,本示例角色名称设置为
admin-oss
。可选:输入备注。
信任的云账号选择其他云账号,然后输入A账号的阿里云账号UID(
testAccountID
)。
单击完成。
为RAM角色精确授权。
单击精确授权。
在精确授权面板,选择权限策略类型为系统策略或自定义策略,然后输入权限策略名称。
单击确定。
单击关闭。
修改信任策略,允许A账号下任意的RAM用户扮演该RAM角色。
在角色页面,单击对应的RAM角色名称。
在RAM角色的基本信息页面,单击信任策略管理页签。
单击修改信任策略。将下述代码复制至策略框中。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::testAccountID:root" ] } }, { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "testAccoun***@ads.aliyuncs.com" ] } } ], "Version": "1" }
步骤2:为A账号创建RAM用户并授予允许扮演RAM角色的权限
创建RAM用户。
创建权限策略,允许RAM用户扮演任何角色。
在权限管理>权限策略页面,单击创建权限策略。
在创建权限策略页面,选择脚本编辑,输入对应策略:
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow" } ] }
单击继续编辑基本信息,输入策略的名称和备注信息。
单击确定。
为RAM用户授权。
在用户页面,单击目标RAM用户操作列的添加权限。
您也可以选中多个RAM用户,单击用户列表下方的添加权限,为RAM用户批量授权。
在添加权限面板,为RAM用户添加步骤2所创建的权限。
单击确定。
单击完成。