全部產品
Search
文件中心

:阿里雲ECS API 查詢類介面鑒權機制變更公告

更新時間:Sep 03, 2025

為降低許可權判斷複雜度,提升RAM使用者及角色調用介面時的許可權管理體驗,阿里雲ECS將於北京時間 2025年12月20日對查詢(Describe)類介面的鑒權機制進行升級,統一OpenAPI無許可權調用時的返回標準,包括不限於SDK、CLI以及Terraform等調用方式。

變更時間

北京時間 2025年12月20日

影響地區

全部地區

變更內容

對於ECS產品的查詢(Describe)類介面,在使用RAM使用者及角色調用時,如缺乏對應的資源操作介面許可權,介面返回將由HttpCode:200(OK)的空資源清單升級為HttpCode:403(Forbidden)的錯誤響應(鑒權不通過)。

變更前後對比

對比項

升級前

升級後

返回結果

空資源清單(HTTP 200)

鑒權失敗(HTTP 403)

錯誤碼

返回 Forbidden.RAM 錯誤碼

錯誤資訊

User not authorized to operate on the specified resource, or this API doesn't support RAM. 或類似錯誤資訊

診斷資訊

AccessDeniedDetail欄位

DescribeInstances介面為例,如無ecs:DescribeInstances許可權調用時,升級前後返回結果如下:

升級前

升級後

{
  "RequestId": "ABCD-1234-1234-ABCD",
  "Instances": {
    "Instance": []
  },
  "NextToken": "",
  "PageNumber": 1,
  "PageSize": 10,
  "TotalCount": 0
}
{
  "RequestId": "ABCD-1234-1234-ABCD",
  "HostId": "ecs.cn-hangzhou.aliyuncs.com",
  "Code": "Forbidden.RAM",
  "Message": "User not authorized to operate on the specified resource, or this API doesn't support RAM.",
  "Recommend": "https://api.aliyun.com/troubleshoot?q=Forbidden.RAM&product=Ecs&requestId=ABCD-1234-1234-ABCD",
  "AccessDeniedDetail": {
    "AuthAction": "ecs:DescribeInstances",
    ...
  }
}

涉及API清單

產品

API版本

介面名稱

Ecs

2014-05-26

DescribeInstances

Ecs

2014-05-26

DescribeDisks

SDK調用適配

在代碼中捕獲該異常進行相應的處理:Exception中會包含一個欄位AccessDeniedDetail,用來描述許可權失敗的詳細原因,可以通過getAccessDeniedDetail()方法擷取。以Java語言為例:

V1.0 Java SDK樣本

// 產生的 SDK 的 Request
DescribeXXXRequest request = new DescribeXXXRequest();
try {
    DescribeXXXResponse response = client.getAcsResponse(request);
} catch (ServerException e) {
    // 列印錯誤碼
    System.out.println(e.getErrCode());
} catch (ClientException e) {
    // 列印錯誤碼,無許可權報錯此次輸出為“Forbidden.RAM”
    System.out.println(e.getErrCode());
    // 擷取許可權失敗的詳細原因
    System.out.println(e.getAccessDeniedDetail());
}

V2.0 Java SDK樣本

DescribeXXXRequest request = new DescribeXXXRequest();
try {
    client.describeXXX(request);
} catch (TeaException e) {
    // 列印錯誤碼,無許可權報錯此次輸出為“Forbidden.RAM”
    System.out.println(e.getErrCode());
    // 擷取許可權失敗的詳細原因
    System.out.println(e.getAccessDeniedDetail());
}

其他語言及不同版本SDK調用適配:

語言

版本

適配文檔連結

Python

V1.0

異常處理

V2.0

異常處理

PHP

V1.0

異常處理

V2.0

異常處理

Node.js

V1.0

異常處理

V2.0

異常處理

.NET

V1.0

異常處理

V2.0

異常處理

Go

V2.0

異常處理

說明

V1.0 Go SDK已停止支援,詳情請參考宣布將於 2025 年 3 月 1 日終止對阿里雲 V1.0 Golang SDK 支援,請使用V2.0 Go SDK

解決方案與支援

許可權診斷排查

在許可權報錯時,返回結果中會帶有AccessDeniedDetail欄位,通過該欄位可以獲得許可權拒絕的詳細資料,可通過下面任意一個途徑進行解析:

更多資訊,請參見如何排查無許可權的訪問錯誤

許可權配置建議

必要操作許可權

如果確認此許可權為必要操作許可權,請聯絡您的主帳號或許可權管理員,對上述診斷結果涉及的許可權(AuthAction)進行為RAM使用者授權或者為RAM角色授權

相容性處理

如果需要對報錯請求進行捕獲識別,請try...catch對應的異常,判斷錯誤碼是否為Forbidden.RAM,此錯誤碼代表子帳號缺少RAM許可權。