访问华为云OBS出现403状态码的排查方法
【问题背景】
在使用华为云OBS过程中,可能会碰到403的问题,针对该问题,本文详细的介绍了访问OBS时出现403状态码可能涉及的场景和排查方法。
【场景汇总】
目前汇总如下场景,后续如有其它场景及时更新补充该文档。
场景 | 场景分类 | 错误提示 | 错误原因 |
场景一 | 相关权限&策略设置问题 | 1)<ErrorCode>AccessDenied <Message>AccessDenied 2)< ErrorCode > InvalidAccessKeyId <Message> The Access Key Id you provided does not exist in our records 3)<ErrorCode>SignatureDoesNotMatch <Message>The request signature we calculated does not match the signature you provided |
1)说明访问OBS的用户没有当前操作的权限 2)无效的AccessKeyId 3)签名不匹配 |
场景二 | 跨域问题 | <ErrorCode>AccessForbidden <Message>This CORS request is not allowed |
未配置CORS或CORS配置错误 |
场景三 | 欠费场景&存储空间问题 | <ErrorCode>InArrearOrInsufficientBalance <Message> In arrear or insufficient balance <ErrorCode>InsufficientStorageSpace |
用户欠费或余额不足而没有权限进行某种操作。 |
场景四 | 客户端与服务端时差问题 | 1)报错提示:error message [The difference between the request time and the current time is too large.] 2)console控制台频繁提示客户端于服务端时间相差大于15分钟。 |
1)客户端时间不准确 2)中场景导致客户端和服务端时差超过15分钟 |
场景五 | 其他问题 | 1)<ErrorCode>InvalidObjectState <Message>The operation is not valid for the object’s storage class 2)防盗链设置,请求域名不在OBS防盗链白名单中 |
1)该操作对该桶对象无效 2)未设置防盗链或防盗链配置异常 |
【排查及解决办法】
场景一:相关权限&策略设置问题
(1)访问OBS的用户目前没有当前操作的权限,提示AccessDenied
原因分析:
1) OBS使用服务端加密(KMS)功能时,IAM子账户或者委托账户需被授权KMS
Administrator权限;
2)配置桶自定义策略异常;
3)AK/SK写错,导致鉴权失败;总之目前访问OBS对象操作权限不足,需先从访问用户的权限和操作对象配置策略方面排查具体原因。
解决方案:
KMS授权:
https://support.huaweicloud.com/intl/zh-cn/obs_faq/obs_faq_0063.html;
权限控制:
https://support.huaweicloud.com/intl/zh-cn/usermanual-obs/obs_03_0080.html;
永久AK/SK:
https://support.huaweicloud.com/intl/zh-cn/clientogw-obs/obs_03_0405.html;
临时AK/SK和securitytoken:
https://support.huaweicloud.com/intl/zh-cn/productdesc-obs/obs_03_0208.html;
(2)访问OBS的用户目前没有当前操作的权限,提示无效的AccessKeyID
原因分析:
1)桶版本(海外)不是3.0不支持AK/SK +Securitytoken方式;
2)API调用时未添加Securitytoken, 临时AK/SK需和securitytoken 一起使用。
(3)访问OBS的用户目前没有当前操作的权限,提示签名不匹配
原因分析:
1)查看客户请求中accessKey, secretKey, endpointUrL配置是否正确;
2)用户子账号对OBS没有访问权限,设置权限后重新生成新的AK/SK;
3)使用工具访问桶时,桶和endpoint不匹配,endpoint配置错误。
场景二:跨域问题
(1)提示跨域请求不允许
原因分析:
1)访问OBS需配置CORS但是未配置;
2)配置CORS错误。
解决方案:
配置跨域资源共享:
https://support.huaweicloud.com/intl/zh-cn/usermanual-obs/zh-cn_topic_0066036542.html;
配置桶的CORS:
https://support.huaweicloud.com/intl/zh-cn/sdk-browserjs-devg-obs/obs_24_0201.html;
场景三:欠费问题或存储空间问题
(1)提示欠款或余额不足
原因分析:
华为云账号欠费或余额不足而没有权限进行OBS相关操作,华为云账号欠费后会有个宽限期和保留期,宽限期是指包周期资源到期未续订或按需资源欠费时,华为云提供给客户进行续费与充值的宽限时间,宽限期内暂时还可以正常访问及使用云服务。
解决方案:
及时续费或充值。
(2)提示存储空间不足
原因分析:
超过配额限制。
解决方案:
增加配额或删除部分对象。
场景四:客户端和服务端时差问题
(1)提示客户端时间和服务端时间相差较大
原因分析:
如果客户端和服务端时差过大,存在被其他人破解的风险,出于安全目的,控制台和服务器的时间差不允许大于15分钟。基于该问题一般由两种场景会提示该报错。
原因一:客户端时间不准确;
原因二:服务端时间不准确(OBS NTP同步异常)。
解决方案:
原因一:查看客户端时间是否和UTC时间相差大于15分钟,如果大于15分钟则修改客户端时间为UTC时间。
原因二:首先确认客户端时间对标UTC时间准确无误后,续联系华为云技术服务工程师确认OBS NTP时钟同步是否正常。一般可以先排查OBS和NTP服务器的连通性是否正常,在排查NTP服务是否正常。
场景五:其他问题
(1)提示操作对象无效
分析原因:
1) 该对象存储类型是归档存储,不能直接下载;
2) 用户代码错误(需客户侧排查)
解决方案:
1)如果要下载归档存储对象,第一步需要先将归档存储对象取回,参照https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0507.html;第二步修改对象的存储类型为标准存储或者低频访问存储再下载;
2)客户使用API或者SDK请求对象时请求消息格式错误,需客户自行排查请求消息。
(2)访问域名不在OBS防盗链白名单中
解决方案:
配置防盗链:https://support.huaweicloud.com/intl/zh-cn/usermanual-obs/obs_03_0341.html;
防盗链设置:https://support.huaweicloud.com/intl/zh-cn/devg-obs/obs_06_0050.html;
【OBS SDK异常处理】
(1)Python
参照OBS服务端错误码(可参照详细的403状态码对应的错误码判断问题类型):https://support.huaweicloud.com/intl/zh-cn/sdk-python-devg-obs/obs_22_1502.html;
(2)Java
高频问题,SignatureDoesNotMatch签名不匹配:https://support.huaweicloud.com/intl/zh-cn/sdk-java-devg-obs/obs_21_0302.html;
参照OBS服务端错误码(可参照详细的403状态码对应的错误码帮助定位问题):https://support.huaweicloud.com/intl/zh-cn/sdk-java-devg-obs/obs_21_2002.html;
其他语言详见官网说明:https://support.huaweicloud.com/intl/zh-cn/sdkreference-obs/obs_02_0001.html;
【OBS API错误码】
参照API请求403状态码对应的错误码判断问题类型:https://support.huaweicloud.com/intl/zh-cn/api-obs/obs_04_0115.html;
- 点赞
- 收藏
- 关注作者
评论(0)