本文介绍OSS返回403错误的原因和解决方案。

AccessDenied

  • 错误消息:The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

    问题原因:访问Bucket时使用的Endpoint不正确。

    解决方案:确保使用正确的Endpoint访问Bucket。例如Bucket所在地域为oss-cn-hangzhou,则外网Endpoint为oss-cn-hangzhou.aliyuncs.com。有关Endpoint的更多信息,请参见OSS访问域名使用规则

  • 错误消息:This request is forbidden by kms.

    问题原因:没有KMS使用权限。

    解决方案:请确保对指定的CMK ID具有使用权限。详情请参见服务器端加密

  • 错误消息:AccessDenied.

    问题原因:没有相应的访问权限。

    解决方案:
    • 确认使用了正确的AccessKey ID和AccessKey Secret。详情请参见为RAM用户创建访问密钥
    • 确认RAM用户是否拥有Bucket或Object相关操作权限。
  • 错误消息:You have no right to access this object.

    问题原因:RAM用户无权访问此Object。

    解决方案:确认RAM用户是否拥有Object相关操作权限。根据使用场景设置不同访问权限的详情,请参见教程示例:使用RAM Policy控制OSS的访问权限

  • 错误消息:Anonymous user has no right to access this bucket.

    问题原因:匿名用户无权访问此Bucket。

    解决方案:请通过Bucket Policy授权匿名用户访问目标Bucket。详情请参见添加Bucket授权策略(Bucket Policy)

  • 错误消息:Anonymous user has no right to access this object.

    问题原因:匿名用户无权访问此Object。

    解决方案:请通过Bucket Policy授权匿名用户访问目标Bucket中的指定资源。详情请参见添加Bucket授权策略(Bucket Policy)

  • 错误消息:You are denied by bucket referer policy.

    问题原因:防盗链校验未通过。

    解决方案:通过设置Referer白名单以及是否允许空Referer,限制仅白名单中的域名可以访问Bucket内的资源。详情请参见设置防盗链

  • 错误消息:Invalid according to Policy: Policy expired.

    问题原因:PostObject中的Policy表单域无效。

    解决方案:Post请求的Policy表单域用于验证请求的合法性。Policy为一段经过UTF-8和Base64编码的JSON文本,声明了Post请求必须满足的条件。Post Policy格式如下:

    { "expiration": "2014-12-01T12:00:00.000Z",
      "conditions": [
        {"bucket": "johnsmith" },
        ["starts-with", "$key", "user/eric/"]
      ]
    }

    有关Policy中支持的Conditions详情,请参见附录:Post Policy

  • 错误消息:Invalid according to Policy: Policy Condition failed: " + RelatedUnit; //XXX

    问题原因:Policy表单域中指定的Conditions无效。

    解决方案:确保在Policy表单域中指定有效的Conditions。有关Policy表单域中支持的Conditions以及Conditions匹配方式详情,请参见附录:Post Policy

  • 错误消息:Target object does not reside in the same data center as source object.

    问题原因:不支持跨地域拷贝文件。

    解决方案:仅支持拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。详情请参见CopyObject

  • 错误消息:Query string authentication requires the Signature, Expires and OSSAccessKeyId parameters.

    问题原因:URL签名缺少必要参数。

    解决方案:URL签名必须至少包含SignatureExpiresOSSAccessKeyId参数。URL签名示例为http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936**9l&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****。有关URL签名的详情,请参见在URL中包含签名

  • 错误消息:Invalid date (should be seconds since epoch).

    问题原因:请求的时间戳无效。

    解决方案:Expires参数的值是一个Unix time(自UTC时间1970年1月1号开始的秒数),用于标识该URL的超时时间。

  • 错误消息:Request has expired.

    问题原因:请求已过期。

    解决方案:请结合实际使用场景,设置合理的Expires。

  • 错误消息:You do not have read permission on this object.

    问题原因:没有该Object的读取权限。

    解决方案:请联系Object拥有者授予您对Object的读取权限。

  • 错误消息:You do not have write permission on this object.

    问题原因:没有该Object的写入权限。

    解决方案:请联系Object拥有者授予您对Object的写入权限。

  • 错误消息:You do not have read acl permission on this object.

    问题原因:没有该Object的ACL读取权限。

    解决方案:请联系Object拥有者授予您GetObjectACL的权限。

  • 错误消息:You do not have write acl permission on this object.

    问题原因:没有该Object的ACL写入权限。

    解决方案:请联系Object拥有者授予您PutObjectACL的权限。

  • 错误消息:You have no right to access this object because of bucket acl.

    问题原因:没有该Object的访问权限。

    解决方案:请授予访问者OSS相关访问权限,例如PutObjectGetObjectAppendObject等。详情请参见RAM Policy常见示例

  • 错误消息:Anonymous access is forbidden for this operation.

    问题原因:匿名用户没有该操作的对应权限。

    解决方案:请通过Bucket Policy授权匿名用户访问目标Bucket中的指定资源。详情请参见添加Bucket授权策略(Bucket Policy)

  • 错误消息:Access denied by bucket policy.

    问题原因:通过Bucket Policy的授权访问被拒绝。

    解决方案:请结合不同的使用场景灵活配置Bucket Policy。详情请参见添加Bucket授权策略(Bucket Policy)

  • 错误消息:Access denied by authorizer's policy.

    问题原因:通过STS的授权访问被拒绝。

    解决方案:请参见STS临时授权访问OSS进行排查。

