使用Azcopy复制Azure Blob遇RESPONSE 403(CannotVerifyCopySource)错误求助
Azure AzCopy 403 CannotVerifyCopySource 错误排查方案
问题概述
此前通过生成存储账户SAS Token,执行以下AzCopy命令可正常跨存储账户复制Blob:
.\azcopy.exe copy "https://source.blob.core.windows.net/?TOKEN" "https://destination.blob.core.windows.net/?TOKEN" --recursive
今日执行相同操作时触发认证失败,返回RESPONSE 403,错误码为CannotVerifyCopySource。已为存储账户勾选Blob、Table、File等所有服务权限,问题仍未解决。
排查方向
- 源端SAS Token权限缺失:跨账户复制要求源存储账户的SAS Token必须包含
Read(读取)权限,仅勾选服务权限范围不够,需确认SAS的sp参数包含r(读取)标识。 - SAS Token过期:检查源、目标两端的SAS Token是否已过期,Token到期后会直接触发403认证失败。
- 源存储账户网络限制:若源存储账户配置了防火墙规则(如仅允许特定IP段访问),需确认运行AzCopy的机器IP在允许列表内,否则会因无法访问源Blob导致验证失败。
- 目标端SAS Token权限不足:目标端需具备
Write(写入)权限,建议将SAS的sp参数设为rw(读写),确保满足跨账户复制的写入要求。 - 源Blob特殊状态影响:如果源Blob处于软删除状态或开启了版本控制,需在生成SAS Token时勾选“允许访问版本/已删除Blob”选项,否则会因无法读取特殊状态的Blob触发验证错误。
- AzCopy版本兼容性:旧版AzCopy可能存在Azure存储服务兼容性问题,尝试更新至最新稳定版后重试操作。
日志分析重点
若有详细运行日志,可重点核查:
- 日志中明确标注的认证失败端(源或目标存储账户)
- SAS Token的权限参数(
sp)、服务范围(srt)是否符合复制需求 - 网络请求的源IP是否被源存储账户防火墙拦截
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

