本文以將單個命名空間授權給某個RAM使用者為例,介紹如何使用ACM的存取權限控制功能。
背景資訊
以往,當一個RAM使用者(或角色)被授予AliyunACMFullAccess授權策略時,即擁有ACM的完全操作許可權,包括對所有配置和所有命名空間的讀寫權限。由於RAM使用者之間的配置並未隔離,因誤操作或惡意操作造成的損失就可能會被放大,並造成嚴重後果。更重要的是,由於對所有授權使用者可見,資料庫帳號密碼等敏感配置面臨著泄露的安全風險。
現在,ACM提供了更細粒度的許可權控制,您可以按需為使用者指派最小許可權,達到為不同使用者(或角色)授予不同資源操作許可權的目的。對應RAM的授權策略,可以分為操作(Action)維度和資源(Resource)維度。
操作(Action)
- 讀:可以讀取Resource所指定範圍的配置,以及讀取命名空間基本資料,對應的RAM授權策略Action為
acms:R
。 - 寫:可以增加、刪除和修改Resource所指定範圍的配置,但無法增加、刪除和修改命名空間,對應的RAM授權策略Action為
acms:W
。 - 完全許可權:可以讀寫Resource所指定範圍的配置,並讀取命名空間基本資料。當Resource為
*
時,也可以增加、刪除和修改命名空間,對應的RAM授權策略Action為acms:*
。
資源(Resource)
授權資源的定義規則為acs:${service-name}:${region-id}:${resource-owner-id}:${resource-type}/${namespace_id}/${resource-name}
。
- 所有資源:對應的RAM授權策略Resource為
*
。 - 單個命名空間:例如命名空間為
1ca01ca0-11b0-1e01-0df1-d1010101bc10
,則對應的RAM授權策略Resource為*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10
。 - 單個命名空間下的某個Group:例如命名空間為
1ca01ca0-11b0-1e01-0df1-d1010101bc10
,Group為DEFAULT_GROUP
,則對應的RAM授權策略Resource為*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP
。 - 單個命名空間下的某個Group的特定配置項:例如命名空間為
1ca01ca0-11b0-1e01-0df1-d1010101bc10
,Group為DEFAULT_GROUP
,配置項的DataId為com.alibaba.acm.test
,則對應的RAM授權策略Resource為*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP/com.alibaba.acm.test
。
步驟一:建立RAM自訂授權策略
- 登入RAM控制台。
- 在左側導覽列的許可權管理菜單下,單擊權限原則管理。
- 在授權策略管理頁面左上方單擊建立權限原則。
- 在建立自訂權限原則頁面,選擇配置模式為指令碼配置。
- 在策略內容輸入框內輸入自訂的授權策略名稱稱、備忘和策略內容,並單擊確定。
例如,要為命名空間
1ca01ca0-11b0-1e01-0df1-d1010101bc10
配置讀寫權限,請在策略內容文字框中輸入以下內容:{ "Version": "1", "Statement": [ { "Action": [ "acms:*" ], "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10", "Effect": "Allow" } ] }
說明 關於建立RAM自訂授權策略的詳細步驟,請參考建立自訂權限原則。
步驟二:建立RAM使用者並授權
在使用者頁面,單擊建立使用者。
在建立使用者頁面的使用者帳號資訊地區,設定使用者基本資料。
登入名稱稱:可包含英文字母、數字、半形句號(.)、短劃線(-)和底線(_),最多64個字元。
顯示名稱:最多包含128個字元或漢字。
標籤:單擊,然後輸入標籤鍵和標籤值。為RAM使用者綁定標籤,便於後續基於標籤的使用者管理。
說明單擊添加使用者,可以大量建立多個RAM使用者。
- 在訪問方式地區下,選擇編程訪問,然後單擊確定。
在使用者資訊頁面會顯示建立使用者的AccessKey ID和AccessKeySecret,請記錄下來供後續步驟使用並妥善保管。
在使用者頁面,單擊目標RAM使用者操作列的添加許可權。
您也可以選中多個RAM使用者,單擊使用者列表下方的添加許可權,為RAM使用者大量授權。
- 在權限原則名稱右側的輸入框內,輸入步驟一:建立RAM自訂授權策略中產生的策略名稱稱。
- 單擊確定,然後關閉右側面板。
步驟三:登入RAM使用者並驗證許可權
- 返回到RAM控制台。
- 在概覽頁面上單擊帳號管理地區的登入連結,並以您建立的使用者登入。
- 訪問ACM控制台,驗證當前可以操作的只有剛剛設定授權策略中的命名空間。
更多樣本
- 授予單個命名空間(例如
1ca01ca0-11b0-1e01-0df1-d1010101bc10
)的唯讀許可權。{ "Version": "1", "Statement": [ { "Action": [ "acms:R" ], "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10", "Effect": "Allow" } ] }
- 授予單個命名空間(例如
1ca01ca0-11b0-1e01-0df1-d1010101bc10
)中單個Group(例如DEFAULT_GROUP
)的讀寫權限。{ "Version": "1", "Statement": [ { "Action": [ "acms:*" ], "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP", "Effect": "Allow" } ] }
- 授予單個命名空間(例如
1ca01ca0-11b0-1e01-0df1-d1010101bc10
)中多個Group(例如DEFAULT_GROUP
、DEFAULT_GROUP_1
)的唯讀許可權。{ "Version": "1", "Statement": [ { "Action": [ "acms:R" ], "Resource": [ "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP", "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP_1" ], "Effect": "Allow" } ] }
- 授予單個命名空間(例如1ca01ca0-11b0-1e01-0df1-d1010101bc10)中某個Group(例如DEFAULT_GROUP)下特定配置項(com.alibaba.acm.test)唯讀許可權。
{ "Version": "1", "Statement": [ { "Action": [ "acms:R" ], "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP/com.alibaba.acm.test", "Effect": "Allow" } ] }
- 授予所有命名空間中單個Group(例如DEFAULT_GROUP)的讀寫權限。
{ "Version": "1", "Statement": [ { "Action": [ "acms:*" ], "Resource": [ "*:*:*:*:cfg/*/DEFAULT_GROUP" ], "Effect": "Allow" } ] }
- 授予單個Region(例如杭州
cn-hangzhou
)單個命名空間(例如1ca01ca0-11b0-1e01-0df1-d1010101bc10
)的讀寫權限。{ "Version": "1", "Statement": [ { "Action": [ "acms:*" ], "Resource": [ "*:*:cn-hangzhou:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10" ], "Effect": "Allow" } ] }
備忘
- 只有當授權策略操作(Action)為
acms:*
並且資源(Resource)為*
時,被授予該授權策略的使用者(或角色)才能增加、刪除和修改命名空間。 - 由於存在緩衝機制,授權策略的添加和修改會延遲生效,但通常都會在10秒內生效。
- 通過ECS執行個體RAM角色訪問ACM時,授予如上所述授權策略,同樣可以實現細粒度的許可權控制。