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