このトピックでは、エラーコード ODPS-0420095: Access Denied の考えられる原因と解決策について説明します。
エラーメッセージ 1: You have no privilege to create external project - you have to be owner,super admin or admin of the referred project.
例
ODPS-0420095: Access Denied - You have no privilege to create external project - you have to be owner,super admin or admin of the referred project.
説明
ユーザーは外部プロジェクトを作成する権限がありません。 Super_Administrator または admin ロールが割り当てられているユーザーのみが、外部プロジェクトを作成できます。
解決策
ユーザーに Super_Administrator または admin ロールの権限を付与します。 次の文は例を示しています。 詳細については、「コマンドを使用してユーザー権限を管理する」をご参照ください。
grant Super_Administrator TO RAM$xxx; // RAM$xxx に Super_Administrator 権限を付与
次の文を実行することもできます。
grant admin TO RAM$xxx; // RAM$xxx に admin 権限を付与
エラーメッセージ 2: You have no privilege 'odps:<Action>' on {acs:odps:*:projects/<project_name>}
例
ODPS-0420095: Access Denied - You have no privilege 'odps:CreateInstance' on {acs:odps:*:projects/maxcompute_dev}
説明
エラーメッセージでは、操作は CreateInstance で、リソースは maxcompute_dev です。 エラーメッセージは、次の理由により返されます。
エグゼキュータは、maxcompute_dev プロジェクトに対する CreateInstance 権限を持っていません。
操作とリソースの詳細については、「MaxCompute 権限」をご参照ください。
解決策
maxcompute_dev プロジェクトの所有者に、プロジェクトに対する CreateInstance 権限をエグゼキュータに付与するように依頼してください。
GRANT 文を使用して、必要な権限を付与します。 構文の詳細については、「プロジェクト内のユーザーに権限を付与する」をご参照ください。
文の例: grant CreateInstance on project maxcompute_dev to USER RAM$xxx; // プロジェクト maxcompute_dev に対する CreateInstance 権限をユーザー RAM$xxx に付与
エラーメッセージ 3: You don't exist in project <project_name>
例
ODPS-0420095: Access Denied - You don't exist in project <project_name>.
説明
エグゼキュータはプロジェクトのメンバーではないため、操作を実行する権限がありません。 Alibaba Cloud アカウントの所有者、または必要な権限を持つユーザーに、エグゼキュータをプロジェクトのメンバーとして追加するように依頼してください。
解決策
エグゼキュータをプロジェクトにメンバーとして追加します。 コマンドの例:
Alibaba Cloud アカウントを追加する:
add user ALIYUN$<account_name>; // Alibaba Cloud アカウントを追加
RAM ユーザーを追加する:
add user RAM$[<account_name>:]<Name of the RAM user>; // RAM ユーザーを追加
RAM ロールを追加する:
add user `RAM$<accout_name>:role/<Name of the RAM role>`; // RAM ロールを追加
重要上記のコマンドでは、グレイブアクセント (`) が必要です。
後続の操作は DataWorks コンソールで実行する必要があります。 したがって、RAM ロールにアタッチされているポリシーを変更する場合は、RAM ロールを DataWorks に割り当てる必要があります。 これにより、定期的にスケジュールされたジョブを DataWorks コンソールで MaxCompute に送信できます。 次のコードは、RAM ロールにアタッチされているポリシーの構成を示しています。
{
"Statement": [
{
"Action": "sts:AssumeRole", // アクション:ロールの引き受け
"Effect": "Allow", // 効果:許可
"Principal": {
"Service": [
"dataworks.aliyuncs.com" // サービス:DataWorks
]
}
}
],
"Version": "1"
}
詳細については、「ユーザー計画と管理」をご参照ください。
エラーメッセージ 4: You have NO privilege to do the PROJECT SECURITY OPERATION for {<resource>}
例
com.aliyun.odps.OdpsException: ODPS-0420095: Access Denied - Authorization Failed [4003], You have NO privilege to do the PROJECT SECURITY OPERATION for {acs:odps:*:projects/test_sx_0831006/authorization/roles}. Context ID:312d7f21-ae64-4a43-b558-e8712eb85291. (MC RequestID: 638DB6702EC9C84692F2F55A)",
説明
エグゼキュータはプロジェクトを管理する権限がありません。 エラーメッセージは、エグゼキュータにリソース {acs:odps:*:projects/test_sx_0831006/authorization/roles} に対する権限が付与されていないことを示しています。
解決策
プロジェクト所有者、または super_administrator
ロールが割り当てられているアカウントに、エグゼキュータにプロジェクトの管理権限を付与するように依頼してください。 2 つの方法があります。
プロジェクトの
admin
またはsuper_administrator
ロールの権限をエグゼキュータに付与します。新しい管理ロールを構成し、そのロールをエグゼキュータに付与します。 ロールの構成プロセスについては、「プロジェクトを構成する」セクションの「ロールを管理する」手順をご参照ください。 管理ロールを作成し、ポリシーを付与します。 管理権限でサポートされている操作とリソースについては、「プロジェクト管理の権限」をご参照ください。 ワイルドカードを使用してリソースを承認できます。
{
"Statement": [{
"Action": ["odps:*"], // 操作:odps のすべて
"Effect": "Allow", // 効果:許可
"Resource": ["acs:odps:*:projects/<project_name>/authorization/roles", // リソース:プロジェクトのロール
"acs:odps:*:projects/<project_name>/authorization/roles/*/*"] // リソース:プロジェクトのロール配下のすべて
}],
"Version": "1"
}
エラーメッセージ 5: The task is not in release range: CUPID
例
ODPS-0420095: Access Denied - The task is not in release range: CUPID
説明
ジョブで使用されているクォータ、またはプロジェクトのデフォルトクォータは、MaxCompute ジョブでの Spark をサポートしていません。
解決策
従量課金開発者版は、MaxCompute SQL ジョブ(UDF のサポート)と PyODPS ジョブのみをサポートしています。
MaxCompute 計算リソースを購入し、リソースを従量課金クォータまたはサブスクリプションクォータにバインドして、Spark ジョブを実行します。 詳細については、「概要」をご参照ください。
エラーメッセージ 6: You have no privilege 'odps:Usage' on {acs:odps:*:tanents/<tenant_id:regions/region_id>/quotas/<quotaname>}
例
ODPS-0420095: Access Denied - Authorization Failed [], You have NO privilege 'odps:Usage' on {acs: odps: *:tenants/111111/regions/cn-beijing/quotas/q_1}
説明
ジョブレベルクォータを使用してジョブを実行する場合、クォータを使用する権限があるかどうかを確認する必要があります。 このエラーメッセージは、クォータを使用する権限がないために返されます。
解決策
クォータの権限管理は、テナント権限管理に基づいています。 この問題を解決するには、MaxCompute コンソールの [テナント] ページに移動し、使用中のユーザーアカウントに必要な権限があるかどうかを確認します。