在使用錯誤診斷工具時,可能會遇到無許可權查詢其他帳號的API診斷資訊的情況。這將影響對API錯誤原因的分析及解決方案的擷取。本文將介紹如何通過帳號授權,以擷取查詢其他帳號API診斷資訊的許可權。
同一阿里雲帳號內
您可以為需要查看API診斷資訊的RAM使用者授予相應許可權,以便其能夠查看其他RAM使用者或RAM角色的API診斷資訊。
步驟一:建立自訂權限原則
-
使用主帳號或者具有Resource Access Management許可權的RAM使用者登入。
-
在左側導覽列,選擇許可權管理,單擊權限原則。
-
在權限原則頁面,單擊建立權限原則。
-
在建立權限原則頁面,單擊指令碼編輯頁簽。
指令碼編輯器中顯示預設的權限原則 JSON 模板,結構為:
Version為"1",Statement數組包含一個對象,其中Effect為"Allow",Action和Resource為空白數組,Condition為空白對象。 -
複製下面權限原則內容,單擊確定。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "openapiexplorer:GetRequestLog", "ram:DecodeDiagnosticMessage" ], "Resource": "*" } ] }說明該權限原則允許使用者查看阿里雲帳號下所有的API調用日誌及無許可權訪問的詳細資料。
-
輸入許可權策略名稱稱和備忘,單擊確定。
步驟二:為RAM使用者授權
您可以任選以下一種方式為RAM使用者授權:
-
給RAM使用者授權的操作步驟,請參見管理RAM使用者的許可權。
-
給RAM使用者組授權的操作步驟,請參見為RAM使用者組授權
步驟三:查看API診斷結果
訪問,輸入待查詢的RequestId,單擊診斷。
診斷結果顯示雲產品為Elastic Compute Service,ErrorCode 為 Forbidden.RAM,ErrorMessage 提示 RAM 使用者未被授權操作指定資源。診斷詳情表明操作身份為 RAM 使用者,鑒權操作為 ecs:ModifyInstanceAttribute,許可權判定為許可權不足。解決方案建議聯絡管理員授予相應系統策略,如 AliyunECSFullAccess、AliyunECSReadOnlyAccess 等,或建立自訂策略。
不同阿里雲帳號之間
當需要查看其他阿里雲帳號的API診斷資訊時,您可以通過角色扮演的方式獲得相應許可權。
帳號A:調用API報錯的帳號。
帳號B:需查看API診斷資訊的帳號。
-
帳號A建立RAM角色,並授權允許帳號B扮演。
-
帳號B建立RAM使用者,並授權該RAM使用者進行角色扮演。
-
帳號B通過RAM使用者扮演帳號A所提供的RAM角色,即可在錯誤診斷工具中成功完成跨帳號API診斷資訊的查詢。
步驟一:帳號A建立RAM角色並授權
-
建立RAM角色
使用帳號A登入RAM控制台,建立一個信任主體類型為雲帳號的RAM角色。更多資訊,請參見建立可信實體為阿里雲帳號的RAM角色。
說明在建立角色頁面信任主體名稱處,選擇其他雲帳號並填入帳號B的帳號ID(UID)。
-
建立自訂權限原則
具體操作步驟請參考步驟一:建立自訂權限原則。
-
為RAM角色授權
為RAM角色授予步驟2建立的自訂權限原則,具體操作,請參見管理RAM角色的許可權。
步驟二:帳號B建立RAM使用者並授權
-
建立RAM使用者
使用帳號B登入RAM控制台,建立一個RAM使用者。關於如何建立RAM使用者,請參見建立RAM使用者。
說明為了帳號安全,建議您根據實際情況為RAM使用者只配置一種訪問方式,將控制台訪問和程式訪問分離,避免混用。
本樣本中,登入名稱稱設定為
GetApiLogUser,顯示名稱設定為"用於查詢其他阿里雲帳號的API調用日誌",訪問方式同時勾選控制台訪問和使用永久 AccessKey 訪問。 -
為RAM使用者授權
在扮演RAM角色之前,需要為RAM使用者授予扮演RAM角色的許可權。使用帳號B為該RAM使用者授予
AliyunSTSAssumeRoleAccess許可權,以允許該RAM使用者扮演所有RAM角色。有關如何為RAM使用者授權的詳細資料,請參見管理RAM使用者的許可權。說明如果希望該RAM使用者僅能扮演指定的RAM角色,具體操作,請參見RAM角色和STS Token常見問題。
步驟三:扮演RAM角色並查看API診斷資訊
-
使用帳號B建立的RAM使用者訪問RAM使用者登入頁進行登入。
-
將滑鼠移至上方在右上方頭像的位置,單擊切換身份。
-
在角色切換頁面,輸入相關資訊後,請單擊提交進行登入。本樣本輸入的值為帳號A的帳號ID(UID)和RAM角色名稱。
-
查看API診斷資訊。
訪問,輸入待查詢的RequestId,單擊診斷。
診斷結果顯示雲產品為Elastic Compute Service,ErrorCode 為
Forbidden.RAM,ErrorMessage 為User not authorized to operate on the specified resource, or this API doesn't support RAM.。診斷詳情表明基於身份策略(資源群組級)未授權允許執行操作,許可權判定為許可權不足,操作身份為 RAM 使用者,鑒權操作為ecs:ModifyInstanceAttribute。當前登入身份為 GetApiLogRole(RAM 使用者)。