本文为您介绍错误码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的权限控制走租户权限控制,需要到租户管理页面查看对应用户是否有权限,详情请参见租户级别对象操作权限授权。