RAM自定义授权场景
本文介绍常见的自定义授权场景和授权策略。
控制台场景
- 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" } ] }
API场景
- 指定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" } } } ] }