AccessForbidden

  • 错误消息:CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec.
  • 问题原因:没有配置CORS或CORS配置错误。
  • 解决方案:请参见设置跨域访问进行排查。

PermanentRedirect

  • 错误消息:The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
  • 问题原因:通过SDK访问OSS中的Bucket时,未指定Endpoint或者指定的Endpoint有误。例如创建的Bucket位于青岛地域,使用了默认配置的oss-cn-hangzhou.aliyuncs.com的Endpoint地址发起请求,则出现该报错。
  • 解决方案:确认请求的Endpoint地址与Bucket实际的Endpoint地址一致。例如需要访问青岛和杭州两个节点的Bucket,建议创建多个ossclient,并在ossclient中添加oss-cn-hangzhou.aliyuncs.comoss-cn-qingdao.aliyuncs.com两个Endpoint。

SecondLevelDomainForbidden

  • 错误消息:The bucket you are attempting to access must be addressed using OSS third level domain.

    问题原因:Bucket的请求域名不为三级域名。

    解决方案:针对OSS的网络请求,除了GetService (ListBuckets)API以外,其他所有请求的域名均由带有指定Bucket信息的三级域名组成。访问域名结构为BucketName.Endpoint,BucketName为您的存储空间名称,Endpoint为存储空间对应的地域域名。例如https://examplebucket.oss-cn-hangzhou.aliyuncs.com

  • 错误消息:Please use virtual hosted style to access.

    问题原因:Host错误。

    解决方案:通过外网访问OSS服务时,以URL的形式表示访问的OSS资源。OSS的URL结构为<Schema>://<Bucket>.<外网Endpoint>/<Object> 。其中Schema包含HTTP或者HTTPS,Bucket表示存储空间名称,外网Endpoint为Bucket所在数据中心供外网访问的Endpoint,Object填写上传到OSS上的文件的访问路径。

    例如您的Region为华东1(杭州),Bucket名称为examplebucket,Object访问路径为destfolder/example.txt,则外网访问地址为https://examplebucket.oss-cn-hangzhou.aliyuncs.com/destfolder/example.txt

NonStandardHostForbidden

  • 错误消息:Your host is invalid. Please use Open Storage Service standard host.
  • 问题原因:Host错误。
  • 解决方案:请使用标准的域名格式访问OSS资源。详情请参见OSS访问域名使用规则

KmsUbsmsInvalidBid

  • 错误消息:Your account partner does not have KMS Service.
  • 问题原因:请求者未开通KMS服务。
  • 解决方案:使用SSE-KMS对OSS数据进行加密前,请先开通KMS服务。详情请参见开通密钥管理服务

KmsInDebt

  • 错误消息:Current user is indebted.
  • 问题原因:当您的阿里云账户进入欠费状态时,您会收到相应的通知。同时,您对密钥管理服务KMS(Key Management Service)的访问会被拒绝。
  • 解决方案:如需正常使用KMS服务时,请确保您的阿里云账户不欠费。

KmsInDebtOverdue

  • 错误消息:Current user is indebted Overdue.
  • 问题原因:KMS服务欠费已逾期。
  • 解决方案:如需正常使用KMS服务,请及时续费。

WORMConfigurationLocked

  • 错误消息:The WORM Configuration is locked.
  • 问题原因:合规保留策略锁定后试图删除策略。
  • 解决方案:若保留策略已提交锁定,则不允许删除此策略,且无法缩短策略保护周期,仅可以延长保护周期。详情请参见合规保留策略

BucketNotBelongTo

  • 错误消息:The bucket you access does not belong to you.
  • 问题原因:当前用户不是目标Bucket的拥有者。
  • 解决方案:仅Bucket拥有者有权限执行此操作。

