如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍日志服务使用自定义权限策略的场景和策略示例。
什么是自定义权限策略
在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。
创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。
已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。
自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。
操作文档
常见自定义权限策略场景及示例
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写入数据的权限,不包含查询等其他操作权限。
{
"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/*" ] } ] }
授权信息参考
使用自定义权限策略,您需要了解业务的权限管控需求,并了解日志服务的授权信息。详细内容请参见授权信息。