日志服务支持使用默认角色AliyunLogETLRole或自定义角色创建定时SQL任务。本文介绍如何授权自定义RAM角色分析和写入Logstore。
授予自定义RAM角色分析源Logstore的权限
使用阿里云账号(主账号)或RAM管理员登录源Logstore所在阿里云的RAM控制台。
创建一个RAM角色,例如命名为:
QueryLogstoreRole
。具体操作,请参见创建可信实体为阿里云服务的RAM角色。重要创建RAM角色时,必须选择可信实体类型为阿里云服务,且必须选择受信服务为日志服务。
请检查角色的信任策略如下,
Service
内容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
创建一个自定义权限策略,例如命名为:
QueryLogstorePolicy
。该策略具备分析源Logstore日志的权限。具体操作,请参见通过脚本编辑模式创建自定义权限策略。其中在脚本编辑页签,您可选择使用精确授权或模糊匹配授权脚本替换配置框中的原有内容。
精确授权
脚本中的
{project-name}
和{logstore-name}
请根据实际情况替换。重要权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。
{ "Version":"1", "Statement":[ { "Action":[ "log:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/{project-name}/logstore/{logstore-name}" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/{project-name}" ], "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" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*" ], "Effect":"Allow" } ] }
为RAM角色
QueryLogstoreRole
授予自定义权限策略QueryLogstorePolicy
。具体操作,请参见为RAM角色授权。
后续操作
授予自定义RAM角色写目标Logstore的权限
使用阿里云账号(主账号)或RAM管理员登录目标Logstore所在阿里云的RAM控制台。
创建一个RAM角色,例如命名为:
WriteLogstoreRole
。具体操作,请参见创建可信实体为阿里云服务的RAM角色。重要创建RAM角色时,必须选择可信实体类型为阿里云服务,且必须选择受信服务为日志服务。
请检查角色的信任策略如下,
Service
内容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
创建一个自定义权限策略,例如命名为:
WriteLogstorePolicy
。该策略具备写入数据到目标Logstore的权限。具体操作,请参见通过脚本编辑模式创建自定义权限策略。其中在脚本编辑页签,您可选择使用精确授权或模糊匹配授权脚本替换配置框中的原有内容。
精确授权
脚本中的
{project-name}
和{logstore-name}
请根据实际情况替换。重要权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。
{ "Version": "1", "Statement": [ { "Action": [ "log:PostLogStoreLogs", "log:PostProjectQuery", "log:BatchPostLogStoreLogs" ], "Resource": "acs:log:*:*:project/{project-name}/logstore/{logstore-name}", "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" } ] }
为RAM角色
WriteLogstoreRole
授予自定义权限策略WriteLogstorePolicy
。具体操作,请参见为RAM角色授权。(可选)如果源Logstore和目标Logstore不在同一个阿里云账号,您还需要修改RAM角色
WriteLogstoreRole
的信任策略。在RAM角色列表中,单击RAM角色
WriteLogstoreRole
。在信任策略页签中,单击编辑信任策略。并使用以下脚本替换配置框中的原有内容。
重要请根据实际情况替换
{源Logstore所属阿里云账号的ID}
。您可以在账号中心查看阿里云账号ID。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "{源Logstore所属阿里云账号的ID}@log.aliyuncs.com" ] } } ], "Version": "1" }