本文介绍如何为RAM用户授予操作告警权限,并介绍在配置跨Project、地域和阿里云账号监控日志时,如何配置授权。
前提条件
已创建RAM用户。具体操作,请参见创建RAM用户。
授权RAM用户只读访问告警
方式一:授予系统权限策略
为RAM用户授予告警只读管理权限(AliyunLogReadOnlyAccess)。具体操作,请参见为RAM用户授权。
方式二:创建自定义权限策略进行授权
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略。
重要Project名称表示用于只读告警数据的Project,请根据实际情况替换。
sls-alert-*表示当前阿里云账号下所有的全局告警中心Project。全局告警中心Project中包含该账号下所有告警规则的评估数据、发送的日志和告警相关的全局报表等。如果您不需要查看全局报表信息,可以在资源列表中删除
acs:log:*:*:project/sls-alert-*/*
。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:GetLogStore" ], "Resource": [ "acs:log:*:*:project/Project名称/logstore/internal-alert-history", "acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log" ] }, { "Effect": "Allow", "Action": [ "log:GetJob", "log:ListJobs" ], "Resource": "acs:log:*:*:project/Project名称/job/*" }, { "Effect": "Allow", "Action": [ "log:GetProject" ], "Resource": [ "acs:log:*:*:project/sls-alert-*" ] }, { "Effect": "Allow", "Action": [ "log:GetLogStoreLogs", "log:ListLogStores", "log:GetIndex", "log:GetDashboard", "log:ListDashboard" ], "Resource": [ "acs:log:*:*:project/Project名称/*", "acs:log:*:*:project/sls-alert-*/*" ] }, { "Effect": "Allow", "Action": [ "log:GetResource", "log:ListResources", "log:GetResourceRecord", "log:ListResourceRecords" ], "Resource": [ "acs:log:*:*:resource/*" ] } ] }
为RAM用户添加创建的自定义权限策略。具体操作,请参见为RAM用户授权。
授权RAM用户管理告警
方式一:授予系统权限策略
为RAM用户授予日志服务管理权限(AliyunLogFullAccess)。具体操作,请参见为RAM用户授权。
方式二:创建自定义权限策略进行授权
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略。
重要Project名称表示用于管理告警数据的Project,请根据实际情况替换。
sls-alert-*表示当前阿里云账号下所有的全局告警中心Project。全局告警中心Project中包含该账号下所有告警规则的评估数据、发送的日志和告警相关的全局报表等。如果您只想授权RAM用户操作单个全局告警中心Project的权限,您可以将sls-alert-*配置为单个Project的名称,格式为
sls-alert-${uid}-${region}
,例如sls-alert-148****6461-cn-hangzhou
。创建Logstore、创建索引及更新索引的权限策略,用于RAM用户操作告警相关的系统日志库(告警历史日志库、全局告警中心日志库),从而进行告警历史等报表的查看。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:GetLogStore", "log:UpdateLogStore", "log:CreateLogStore", "log:CreateIndex", "log:UpdateIndex" ], "Resource": [ "acs:log:*:*:project/Project名称/logstore/internal-alert-history", "acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log" ] }, { "Effect": "Allow", "Action": [ "log:*" ], "Resource": "acs:log:*:*:project/Project名称/job/*" }, { "Effect": "Allow", "Action": [ "log:GetProject", "log:CreateProject" ], "Resource": [ "acs:log:*:*:project/sls-alert-*" ] }, { "Effect": "Allow", "Action": [ "log:GetLogStoreLogs", "log:ListLogStores", "log:GetIndex", "log:GetDashboard", "log:CreateDashboard", "log:UpdateDashboard", "log:ListDashboard" ], "Resource": [ "acs:log:*:*:project/Project名称/*", "acs:log:*:*:project/sls-alert-*/*" ] }, { "Effect": "Allow", "Action": [ "log:*" ], "Resource": [ "acs:log:*:*:resource/*" ] } ] }
为RAM用户添加创建的自定义权限策略。具体操作,请参见为RAM用户授权。
跨Project告警监控日志
配置授权
如果使用RAM用户配置监控规则,必须授权RAM用户操作告警。
添加查询统计。具体步骤,请参见创建告警监控规则。
授权方式支持三种配置,说明如下:
授权方式
说明
默认
默认授权支持告警监控规则对所属同一个Project下的日志库或指标库进行查询统计。
内置角色
内置角色授权支持告警监控规则对当前主账号下其他任意Project下的日志库或指标库进行查询统计。
自定义角色
自定义角色授权支持告警监控规则对当前或其他主账号下的特定Project下的日志库或指标库进行查询统计。
具体配置如下:
默认授权
在高级配置页签中,选择授权方式为默认。
内置角色授权
在高级配置页签中,将授权方式配置为内置角色。如果是首次配置,需要使用阿里云主账号按照页面提示完成授权。授权后,日志服务将创建名称为
AliyunSLSAlertMonitorRole
的RAM角色,日志服务将扮演此角色以读取源日志库中的数据。自定义角色授权(同账号)
对同一个阿里云账号下的不同日志库或指标库进行告警监控时,您可以通过自定义角色实现告警监控。
创建可信实体为阿里云服务的RAM角色,其中受信服务请选择日志服务。
创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略。
重要Project名称需根据实际情况替换。如果您需要更细粒度的授权,例如只允许在指定Project下创建监控规则,则可以在下述策略的
Resource
中指定具体的Project,例如acs:log:*:*:project/my-project
。{ "Statement": [ { "Action": [ "log:ListProject" ], "Effect": "Allow", "Resource": [ "acs:log:*:*:*" ] }, { "Action": [ "log:ListLogStores", "log:GetLogStoreLogs", "log:GetIndex" ], "Effect": "Allow", "Resource": [ "acs:log:*:*:project/Project名称/*" ] } ], "Version": "1" }
为RAM角色添加创建的自定义权限。具体操作,请参见为RAM角色授权。
后续操作
自定义角色授权(跨账号)
对跨阿里云账号下的不同日志库或指标库进行告警监控时,您可以通过自定义角色实现告警监控。例如在阿里云账号A中创建告警,监控阿里云账号B下的日志库或指标库。
在阿里云账号B进行以下操作:
创建可信实体为阿里云服务的RAM角色,其中受信服务请选择日志服务。
修改RAM角色的信任策略。具体操作,请参见修改RAM角色的信任策略。
重要请根据实际情况替换
阿里云账号A的ID
。您可以在账号中心中查看阿里云账号ID。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "阿里云账号A的ID@log.aliyuncs.com", "log.aliyuncs.com" ] } } ], "Version": "1" }
创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略。
重要将配置框中的原有脚本替换为如下内容。其中,Project名称需根据实际情况替换。如果您想要更细粒度的授权,例如只允许在指定Project下创建监控规则,则可以在下述策略的
Resource
中指定具体的Project,例如acs:log:*:*:project/my-project
。{ "Statement": [ { "Action": [ "log:ListProject" ], "Effect": "Allow", "Resource": [ "acs:log:*:*:*" ] }, { "Action": [ "log:ListLogStores", "log:GetLogStoreLogs", "log:GetIndex" ], "Effect": "Allow", "Resource": [ "acs:log:*:*:project/Project名称/*" ] } ], "Version": "1" }
为RAM角色添加创建的自定义权限。具体操作,请参见为RAM角色授权。
获取RAM角色标识(ARN),具体操作,请参见查看RAM角色。
后续操作
RAM用户授权
当告警监控规则跨Project、地域和阿里云账号监控目标时,如果需要使用RAM用户查询日志库或指标库,必须使用阿里云主账号为RAM用户添加如下权限策略,用于扮演相应的角色。为RAM用户授权的操作步骤,请参见为RAM用户授权。
{
"Version": "1",
"Statement": [
{
"Action": "ram:PassRole",
"Effect": "Allow",
"Resource": "*"
}
]
}