如果系統權限原則不能滿足您的要求,您可以建立自訂權限原則實現最小授權。使用自訂權限原則有助於實現許可權的精細化管控,是提升資源訪問安全的有效手段。本文介紹Log Service使用自訂權限原則的情境和策略樣本。
什麼是自訂權限原則
在基於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"
}
}
}
]
}
使用日誌應用所需的許可權
如果使用了以下日誌應用或功能,需要對子帳號或者角色授予相應的許可權。
通用Database Audit
移動營運監控
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/*" ] } ] }
授權資訊參考
使用自訂權限原則,您需要瞭解業務的許可權管控需求,並瞭解Log Service的授權資訊。詳細內容請參見授權資訊。