tencent cloud

对象存储

动态与公告
产品动态
产品公告
产品简介
产品概述
功能概览
应用场景
产品优势
基本概念
地域和访问域名
规格与限制
产品计费
计费概述
计费方式
计费项
免费额度
计费示例
查看和下载账单
欠费说明
常见问题
快速入门
控制台快速入门
COSBrowser 快速入门
用户指南
创建请求
存储桶
对象
数据管理
批量处理
全球加速
监控与告警
运维中心
数据处理
内容审核
智能工具箱
数据工作流
应用集成
工具指南
工具概览
环境安装与配置
COSBrowser 工具
COSCLI 工具
COSCMD 工具
COS Migration 工具
FTP Server 工具
Hadoop 工具
COSDistCp 工具
HDFS TO COS 工具
GooseFS-Lite 工具
在线辅助工具
自助诊断工具
实践教程
概览
访问控制与权限管理
性能优化
使用 AWS S3 SDK 访问 COS
数据容灾备份
域名管理实践
图片处理实践
COS 音视频播放器实践
工作流实践
数据直传
内容审核实践
数据安全
数据校验
大数据实践
COS 成本优化解决方案
在第三方应用中使用 COS
迁移指南
本地数据迁移至 COS
第三方云存储数据迁移至 COS
以 URL 作为源地址的数据迁移至 COS
COS 之间数据迁移
Hadoop 文件系统与 COS 之间的数据迁移
数据湖存储
云原生数据湖
元数据加速
数据加速器 GooseFS
数据处理
数据处理概述
图片处理
媒体处理
内容审核
文件处理
文档处理
故障处理
获取 RequestId 操作指引
通过外网上传文件至 COS 缓慢
访问 COS 时返回403错误码
资源访问异常
POST Object 常见异常
API 文档
简介
公共请求头部
公共响应头部
错误码
请求签名
操作列表
Service 接口
Bucket 接口
Object 接口
批量处理接口
数据处理接口
任务与工作流
内容审核接口
云查毒接口
SDK 文档
SDK 概览
准备工作
Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Flutter SDK
Go SDK
iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
React Native SDK
小程序 SDK
错误码
鸿蒙(Harmony) SDK
终端 SDK 质量优化
安全与合规
数据容灾
数据安全
访问管理
常见问题
热门问题
一般性问题
计费计量问题
域名合规问题
存储桶配置问题
域名和 CDN 问题
文件操作问题
日志监控问题
权限管理问题
数据处理问题
数据安全问题
预签名 URL 问题
SDK 类问题
工具类问题
API 类问题
服务协议
Service Level Agreement
隐私政策
数据处理和安全协议
联系我们
词汇表
文档对象存储故障处理访问 COS 时返回403错误码

访问 COS 时返回403错误码

PDF
聚焦模式
字号
最后更新时间: 2024-01-06 11:27:57

故障现象

当 COS API、SDK 上传和下载资源时,返回403错误码。
当使用临时密钥或子账号访问 COS 资源时,返回403错误码。
当修改 COS bucket 配置时,返回403错误码。

故障分析思路

当 COS 请求出现403错误码时,可参考以下流程排查问题原因:
1. 检查请求是否为 CORS 跨域访问请求,失败的跨域请求会返回 "AccessForbidden"
2. 检查请求是否命中存储桶防盗链配置,因防盗链规则引起的 403 错误码,COS 会返回 "You are denied by bucket referer rule"
3. 检查请求是否是匿名请求,向非公有读的对象发起不带签名的请求,会返回 "Access Denied.",如要为存储桶或对象设置公有读,参考 设置访问权限设置对象的访问权限
4. 检查请求密钥和请求签名是否正确。
4.1 当签名未正确使用 SecretId 时,COS 会返回 "InvalidAccessKeyId"
4.2 当本机时间不准,或请求时间超出签名有效期时,COS 会返回 "RequestTimeTooSkewed""Request has expired"
4.3 当生成签名的计算方式存在问题时,COS 会返回 "SignatureDoesNotMatch"
5. 检查发起请求的子账号或临时密钥是否授予了相应访问权限。
5.1 检查子账号的访问权限,未授予资源访问权限的子账号请求,会返回 "Access Denied."
5.2 对于使用临时密钥发起的请求,申请临时密钥时填写的策略会限制临时密钥请求的资源范围,详见 临时密钥生成与使用指引
6. 检查所请求对象是否为归档类型或深度归档类型,此类请求 COS 会返回 "InvalidObjectState"

故障定位及处理

