如果系統權限策略不能滿足您的要求,您可以創建自定義權限策略實現最小授權。使用自定義權限策略有助于實現權限的精細化管控,是提升資源訪問安全的有效手段。本文介紹日志服務使用自定義權限策略的場景和策略示例。
什么是自定義權限策略
在基于RAM的訪問控制體系中,自定義權限策略是指在系統權限策略之外,您可以自主創建、更新和刪除的權限策略。自定義權限策略的版本更新需由您來維護。
創建自定義權限策略后,需為RAM用戶、用戶組或RAM角色綁定權限策略,這些RAM身份才能獲得權限策略中指定的訪問權限。
已創建的權限策略支持刪除,但刪除前需確保該策略未被引用。如果該權限策略已被引用,您需要在該權限策略的引用記錄中移除授權。
自定義權限策略支持版本控制,您可以按照RAM規定的版本管理機制來管理您創建的自定義權限策略版本。
操作文檔
常見自定義權限策略場景及示例
使用阿里云賬號授予RAM用戶以下權限:
RAM用戶具備當前阿里云賬號下的Project列表的查看權限。
滿足上述權限的權限策略如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": [
"acs:log:*:*:project/*"
],
"Effect": "Allow"
}
]
}
使用阿里云賬號授予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"
}
]
}
使用阿里云賬號授予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"
}
]
}
使用阿里云賬號授予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"
}
]
}
授予RAM用戶向指定Project寫入數據的權限,不包含查詢等其他操作權限。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Post*"
],
"Resource": "acs:log:*:*:project/<指定的project名稱>/*",
"Effect": "Allow"
}
]
}
授予RAM用戶向指定Logstore寫入數據的權限,不包含查詢等其他操作權限。
{
"Version":"1",
"Statement":[
{
"Effect":"Allow",
"Action":[
"log:PostLogStoreLogs"
],
"Resource":[
"acs:log:*:*:project/<指定的Project名稱>/logstore/<指定的Logstore名稱>"
]
}
]
}
授予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"
}
]
}
授予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"
}
]
}
授予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/*" ] } ] }
授權信息參考
使用自定義權限策略,您需要了解業務的權限管控需求,并了解日志服務的授權信息。詳細內容請參見授權信息。