すべてのプロダクト
Search
ドキュメントセンター

:Alibaba Cloud ECS クエリ API 操作の認証メカニズムの変更に関するお知らせ

最終更新日:Sep 26, 2025

Resource Access Management (RAM) ユーザーおよびロールを使用して API 操作を呼び出す際の権限判定の複雑さを軽減し、権限管理エクスペリエンスを向上させるため、Alibaba Cloud Elastic Compute Service (ECS) は、2025 年 12 月 20 日 (UTC + 08:00) にクエリ (Describe) API 操作の認証メカニズムをアップグレードします。このアップグレードにより、SDK、CLI、Terraform の呼び出しメソッドを含む (ただしこれらに限定されない) API 呼び出しに権限がない場合の戻り値が標準化されます。

有効期間

2025 年 12 月 20 日 (UTC + 08:00)

影響を受けるリージョン

すべてのリージョン

調整内容

RAM ユーザーまたはロールを使用して、必要な権限なしで ECS クエリ (Describe) API 操作を呼び出した場合の応答がアップグレードされます。アップグレード前は、操作は 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) をキャプチャし、それに応じて処理します。Exception 要素には、権限エラーの詳細な理由を説明する AccessDeniedDetail フィールドが含まれています。getAccessDeniedDetail() 関数を使用してフィールドを取得できます。Java の例:

SDK V1.0 for Java の例:

// SDK リクエストを生成します。
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());
}

SDK V2.0 for Java の例:

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

例外処理

説明

Alibaba Cloud SDK V1.0 for Go のサポートは終了しました。詳細については、「2025 年 3 月 1 日の Alibaba Cloud SDK V1.0 for Golang のサポート終了」をご参照ください。Alibaba Cloud SDK V2.0 for Go の使用を推奨します。

ソリューションとサポート

権限の診断とトラブルシューティング

権限エラーが発生すると、応答には権限拒否に関する詳細情報を提供する AccessDeniedDetail フィールドが含まれます。次のいずれかの方法でこの情報を解析できます。

詳細については、「アクセス拒否エラーのトラブルシューティング方法」をご参照ください。

権限設定の提案

必要な操作権限の付与

操作に AuthAction 権限が必要であることを確認した場合、診断結果に基づいて、Alibaba Cloud アカウントのオーナーまたは権限管理者に連絡して、RAM ユーザーに権限を付与するか、RAM ロールに権限を付与してください。

互換性の処理

エラー応答をキャプチャして識別するには、try...catch を使用して対応する例外をキャッチし、エラーコードが Forbidden.RAM であるかどうかを確認します。これは、RAM ユーザーに必要な RAM 権限がないことを示します。