如果系統權限策略不能滿足您的要求,您可以創建自定義權限策略實現最小授權。使用自定義權限策略有助于實現權限的精細化管控,是提升資源訪問安全的有效手段。本文介紹ARMS應用監控如何使用自定義權限策略。
什么是自定義權限策略
在基于RAM的訪問控制體系中,自定義權限策略是指在系統權限策略之外,您可以自主創建、更新和刪除的權限策略。自定義權限策略的版本更新需由您來維護。
創建自定義權限策略后,需為RAM用戶、用戶組或RAM角色綁定權限策略,這些RAM身份才能獲得權限策略中指定的訪問權限。
已創建的權限策略支持刪除,但刪除前需確保該策略未被引用。如果該權限策略已被引用,您需要在該權限策略的引用記錄中移除授權。
自定義權限策略支持版本控制,您可以按照RAM規定的版本管理機制來管理您創建的自定義權限策略版本。
操作文檔
前提條件
2022年04月01日0點之后開通ARMS的阿里云賬號默認支持此功能,2022年04月01日0點之前開通ARMS的阿里云賬號需要提交工單開通此功能。
在創建自定義授權策略時,您需要了解授權策略語言的基本結構和語法。更多信息,請參見權限策略基本元素。
已為RAM用戶添加系統權限策略ReadOnlyAccess或AliyunARMSReadOnlyAccess,用于登錄ARMS控制臺。
重要為了實現對ARMS所有功能的只讀權限,除了添加AliyunARMSReadOnlyAccess權限策略外,還需要為特定的資源組配置ReadTraceApp權限,否則ARMS將無法展示資源組鑒權下的應用列表。
請確認RAM用戶沒有添加系統權限策略AliyunARMSFullAccess。
背景信息
ARMS提供粗粒度的系統授權策略,如果這種粗粒度授權策略不能滿足您的需要,那么您可以創建自定義授權策略。例如,您想控制RAM用戶對某個具體應用的操作權限,您必須使用自定義授權策略才能滿足這種細粒度要求。
步驟一:創建自定義權限策略
使用RAM管理員登錄RAM控制臺。
在左側導航欄,選擇 。
在權限策略頁面,單擊創建權限策略。
在創建權限策略頁面,單擊腳本編輯頁簽。在策略文檔中編寫您的授權策略內容。
授權策略內容中各元素說明,請參見權限策略元素說明。
示例:杭州地域標簽為
key0: value01
或key0: value02
應用的只讀權限。{ "Version": "1", "Statement": [ { "Action": [ "arms:ReadTraceApp" ], "Resource": "acs:arms:cn-hangzhou:*:armsapp/*", "Effect": "Allow", "Condition": { "StringEquals": { "arms:tag/key0":[ "value01", "value02" ] } } } ] }
單擊頁面上方的可選:高級策略優化,然后單擊執行,對權限策略內容進行高級優化。
高級權限策略優化功能會完成以下任務:
拆分不兼容操作的資源或條件。
收縮資源到更小范圍。
去重或合并語句。
在創建權限策略頁面,單擊確定。
在創建權限策略對話框,輸入權限策略名稱和備注,然后單擊確定。
步驟二:添加權限策略
為RAM用戶添加權限策略
使用RAM管理員登錄RAM控制臺。
在左側導航欄,選擇 。
在用戶頁面,單擊目標RAM用戶操作列的添加權限。
您也可以選中多個RAM用戶,單擊用戶列表下方的添加權限,為RAM用戶批量授權。
在新增授權面板,為RAM用戶添加權限。
選擇資源范圍。
賬號級別:權限在當前阿里云賬號內生效。
資源組級別:權限在指定的資源組內生效。
重要指定資源組授權生效的前提是該云服務及資源類型已支持資源組,詳情請參見支持資源組的云服務。資源組授權示例,請參見使用資源組限制RAM用戶管理指定的ECS實例。
選擇授權主體。
授權主體即需要添加權限的RAM用戶。系統會自動選擇當前的RAM用戶。
選擇權限策略。
權限策略是一組訪問權限的集合,分為以下兩種。支持批量選中多條權限策略。
單擊確認新增授權。
單擊關閉。
為RAM角色添加權限策略
使用RAM管理員登錄RAM控制臺。
在左側導航欄,選擇 。
在角色頁面,單擊目標RAM角色操作列的新增授權。
您也可以選中多個RAM角色,單擊角色列表下方的新增授權,為RAM角色批量授權。
在新增授權面板,為RAM角色授權。
選擇資源范圍。
賬號級別:權限在當前阿里云賬號內生效。
資源組級別:權限在指定的資源組內生效。
說明指定資源組授權生效的前提是該云服務及資源類型已支持資源組,詳情請參見支持資源組的云服務。
選擇授權主體。
授權主體即需要添加權限的RAM角色。系統會自動選擇當前的RAM角色。
選擇權限策略。
權限策略是一組訪問權限的集合。支持批量選中多條權限策略。
單擊確認新增授權。
單擊關閉。
為RAM角色添加權限策略后,您可以使用RAM角色登錄ARMS控制臺。具體操作,請參見扮演RAM角色。
權限策略元素說明
效果(Effect)
授權效果包括兩種:允許(Allow)和拒絕(Deny)。
操作(Action)
Action | 權限說明 |
arms:ReadTraceApp | 應用監控只讀權限,用于查看應用概覽、接口調用、應用診斷等信息。 |
arms:EditTraceApp | 應用監控編輯權限,即應用自定義配置和設置自定義參數的權限。 |
arms:DeleteTraceApp | 應用監控刪除權限,即刪除應用的權限。 |
資源(Resource)
用于指定被授權的具體對象。
格式如下:
"Resource": [
"acs:arms:<regionid>:*:armsapp/<appname>"
]
請將
<regionid>
替換為指定地域ID。如果當前授權針對所有地域,可替換為*
。請將
<appname>
替換指定應用名稱。如果當前授權針對所有應用,可替換為*
;如果當前授權針對的應用名稱擁有相同前綴,可替換為名稱前綴*
,例如k8s*
。
條件(Condition)
條件塊(Condition Block)由一個或多個條件子句構成。一個條件子句由條件操作類型、條件關鍵字和條件值組成。
邏輯說明:
條件滿足:一個條件關鍵字可以指定一個或多個值,在條件檢查時,如果條件關鍵字的值與指定值中的某一個相同(OR),即可判定條件滿足。
條件子句滿足:同一條件操作類型的條件子句下,若有多個條件關鍵字,所有條件關鍵字必須同時滿足(AND),才能判定該條件子句滿足。
條件塊滿足:條件塊下的所有條件子句同時滿足(AND)的情況下,才能判定該條件塊滿足。
應用監控支持通過標簽鍵值對指定被授權的對象。設置應用標簽的操作,請參見標簽管理。
標簽鍵值對支持的條件操作類型:
StringEquals
StringNotEquals
StringEqualsIgnoreCase
StringNotEqualsIgnoreCase
StringLike
StringNotLike
條件關鍵字:arms:tag。
條件關鍵值:標簽鍵值對。
示例:對標簽鍵值對等于key0: value01
或key0: value02
的應用授權。
"Condition": {
"StringEquals": { //條件操作類型。
"arms:tag/key0":[ //條件關鍵字
"value01", //條件關鍵值
"value02"
]
}
}
授權信息參考
使用自定義權限策略,您需要了解業務的權限管控需求,并了解ARMS的授權信息。詳細內容請參見授權信息。