日志服务定时SQL任务运行时,将在源Logstore中执行SQL分析操作,并将分析结果保存到目标存储中。您可以授予日志服务使用自定义角色来完成以上操作。如果源Logstore和目标Logstore不属于同一个阿里云账号,您可参考本文档完成授权操作。定时SQL任务支持Logstore和MetricStore,本文以Logstore为例进行说明。
前提条件
已在阿里云账号A下创建RAM角色a,在账号B下创建RAM角色b。具体操作,请参见步骤一:创建RAM角色。
步骤一:授予账号A下的RAM角色a分析源Logstore的权限
授予账号A下的RAM角色a分析源Logstore的权限后,定时SQL任务可以使用该角色在账号A下的Logstore中执行SQL分析操作。
- 使用账号A登录RAM控制台。
- 创建具备分析源Logstore日志权限的策略。
- 在左侧导航栏,选择权限管理 > 权限策略。
- 单击创建权限策略。
- 在新建自定义权限策略页面中,配置如下参数,并单击确定。
参数 说明 策略名称 配置策略名称。例如log-scheduled-sql-policy。 配置模式 选择脚本配置。 策略内容 将配置框中的原有脚本替换为如下内容。 - 精确授权。 例如源Project名称为log-project-prod,源Logstore名称为website_log。在实际场景中,请根据实际情况替换Project名称和Logstore名称。重要 权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。
{ "Version":"1", "Statement":[ { "Action":[ "log:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-prod/logstore/website_log", "acs:log:*:*:project/log-project-prod/logstore/website_log/*" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-prod" ], "Effect":"Allow" } ] }
- 模糊匹配授权。 例如源Project名称为log-project-dev-a、log-project-dev-b、log-project-dev-c等,源Logstore名称为website_a_log、website_b_log、website_c_log等,则您可以使用模糊匹配授权。在实际场景中,请根据实际情况替换Project名称和Logstore名称。
{ "Version":"1", "Statement":[ { "Action":[ "log:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log/*" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*" ], "Effect":"Allow" } ] }
- 精确授权。 例如源Project名称为log-project-prod,源Logstore名称为website_log。在实际场景中,请根据实际情况替换Project名称和Logstore名称。重要 权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。
- 为RAM角色a授权。
- 在左侧导航栏中,选择身份管理 > 角色。
- 单击RAM角色a对应的添加权限。
- 选择自定义策略,并选中步骤2中创建的权限策略(例如log-scheduled-sql-policy),单击确定。
- 确认授权结果,单击完成。
- 获取RAM角色a的ARN。在该角色的基本信息中查看,例如acs:ram::11****27:role/logsource。请记录该信息,如果您在创建定时SQL任务时使用的是自定义角色,则需要输入该信息。
步骤二:授予账号B下的RAM角色b写目标Logstore的权限
授予账号B下的RAM角色b写目标Logstore的权限后,定时SQL任务可以使用该角色将账号A下的SQL分析结果写入到账号B下的Logstore中。
- 使用账号B登录RAM控制台。
- 创建具备写目标Logstore权限的策略。
- 在左侧导航栏,选择权限管理 > 权限策略。
- 单击创建权限策略。
- 在新建自定义权限策略页面中,配置如下参数,并单击确定。
参数 说明 策略名称 配置策略名称。例如log-sink-write-policy。 配置模式 选择脚本配置。 策略内容 将配置框中的原有脚本替换为如下内容。 - 精确授权。 例如目标Project名称为log-project-prod,目标Logstore名称为website_log_output。在实际场景中,请根据实际情况替换Project名称和Logstore名称。 重要 权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/website_log_output", "Effect": "Allow" } ] }
- 模糊匹配授权。 例如目标Project名称为log-project-dev-a、log-project-dev-b、log-project-dev-c等,目标Logstore名称为website_a_log_output、website_b_log_output、website_c_log_output等,则您可以使用模糊匹配授权。在实际场景中,请根据实际情况替换Project名称和Logstore名称。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log_output", "Effect": "Allow" } ] }
- 精确授权。 例如目标Project名称为log-project-prod,目标Logstore名称为website_log_output。在实际场景中,请根据实际情况替换Project名称和Logstore名称。 重要 权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。
- 为RAM角色b授权。
- 在左侧导航栏中,选择身份管理 > 角色。
- 单击目标RAM角色b对应的添加权限。
- 选择自定义策略,并选中步骤2中创建的权限策略(例如log-sink-write-policy),单击确定。
- 确认授权结果,单击完成。
- 修改RAM角色b的信任策略。
- 在RAM角色列表中,单击RAM角色b。
- 在信任策略管理页签中,单击修改信任策略。
- 修改信任策略。
在Service配置项中添加阿里云账号A的ID,并根据实际情况替换该值。您可以在账号中心查看阿里云账号ID。
该策略表示账号A有权限通过日志服务获取临时Token来操作账号B中的资源。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "阿里云账号A的ID@log.aliyuncs.com" ] } } ], "Version": "1" }
- 获取RAM角色b的ARN。在该角色的基本信息中查看,例如acs:ram::13****44:role/logtarget。请记录该信息,如果您在创建定时SQL任务时使用的是自定义角色,则需要输入该信息。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:http://www.yunxiaoer.com/164056.html