创建数据加工规则时,支持通过配置阿里云主账号或RAM用户的访问密钥来读取源Logstore数据,并将加工数据写入到目标Logstore。本文介绍如何为RAM用户创建具备读写Logstore权限的访问密钥。
背景信息
日志服务数据加工任务运行分为如下三个步骤,其中步骤1和3需要访问Logstore。如果您使用主账号进行访问,则不需要单独配置访问权限。为了账号安全及细粒度权限控制,建议您通过主账号为RAM用户配置相应的权限。
- 读取源Logstore数据。
- 对源数据进行加工得到结果数据。
- 将结果数据写入到目标Logstore。
配置源Logstore访问密钥
- 使用主账号登录RAM控制台。
- 创建RAM用户,详情请参见创建RAM用户。在创建RAM用户时,访问方式请选择为编程访问,并保存AccessKey信息。说明
- RAM用户最多可以创建2个AccessKey。
- RAM用户创建AccessKey后,无法再通过控制台查看AccessKey Secret,请您妥善保存AccessKey Secret,谨防泄露。
- 创建从源Logstore读取数据的权限策略。
- 在左侧导航栏中,单击权限管理 > 权限策略管理。
- 单击创建权限策略。
- 在新建自定义权限策略页面中,配置如下参数,并单击确定。
参数 说明 策略名称 配置策略名称,本文以log-etl-source-reader-1-policy为例。 配置模式 选择脚本配置。 策略内容 将配置框中的原有脚本替换为如下内容。 - 精确授权。
例如:源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" } ] }
- 模糊匹配授权。
例如:源Project名称为log-project-dev-a、log-project-dev-b、log-project-dev-c等,源Logstore名称为app_a_log、app_b_log、app_c_log等,则使用模糊匹配授权。在实际场景中,请根据实际情况替换。更多授权场景请参见RAM自定义授权场景。
{ "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-dev-*/logstore/app_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log/*" ], "Effect": "Allow" } ] }
- 精确授权。
- 为RAM用户授予读取源Logstore的权限策略。
- 在左侧导航栏中,单击人员管理 > 用户。
- 找到目标RAM用户,单击添加权限。
- 选择自定义策略,并选中步骤3中创建的权限策略(本文以log-etl-source-reader-1-policy为例),单击确定。
配置目标Logstore访问密钥
- 使用主账号登录RAM控制台。
- 创建RAM用户,详情请参见创建RAM用户。在创建RAM用户时,访问方式请选择为编程访问,并保存AccessKey信息。说明
- RAM用户最多可以创建2个AccessKey。
- RAM用户创建AccessKey后,无法再通过控制台查看AccessKey Secret,请您妥善保存AccessKey Secret,谨防泄露。
- 创建将加工数据写入目标Logstore的权限策略。
- 在左侧导航栏中,单击权限管理 > 权限策略管理。
- 单击创建权限策略。
- 在新建自定义权限策略页面中,配置如下参数,并单击确定。
参数 说明 策略名称 配置策略名称,本文以log-etl-target-writer-1-policy为例。 配置模式 选择脚本配置。 策略内容 将配置框中的原有脚本替换为如下内容。 - 精确授权。
例如:目标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" } ] }
- 模糊匹配授权。
例如:目标Project名称为log-project-dev-a、log-project-dev-b、log-project-dev-c等,目标Logstore名称为app_a_log_output、app_b_log_output、app_c_log_output等,则使用模糊匹配授权。在实际场景中,请根据实际情况替换。更多授权场景请参见RAM自定义授权场景。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output", "Effect": "Allow" } ] }
- 精确授权。
- 为RAM用户授予写入Logstore的权限策略。
- 在左侧导航栏中,单击人员管理 > 用户。
- 找到目标RAM用户,单击添加权限。
- 选择自定义策略,并选中步骤3中创建的权限策略(本文以log-etl-target-writer-1-policy为例),单击确定。
后续步骤