InvalidAccessKeyId

  • 错误消息
    • The OSS Access Key Id you provided is disabled.
    • The OSS Access Key Id you provided does not exist in our records.
    • The OSS Access Key Id contains non-acceptable characters, which accepts only alphanumeric characters[0-9a-zA-Z] and several special characters[._=]
  • 问题原因:AccessKey ID不存在或已失效。
  • 解决方案:登录阿里云管理控制台的AccessKey管理,确认访问OSS使用的AccessKey ID存在且处于启用状态。

    如果您的AccessKey ID处于禁用状态,请开启。如果您的AccessKey ID不存在请新建,并使用新的AccessKey ID访问OSS。

SignatureDoesNotMatch

  • 错误消息:The request signature we calculated does not match the signature you provided.
  • 问题原因:签名错误。
  • 解决方案:请参见签名常见问题进行排查。

TransferAccelerationDisabled

  • 错误消息:Transfer acceleration is disabled.
  • 问题原因:未开启传输加速服务。
  • 解决方案:如果您需要远距离数据传输加速、加速上传和下载GB或TB级大文件以及非静态、非热点数据下载加速等场景,请开启传输加速服务。详情请参见传输加速

InvalidSecurityToken

  • 错误消息:The security token you provided is invalid.
  • 问题原因:临时访问凭证无效。
  • 解决方案:请参见STS临时授权访问OSS进行排查。

AccessKeyIdAndSecurityTokenNotMatch

  • 错误消息:The OSS access key id and security token you provided does not match.
  • 问题原因:用户提供的AccessKey和临时访问凭证不匹配。
  • 解决方案:请参见STS临时授权访问OSS进行排查。

SecurityTokenExpired

  • 错误消息:The security token you provided has expired.
  • 问题原因:临时访问凭证已过期。
  • 解决方案:重新请求STS服务获取临时访问凭证。

AbnormalBucketOwnerStatus

  • 错误消息:The status of the bucket owner is abnormal.
  • 问题原因:暂未向目标Bucket的所属用户提供服务。
  • 解决方案:请检查用户的阿里云账号是否已注销或因安全等原因被管控,是否因欠费被运营商暂时停止服务。

SecurityTokenNotSupported

  • 错误消息:This interface does not support security token.

    问题原因:当前接口暂不允许通过临时访问凭证权限进行调用。

    解决方案:STS Token仅适用于临时授权给特定用户访问OSS资源。如果您需要将Bucket开放给他人访问,请参见访问控制概述选择适用的授权机制。

  • 错误消息:Security token is not supported in this region.

    问题原因:暂不支持在当前地域使用STS Token。

    解决方案:有关哪些地域支持使用STS Token的详情,请参见接入地址

RequestTimeTooSkewed

  • 错误消息:The difference between the request time and the current time is too large.
  • 问题原因:请求发起的时间超过OSS服务器当前时间15分钟。
  • 解决方案:请检查发送请求设备的系统时间,并根据时区调整到正确时间。
    发送请求的机器或设备的系统时间,调整标准如下:
    • OSS的系统时间采用GMT时间,您的设备的系统时间需要调整到GMT时间,或与其相对应的时区时间。GMT是零时区的区时,即世界标准时间。
      • Windows系统查看时区的方法:单击控制面板 > 时钟、语言和区域 > 设置日期和时间

        例如,时区栏的+08:00表示您的设备系统时区是东八区。

      • Linux或Unix系统查看时区的方法:执行date -R查看时间和时区。
        下图中的+0800表示您的设备系统时区是东八区。 +0800
    • 支持在多个地域使用OSS。每个地域都使用GMT时间,您发送请求的设备系统时间也是GMT时间。

ImageDamage

  • 错误消息:The image file may be damaged.
  • 问题原因:图片文件有部分信息丢失或损坏,导致无法正常识别或处理。
  • 排查方法:请确保源文件没有损坏,如有损坏请重新上传本地文件。

UserDisable

  • 错误消息:UserDisable
  • 问题原因:账号欠费或者由于安全原因,账号被禁用。
  • 解决方案:请检查账号是否已欠费,或联系技术支持进行安全受限核查。

BucketDisable

  • 错误消息:BucketDisable.
  • 问题原因:Bucket因安全原因被禁用。
  • 解决方案:请检查账号是否已欠费,或联系技术支持进行安全受限核查。

CnameDenied

  • 错误消息:The cname belongs to another user.
  • 问题原因:该域名已绑定至其他Bucket。
  • 解决方案:请更换域名或通过验证域名所有权强制绑定域名,验证域名所有权会解除域名与其他Bucket的绑定关系。请参见绑定自定义域名进行排查。

InvalidObjectState

  • 错误消息:The operation is not valid for the object's state.
  • 问题原因:下载归档类型Object时,以下两种情况会导致报错无效的Object状态。
    • 未提交RestoreObject请求或者上一次提交RestoreObject已超时。
    • 已提交RestoreObject请求,但数据的RestoreObject操作还没有完成。
  • 解决方案:请参见RestoreObject进行排查。