【TiDB 使用环境】测试环境
【TiDB 版本】v7.5.0
【部署方式】物理机部署
【操作系统/CPU架构/芯片详情】CentOS 7.9 / x86_64
【机器部署详情】TiDB节点:16核32GB / TiKV节点:16核64GB,SSD 2TB / PD节点:8核16GB
【集群数据量】约 500GB
【集群节点数】3 TiDB + 3 PD + 3 TiKV
【问题复现路径】配置BR将全量备份数据写入腾讯云COS(S3兼容存储),使用SecretID和SecretKey认证。执行br backup full 命令后报错AccessDenied,但用同一套AK/SK通过AWS CLI访问COS bucket完全正常
【遇到的问题:问题现象及影响】备份任务无法执行,导致自动化备份流程中断,需要通过人工方式绕过,增加了运维成本和数据安全风险
【资源配置】[此处插入Dashboard主机截图]
【复制粘贴 ERROR 报错的日志】
这个问题我遇到过,大概率是BR的S3配置里endpoint或region没对齐COS的规范。AWS CLI能通是因为它自动处理了签名版本,但BR默认用SigV4,COS要求特定region格式。
1. Bucket 名称格式错误
腾讯 COS 标准桶全名格式为 桶名‑APPID,例如 tidb‑backup‑1300000000。
- AWS‑CLI 可以自动兼容简写桶名;
- BR 严格遵照 S3 协议,必须填写完整带 APPID 的 Bucket 全名,简写桶名直接鉴权失败、返回 AccessDenied。
2. Endpoint、地域 Region 参数配置错误
- COS S3 接入域名格式:
cos.地域.myqcloud.com,例如广州地域cos.ap‑guangzhou.myqcloud.com - region 参数必须填写 COS 标准地域标识
ap‑guangzhou,不能填写 aws‑s3 的 us‑east‑1 这类地域 - BR 不要填写 COS 静态网站域名、CDN 域名,必须使用标准 S3 兼容端点。
CLI 通而 BR 报 AccessDenied,多半是 endpoint/region/path-style、权限范围或临时凭证传参不一致。核对 BR 的 --s3.endpoint、provider、force-path-style,以及密钥是否对 bucket 有 List/Put/Get;COS 常需指定正确 endpoint。把 BR 完整报错里的 RequestId/资源路径对一下策略。