本文介绍常见的自定义授权策略示例。
授权策略示例
Project列表的查看权限
例如使用阿里云账号授予RAM用户以下权限:
RAM用户具备当前阿里云账号下的Project列表的查看权限。
同时满足上述权限的权限策略如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": [
"acs:log:*:*:project/*"
],
"Effect": "Allow"
}
]
}
Project只读权限
例如使用阿里云账号授予RAM用户以下权限:
RAM用户具备当前阿里云账号下的Project列表的查看权限。
RAM用户具备当前阿里云账号下指定的Project的只读权限。
如果只授予Project只读权限,则该RAM用户仍无权限查看Project下的日志,还需授予Logstore只读权限。
同时满足上述权限的权限策略如下:
{
"Version": "1",
"Statement": [
{
"Action": ["log:ListProject"],
"Resource": ["acs:log:*:*:project/*"],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": "acs:log:*:*:project/<指定的Project名称>/*",
"Effect": "Allow"
}
]
}
指定Logstore的只读权限和快速查询的创建、使用权限
例如使用阿里云账号授予RAM用户以下权限:
RAM用户具备当前阿里云账号下的Project列表的查看权限。
RAM用户具备指定的Logstore的只读权限,同时具备创建并管理快速查询的权限。
同时满足上述权限的权限策略如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": "acs:log:*:*:project/*",
"Effect": "Allow"
},
{
"Action": [
"log:List*"
],
"Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/*",
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
],
"Effect": "Allow"
},
{
"Action": [
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<指定的Project名称>/dashboard",
"acs:log:*:*:project/<指定的Project名称>/dashboard/*"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*",
"log:Create*"
],
"Resource": [
"acs:log:*:*:project/<指定的Project名称>/savedsearch",
"acs:log:*:*:project/<指定的Project名称>/savedsearch/*"
],
"Effect": "Allow"
}
]
}
指定Logstore的只读权限及指定Project中快速查询和仪表盘的只读权限
例如使用阿里云账号授予RAM用户以下权限:
RAM用户具备当前阿里云账号下的Project列表的查看权限。
RAM用户具备指定的Logstore的只读权限,同时具备查看该Logstore所属的Project中所有的快速查询和仪表盘列表的权限。
同时满足上述权限的权限策略如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": "acs:log:*:*:project/*",
"Effect": "Allow"
},
{
"Action": [
"log:List*"
],
"Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/*",
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<指定的Project名称>/dashboard",
"acs:log:*:*:project/<指定的Project名称>/dashboard/*"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<指定的Project名称>/savedsearch",
"acs:log:*:*:project/<指定的Project名称>/savedsearch/*"
],
"Effect": "Allow"
}
]
}
指定Project的写入权限
授予RAM用户向指定Project写入数据的权限,不包含查询等其他操作权限。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Post*"
],
"Resource": "acs:log:*:*:project/<指定的project名称>/*",
"Effect": "Allow"
}
]
}
指定Logstore的写入权限
授予RAM用户向指定Logstore写入数据的权限,不包含查询等其他操作权限。
权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。
{
"Version":"1",
"Statement":[
{
"Effect":"Allow",
"Action":[
"log:PostLogStoreLogs"
],
"Resource":[
"acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
]
}
]
}
指定Project的消费权限
授予RAM用户消费指定Project数据的权限,不包含数据写入、查询等其他操作权限。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListShards",
"log:GetCursorOrData",
"log:GetConsumerGroupCheckPoint",
"log:UpdateConsumerGroup",
"log:ConsumerGroupHeartBeat",
"log:ConsumerGroupUpdateCheckPoint",
"log:ListConsumerGroup",
"log:CreateConsumerGroup"
],
"Resource": "acs:log:*:*:project/<指定的project名称>/*",
"Effect": "Allow"
}
]
}
指定Logstore的消费权限
授予RAM用户消费指定Logstore数据的权限,不包含数据写入、查询等其他操作权限。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListShards",
"log:GetCursorOrData",
"log:GetConsumerGroupCheckPoint",
"log:UpdateConsumerGroup",
"log:ConsumerGroupHeartBeat",
"log:ConsumerGroupUpdateCheckPoint",
"log:ListConsumerGroup",
"log:CreateConsumerGroup"
],
"Resource": [
"acs:log:*:*:project/<指定的project名称>/logstore/<指定的Logstore名称>",
"acs:log:*:*:project/<指定的project名称>/logstore/<指定的Logstore名称>/*"
],
"Effect": "Allow"
}
]
}
指定Logstore必须启用加密配置
授予RAM用户该权限策略后,RAM用户创建或者修改Logstore时必须指定加密配置。 未授予该权限策略的RAM用户,创建或修改Logstore时可以不指定加密配置。
您可以自行指定Project名称和Logstore名称,也可以用星号(*)进行模糊匹配。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:CreateLogStore",
"log:UpdateLogStore"
],
"Resource": [
"acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>",
"acs:log:*:*:project/<指定的project名称>/logstore/*"
],
"Condition": {
"Bool": {
"log:Encrypted": "true"
}
}
}
]
}
使用日志应用所需的权限
如果使用了以下日志应用或功能,需要对子账号或者角色授予相应的权限。
通用数据库审计
移动运维监控
Flowlog日志中心
日志分析 For AWS CloudTrail
SREWorks
通用主机审计
智能异常分析
应用自定义仪表盘
仪表盘演示列表
以下是使用日志应用所需的权限配置。
只读权限
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:GetResource", "log:ListResources", "log:GetResourceRecord", "log:ListResourceRecords" ], "Resource": [ "acs:log:*:*:resource/*" ] } ] }
管理权限
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:*" ], "Resource": [ "acs:log:*:*:resource/*" ] } ] }