Message 为 “Access Denied.”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>Access Denied.</Message>
需要您执行以下操作:
2. 在左侧导航栏中,选择存储桶列表,进入存储桶管理页面。
3. 找到需要操作的存储桶,单击该存储桶名称,进入存储桶配置页面。
4. 在左侧导航栏中,选择权限管理 > 存储桶访问权限,进入存储桶访问权限管理页面。
5. 在“存储桶访问权限”栏中,检查访问 COS 的账号是否配置了访问权限。
是,请执行下一步。
否,请单击添加用户,为访问 COS 的账号设置所需权限。
6. 检查配置访问权限的账号是否具有所需权限。
是,请执行下一步。
否,请单击编辑,重新设置。
7. 在“Policy权限设置”栏中,检查访问 COS 的账号是否配置了 policy 授权策略。
注意
如果存储桶访问权限为私有读写,且 Policy 权限为匿名访问,那么 Policy 权限的优先级高于存储桶访问权限。
在 Policy 授权策略中,如果同一个子用户同时设置了允许和禁止策略,那么禁止策略的优先级高于允许策略。
在 Policy 授权策略中,“所有用户”策略的优先级低于“指定用户”策略。
是,请执行下一步。
否,请单击添加策略,根据实际签名访问时账号所需权限进行设置。
8. 检查配置 Policy 权限的账号是否具有所需权限。
是,请执行下一步。
否,请单击编辑,重新设置。
9. 检查访问 COS 资源时使用的 q-ak 参数是否为目标桶的所属账号(区分大小写)。
是,请执行下一步。
否,请将 q-ak 参数修改为相应的目标桶所属账号。
10. 检查访问 COS 资源时是否为跨账号访问。
是,请为该账号进行跨账号授权,详细操作请参见授权跨账号的子账号对指定文件的读写权限。
否,请 联系我们

Message 为 “AccessForbidden”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>AccessForbidden</Message>
需要您执行以下操作:
2. 在左侧导航栏中,选择存储桶列表,进入存储桶管理页面。
3. 找到需要操作的存储桶,单击该存储桶名称,进入存储桶配置页面。
4. 在左侧导航栏中,选择安全管理 > 跨域访问CORS设置,进入跨域访问 CORS 设置页面。
5. 在“跨域访问CORS设置”栏中,检查是否为跨域请求。
是,请执行下一步。
否,请修改规则。
6. 执行以下命令,检查跨域请求配置是否正确。
curl 'http://bucket-appid.cos.ap-guangzhou.myqcloud.com/object' -voa /dev/null -H 'Origin: 跨域访问CORS设置的来源 Origin'
返回如下信息,即表示配置正确。


Message 为 “You are denied by bucket referer rule”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>You are denied by bucket referer rule</Message>
需要您执行以下操作:
2. 在左侧导航栏中,选择存储桶列表,进入存储桶管理页面。
3. 找到需要操作的存储桶,单击该存储桶名称,进入存储桶配置页面。
4. 在左侧导航栏中,选择安全管理 > 防盗链设置,进入防盗链设置页面。
5. 在“防盗链设置”中,检查是否设置了防盗链。
是,请执行下一步。
否,请 联系我们
6. 执行以下命令,检查防盗链设置是否正确。
curl 'http://bucket-appid.cos.ap-guangzhou.myqcloud.com/object' -voa /dev/null -H 'referer: Referer 的值'
返回如下信息,即表示配置正确。


Message 为 “InvalidAccessKeyId”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>InvalidAccessKeyId</Message>
需要您执行以下操作:
1. 检查请求签名中 Authorization 的 q-ak 参数是否填写正确。
是,请执行下一步。
否,请修改 q-ak 参数。密钥的 SecretId 需与 q-ak 参数保持一致,且区分大小写。
2. 前往 API密钥管理,检查 API 密钥是否已启用。
是,请 联系我们
否,请启用该 API 密钥。

Message 为 “InvalidObjectState”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>InvalidObjectState</Message>
需要您执行以下操作:
检查请求的对象是否为归档类型或深度归档类型。
是,请恢复对象,再进行访问。详细操作请参见 POST Object restore
否,请 联系我们

Message 为 “RequestTimeTooSkewed”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>RequestTimeTooSkewed</Message>
需要您执行以下操作:
1. 根据操作系统类型,查看客户端当前时间。
Windows 系统(以 Windwos Server 2012 为例):

> 控制面板 > 时钟、语言和区域 > 设置日期和时间
Linux 系统:执行 date -R 命令。

2. 判断客户端当前时间与服务器的时间是否存有偏差(时间偏差超过15分钟)。
是,请同步时间。
否,请 联系我们

Message 为 “Request has expired”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
产生的可能原因如下:
发起请求的时间超过了签名的有效时间。
本地系统时间和所在时区的时间不一致。
需要您重新设置签名的有效时间,或者同步本地系统时间。若仍无法解决,请 联系我们

Message 为 “SignatureDoesNotMatch”

当您访问 COS 出现如下信息时:
<Code>AccessDenied</Code>
<Message>SignatureDoesNotMatch</Message>
需要您执行以下操作:
检查客户端计算的签名与服务端计算的签名是否一致。
是,请 联系我们
否,请参阅 请求签名 文档,并使用COS 签名工具检查自行实现的签名过程。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