本文為您介紹錯誤碼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;
或
grant admin TO RAM$xxx;
錯誤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}
錯誤碼描述
報錯中的action為CreateInstance,resource為專案maxcompute_dev;此條報錯含義為:
執行人沒有專案maxcompute_dev的CreateInstance許可權。
更多action和resource含義,請參考MaxCompute許可權。
解決方案
需要maxcompute_dev專案的所有者為執行人授予Project的CreateInstance許可權。
通過命令授權:授權文法參見通過角色為使用者授予對象的操作許可權。
樣本:grant CreateInstance on project maxcompute_dev to USER RAM$xxx;
錯誤3:You don't exist in project <project_name>
錯誤資訊
ODPS-0420095: Access Denied - You don't exist in project <project_name>.
錯誤碼描述
當前操作未被授權,您尚未成為當前專案成員,請聯絡主帳號或擁有授權許可權的使用者將您添加至專案。
解決方案
您需要將執行人添加為專案成員,簡單命令如下:
添加阿里雲帳號使用者:add user ALIYUN$<account_name>;
添加RAM使用者:add user RAM$[<account_name>:]<RAM名稱>;
添加RAM角色:add user `RAM$<accout_name>:role/<RAM角色名稱>`;
重要命令中的`,不可缺失。
由於後續涉及到需要在DataWorks上操作,在修改RAM角色的權限原則時,您需要把RAM角色同時授權給DataWorks服務,以便在DataWorks上能夠提交周期性調度作業至MaxCompute。RAM角色的權限原則配置如下。
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"dataworks.aliyuncs.com"
]
}
}
],
"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}的操作授權。
解決方案
需要找專案Owner或者擁有專案super_administrator
角色的帳號給報錯帳號授權對應專案的管理類許可權,具體可以通過以下兩種方式。
把專案的
admin
或者super_administrator
角色許可權授予報錯帳號。配置新的管理角色並授權報錯帳號,角色配置操作可參考設定項目中角色管理部分,建立管理類(Admin)角色,進行Policy授權。管理類許可權Policy支援的Action、Resource可參考專案管理類許可權一覽表,可以使用萬用字元對資源進行授權。
{ "Statement": [{ "Action": ["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
錯誤碼描述
當前運行作業所使用的 Quota(或當前 Project 所綁定的預設 Quota)不支援運行Spark on MaxCompute作業。
解決方案
隨用隨付開發人員版僅支援MaxCompute SQL(支援使用UDF)、PyODPS作業。
請購買並綁定隨用隨付或訂用帳戶的Quota運行Spark作業,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}
錯誤碼描述
使用了作業層級指定Quota方式執行作業,需要校正Quota的使用許可權,此錯誤即為沒有使用Quota的許可權。
解決方案
Quota的許可權控制走租戶許可權控制,需要到租戶管理頁面查看對應使用者是否有許可權。