You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

首次从AWS S3下载文件遇403错误,重试即可正常访问

AWS S3下载首次403 Forbidden、重试成功的问题排查与解决

问题现象

  • 执行AWS CLI的s3 cp命令从S3存储桶下载文件时,首次尝试返回403 Forbidden错误;立即重试即可正常完成下载。
  • 等待数分钟后再次尝试,仍会重复“首次失败、重试成功”的规律,且该现象不局限于单个文件,测试多个文件均存在此问题。

执行的命令(已隐藏敏感凭证)

C:\Users\jka> SET aws_access_key_id=AKIXXXXXXXXXXXXXXLNJ
C:\Users\jka> SET aws_secret_access_key=1JcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcOZR
C:\Users\jka> SET role_arn=arn:aws:iam::955XXXXXXX24:user/svc-comp-files-exchange
C:\Users\jka> aws s3 cp "s3://data-exchange-prod-svc-comp-files-exchange/RESI/FromCLIENT/Onboarding_Activation_1918596894_20230327.dat.pgp" "\\prod-1\prod_vol1\JOBS\CLIENT_AWS_S3\IT\Test\Onboarding_Activation_1918596894_20230327.dat.pgp"

可能原因

  1. AWS CLI凭证缓存失效:CLI会缓存凭证信息,首次请求可能调用了过期/无效的缓存凭证,重试时重新获取了有效凭证。
  2. IAM权限同步延迟:若近期修改过IAM用户svc-comp-files-exchange的权限,AWS全局权限同步可能存在短暂延迟,导致首次请求权限校验不通过。
  3. S3资源策略一致性问题:存储桶策略或ACL变更后,全局生效存在延迟,首次请求时策略尚未同步到所有节点。
  4. 网络/DNS解析波动:首次请求可能因DNS解析延迟、网络丢包等问题被AWS服务判定为无效请求,返回403错误(部分场景下网络问题会被包装为权限错误)。

解决步骤

1. 清除CLI凭证缓存

Windows系统下,CLI凭证默认存储在C:\Users\<你的用户名>\.aws\credentials文件中,直接删除该文件对应配置项,或执行以下命令清除缓存:

aws configure delete aws_access_key_id
aws configure delete aws_secret_access_key

重新设置凭证后再次测试下载。

2. 校验IAM权限配置

确认用户svc-comp-files-exchange的IAM策略包含以下必要权限(需同时覆盖存储桶和对象层级):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::data-exchange-prod-svc-comp-files-exchange",
                "arn:aws:s3:::data-exchange-prod-svc-comp-files-exchange/*"
            ]
        }
    ]
}

缺少ListBucket权限可能导致无法定位对象,触发403错误。

3. 强制禁用凭证缓存

在AWS配置文件(C:\Users\<你的用户名>\.aws\config)中添加以下配置,禁用凭证缓存:

[default]
credential_process_timeout = 0

或执行命令时明确指定临时配置文件,避免使用缓存:

aws s3 cp "s3://bucket/path/file" "local/path" --profile temp-profile

4. 排查网络环境

  • 执行nslookup s3.amazonaws.com确认DNS解析正常,是否存在解析延迟。
  • 更换网络环境(如切换至手机热点)测试,排除本地网络限制导致的问题。

5. 启用调试日志定位问题

执行下载命令时添加--debug参数,对比首次和重试请求的凭证、响应头信息,明确失败原因:

aws s3 cp "s3://data-exchange-prod-svc-comp-files-exchange/RESI/FromCLIENT/Onboarding_Activation_1918596894_20230327.dat.pgp" "\\prod-1\prod_vol1\JOBS\CLIENT_AWS_S3\IT\Test\Onboarding_Activation_1918596894_20230327.dat.pgp" --debug

内容的提问来源于stack exchange,提问作者jbunny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:49:56