使用RAM用户创建数据加工任务时,您可以通过自定义角色完成同账号内的日志数据流转。
前提条件
- 已创建并获取源Logstore和目标Logstore的名称及Project名称。具体操作,请参见管理Logstore和管理Project。 
- 已创建RAM用户,并授予RAM用户数据加工操作权限。具体操作,请参见授予RAM用户数据加工操作权限。 
背景信息
同账号场景下,使用RAM用户创建数据加工任务,角色A需要具有源Logstore的读数据权限,角色B需要具有目标Logstore的写权限。该场景下的授权原理如下图所示。
步骤一:创建角色A
- 使用阿里云账号(主账号)或RAM管理员登录RAM控制台。 
- 创建角色A。 - 具体操作,请参见创建可信实体为阿里云服务的RAM角色。其中关键参数配置如下: - 关键参数 - 说明 - 选择可信实体类型 - 选择阿里云服务。 - 角色类型 - 选择普通服务角色。 - 角色名称 - 输入角色名称,例如role-A。 - 选择受信服务 - 选择日志服务。 
步骤二:为角色A授予读数据权限
- 使用阿里云账号(主账号)或RAM管理员登录RAM控制台。 
- 通过脚本编辑模式,创建自定义权限策略。该权限策略用于读取源Logstore中的数据。例如新建权限策略为ori_read。 - 具体操作,请参见创建自定义权限策略。其中关键参数配置如下: - 关键参数 - 说明 - 名称 - 输入自定义权限策略名称。例如ori_read。 - 策略内容 - 将配置框中的原有脚本替换为如下内容。 - 例如:源Project名称为log-project-prod,源Logstore名称为access_log。在实际场景中,请根据实际情况替换。 - { "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/log-project-prod/logstore/access_log", "acs:log:*:*:project/log-project-prod/logstore/access_log/*" ], "Effect": "Allow" } ] }
- 为角色A授予源Logstore读权限。 
- 获取RAM角色标识(ARN)。 - 在该角色A的基本信息中查看,例如 - acs:ram::1379******44:role/role-a。
步骤三:创建角色B
- 使用阿里云账号(主账号)或RAM管理员登录RAM控制台。 
- 创建角色B。 - 具体操作,请参见创建可信实体为阿里云服务的RAM角色。其中关键参数配置如下: - 关键参数 - 说明 - 选择可信实体类型 - 选择阿里云服务。 - 角色类型 - 选择普通服务角色。 - 角色名称 - 输入角色名称,例如role-B。 - 选择授信服务 - 选择日志服务。 
步骤四:为角色B授予写数据权限
- 使用阿里云账号(主账号)或RAM管理员登录RAM控制台。 
- 通过脚本编辑模式,创建自定义权限策略。该权限策略用于将数据加工结果写入到目标Logstore。例如新建权限策略为write。 - 具体操作,请参见创建自定义权限策略。其中关键参数配置如下: - 关键参数 - 说明 - 名称 - 输入自定义权限策略名称。例如write。 - 策略内容 - 将配置框中的原有脚本替换为如下内容。 - 例如:目标Project名称为log-project-prod,目标Logstore名称为access_log_output。在实际场景中,请根据实际情况替换。 - { "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output", "Effect": "Allow" } ] }
- 为角色B授予目标Logstore写权限。 
- 获取RAM角色标识(ARN)。 - 在该角色B的基本信息中查看,例如 - acs:ram::1379******44:role/role-b。
- 通过脚本编辑模式,创建自定义权限策略。该权限策略用于将数据加工结果写入到目标Logstore。例如新建权限策略为write。 - 具体操作,请参见创建自定义权限策略。其中关键参数配置如下: - 关键参数 - 说明 - 名称 - 输入自定义权限策略名称。例如write。 - 策略内容 - 将配置框中的原有脚本替换为如下内容。 - 例如:目标Project名称为log-project-prod,目标Logstore名称为access_log_output。在实际场景中,请根据实际情况替换。 - { "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output", "Effect": "Allow" } ] }
- 为角色B授予目标Logstore写权限。 
- 获取RAM角色标识(ARN)。 - 在该角色B的基本信息中查看,例如 - acs:ram::1379******44:role/role-b。
步骤五:使用RAM用户创建数据加工任务
- 使用RAM用户登录日志服务控制台。 
- 进入数据加工页面。 - 在Project列表区域,单击目标Project。 
- 在日志存储 > 日志库页签中,单击目标Logstore。 
- 在查询和分析页面,单击数据加工。 
 
- 在页面右上角,选择数据的时间范围。 - 请确保在原始日志页签中有日志数据。 
- 在编辑框中,输入数据加工语句。 - 加工语句的语法请参见数据加工语法。 
- 预览数据。 - 单击快速。 - 日志服务支持快速预览和高级预览。更多信息,请参见预览调试概述。 
- 单击预览数据。 - 查看预览结果。 - 如果加工语句错误或者权限配置错误,导致数据加工失败,请根据页面提示处理。 
- 如果确认数据加工结果无误,请执行步骤下一步。 
 
 
- 创建数据加工任务。 - 单击保存数据加工。 
- 在创建数据加工任务面板中,配置相关参数,然后单击确定。 - 其中,其他参数配置请参考数据加工快速入门。该场景中关键参数配置如下:  - 关键参数 - 说明 - 授权方式 - 选择自定义角色。 - 角色ARN - 输入角色A的ARN。例如 - acs:ram::1379******44:role/role-a。- 存储目标的授权方式 - 选择自定义角色。 - 角色ARN - 输入角色B的ARN。例如 - acs:ram::1379******44:role/role-b。
 - 数据加工任务创建成功并运行后,使用RAM用户创建的账号内数据流转任务完成。具体操作,请参见管理数据加工任务。