本文介紹常見的自訂授權策略樣本。
授權策略樣本
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名稱>/*",
"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"
}
}
}
]
}
使用日誌應用所需的許可權
如果使用了以下日誌應用或功能,需要對子帳號或者角色授予相應的許可權。
通用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支援的Action和Resource列表,請參見鑒權規則。