他の Alibaba Cloud アカウントに対する権限がない場合、API エラー診断ツールを使用して API エラーを分析したり、解決策を見つけたりすることはできません。この問題を解決するには、クロスアカウント権限を付与してください。
Alibaba Cloud アカウント内
RAM ユーザーに権限を付与して、同じアカウント内の他の RAM ユーザーおよび RAM ロールの API 診断情報を表示できるようにします。
ステップ 1: カスタムポリシーの作成
-
Alibaba Cloud アカウントまたは RAM 管理権限を持つ RAM ユーザーで、 にログオンします。
-
左側のナビゲーションペインで、[権限] を選択し、次に [ポリシー] をクリックします。
-
[ポリシー] ページで、[ポリシーの作成] をクリックします。
-
[ポリシーの作成] ページで、[JSON] タブをクリックします。
エディタには、
Versionが"1"であり、単一のオブジェクトを含むStatement配列が設定された、デフォルトのポリシーテンプレートが表示されます。このオブジェクトのEffectは"Allow"で、Action、Resource、Condition要素は空です。 -
エディターのコンテンツを次のポリシーに置き換え、[OK] をクリックします。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "openapiexplorer:GetRequestLog", "ram:DecodeDiagnosticMessage" ], "Resource": "*" } ] }説明このポリシーにより、ユーザーは Alibaba Cloud アカウント内のすべての API 呼び出しログと権限不足に関する詳細情報を表示できます。
-
[ポリシー名]と[説明]を入力し、[OK]をクリックします。
ステップ 2: RAM ユーザーへの権限付与
次のいずれかの方法で、RAM ユーザーに権限を付与します。
-
RAM ユーザーに権限を付与するには、「RAM ユーザー権限の管理」をご参照ください。
-
RAM ユーザーグループに権限を付与するには、「RAM ユーザーグループへの権限付与」をご参照ください。
ステップ 3: API 診断結果の表示
に移動し、RequestId を入力して、[診断] をクリックします。
診断結果には、クラウドサービスが ECS で、ErrorCode が Forbidden.RAM であり、ErrorMessage が RAM ユーザーに指定されたリソースを操作する権限がないことを示しています。診断の詳細では、呼び出し元が ecs:ModifyInstanceAttribute アクションを試行した RAM ユーザーであり、判定が 権限不足 であることが示されています。推奨される解決策は、管理者に連絡して、AliyunECSFullAccess や AliyunECSReadOnlyAccess などの関連システムポリシーを付与してもらうか、カスタムポリシーを作成してもらうことです。
異なる Alibaba Cloud アカウント間
別の Alibaba Cloud アカウントの API 診断情報を表示するには、必要な権限が付与されたロールを引き受けます。
アカウント A:API エラーが発生したアカウント。
アカウント B:API 診断情報を表示する必要があるアカウント。
-
アカウント A が RAM ロールを作成し、アカウント B にそのロールを引き受ける権限を付与します。
-
アカウント B が RAM ユーザーを作成し、ロールを引き受ける権限を付与します。
-
アカウント B の RAM ユーザーがアカウント A の RAM ロールを引き受けて、クロスアカウント API 診断情報を照会します。
ステップ 1: アカウント A での RAM ロールの設定
-
RAM ロールを作成します。
アカウント A を使用して RAM コンソールにログオンします。[プリンシパルタイプ] を [クラウドアカウント] に設定して RAM ロールを作成します。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールを作成する」をご参照ください。
説明「ロールの作成」ページで、[プリンシパル名] には [他のアカウント] を選択し、アカウント B の UID を入力します。
-
カスタムポリシーを作成します。
手順については、前のセクションにある「ステップ 1: カスタムポリシーの作成」をご参照ください。
-
RAM ロールに権限を付与します。
前のステップで作成したカスタムポリシーを RAM ロールにアタッチします。詳細については、「RAM ロールの権限管理」をご参照ください。
ステップ 2: アカウント B での RAM ユーザーの設定
-
RAM ユーザーを作成します。
アカウント B で RAM コンソール にログオンし、RAM ユーザーを作成します。詳細については、「RAM ユーザーの作成」をご参照ください。
説明セキュリティのため、ニーズに応じて RAM ユーザーに 1 つのアクセスモードのみを設定することを推奨します。コンソールアクセスとプログラムによるアクセスは分離してください。
この例では、[ログオン名] を
GetApiLogUserに、[表示名] を「別の Alibaba Cloud アカウントの API 呼び出しログを照会する」に設定し、[アクセスモード] では [コンソールアクセス] と [プログラムによるアクセス] の両方を選択します。 -
RAM ユーザーに権限を付与します。
RAM ユーザーがロールを引き受けられるようにするには、そのユーザーに
AliyunSTSAssumeRoleAccessポリシーをアタッチします。このポリシーにより、ユーザーは任意の RAM ロールを引き受けることができます。詳細については、「RAM ユーザー権限の管理」をご参照ください。説明RAM ユーザーが特定の RAM ロールのみを引き受けられるようにする場合は、「RAM ロールと STS Token に関する FAQ」をご参照ください。
ステップ 3: ロールの引き受けと診断情報の表示
-
アカウント B の RAM ユーザーで、RAM ユーザーログオンページ にログオンします。
-
右上隅にあるプロフィール画像にマウスカーソルを合わせ、[ID の切り替え] をクリックします。
-
[ロールの切り替え] ページで、アカウント A の UID と RAM ロール名を入力し、[送信] をクリックします。
-
API 診断情報を表示します。
に移動し、RequestId を入力して、[診断] をクリックします。
診断結果には、クラウドサービスが ECS で、ErrorCode が
Forbidden.RAM、ErrorMessage がUser not authorized to operate on the specified resource, or this API doesn't support RAM.であることが示されています。診断の詳細では、リソースグループレベルのアイデンティティベースのポリシーによってアクセスが拒否されたことが示されています。また、呼び出し元が GetApiLogRole ロールでログインした RAM ユーザーであること、およびecs:ModifyInstanceAttributeアクションを試行したことも示されています。