MaxCompute投递任务(新版)运行时,需要将读取到的Logstore中的数据投递到MaxCompute的表中,您可以授权MaxCompute投递任务(新版)扮演自定义RAM角色完成该操作。本文介绍在MaxCompute和日志服务Project同账号时,如何对自定义RAM角色进行授权。
前提条件
如果您使用的是RAM用户,请确保该用户具备操作RAM角色授权的权限。
将您的MaxCompute项目创建为DataWorks的MaxCompute数据源。更多信息,请参见创建MaxCompute数据源。
操作步骤
授予RAM角色对MaxCompute的写入权限后,MaxCompute投递任务可以使用该角色将Logstore中的数据写入到目标MaxCompute的表中。此处通过添加RAM角色为工作空间成员的方式完成授权。
创建RAM角色,例如
MaxComputeShipRole
。具体操作,请参见创建可信实体为阿里云服务的RAM角色。重要创建RAM角色时,信任主体类型应选择云服务,且信任主体名称应选择日志服务。
请检查角色的信任策略如下,
Service
内容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
修改RAM角色信任策略。具体操作,请参见修改RAM角色的信任策略。
将原有的信任策略替换为如下内容。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
添加RAM角色为工作空间成员。
登录DataWorks控制台。
在页面左上角,选择地域。
在左侧导航栏中,单击工作空间。在工作空间列表页面,单击目标工作空间对应的管理。
在工作空间页面的空间成员页签下,单击添加成员。
在添加成员对话框中,选中当前登录账号和目标RAM角色,完成添加。
此处需在批量设置角色中选中开发。更多信息,请参见授权给其他用户。
授予RAM角色操作MaxCompute表的权限。
登录MaxCompute控制台,在左上角选择地域。
选择
,在项目管理页面,单击目标项目操作列的管理。在MaxCompute项目管理页面,单击角色权限。
如果出现如下报错,您需要在阿里云主账号下将当前登录的RAM账号添加至目标MaxCompute项目,先在角色列表中单击admin对应的成员管理,然后在成员管理对话框中,选中当前登录RAM账号,根据页面提示完成添加。
在角色列表中,单击role_project_admin角色对应的成员管理。
在成员管理对话框中,选中当前登录账号和目标RAM角色账号,如
MaxComputeShipRole
。完成添加。在角色列表中,单击role_project_admin角色对应的编辑角色。
在编辑角色对话框的Table页签下,选择目标MaxCompute表,选中Describe、Alter和Update。
重要上述授权只针对指定的MaxCompute表。如果您希望目标角色可以操作当前MaxCompute空间项目下所有的表,则您可以为当前登录账号和目标角色添加admin角色权限。即在角色列表中,单击admin角色对应的成员管理,然后在成员管理对话框中,选中当前登录账号和目标角色,完成添加。
创建MaxCompute。
完成授权后,您可以在创建MaxCompute投递任务(新版)时,选择写MaxCompute授权为自定义角色,然后输入自定义RAM角色的ARN(如
acs:ram::10**12:role/maxcomputeshiprole
),即可授权MaxCompute投递任务(新版)使用自定义RAM角色将数据投递到MaxCompute表中。具体操作,请参见创建MaxCompute投递任务(新版)。