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

登录AWS账号后浏览器访问S3存储桶遇ACCESS_DENIED错误排查

S3存储桶策略ACCESS_DENIED错误原因及解决提示

错误原因

你的存储桶策略仅对桶内对象(arn:aws:s3:::MY-BUCKET/*)授予了全量权限,但通过浏览器或AWS控制台访问存储桶时,除了对象的读写权限,还需要对存储桶本身执行s3:ListBucket这类桶级操作的权限。当前策略未包含桶级资源(arn:aws:s3:::MY-BUCKET),所以即便是账号root用户,也无法完成列表存储桶内容、通过控制台导航访问对象等操作,最终返回ACCESS_DENIED错误。

当你把Principal设为"*"时,存储桶变为公开访问,此时AWS的公共访问机制会自动放行必要的桶级操作(比如列表对象),所以能正常查看文件,但这种配置会带来严重的安全风险。

解决提示

修改存储桶策略,同时包含桶级和对象级资源,并补充对应的必要权限:

方案一:合并资源与权限

"Statement": [
    {
        "Sid": "Stmt1660020066047",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::ACCOUNT_ID:root"
        },
        "Action": [
            "s3:ListBucket",
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::MY-BUCKET",
            "arn:aws:s3:::MY-BUCKET/*"
        ]
    }
]

方案二:拆分桶与对象权限(更清晰)

"Statement": [
    {
        "Sid": "AllowBucketList",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::ACCOUNT_ID:root"
        },
        "Action": "s3:ListBucket",
        "Resource": "arn:aws:s3:::MY-BUCKET"
    },
    {
        "Sid": "AllowObjectAllActions",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::ACCOUNT_ID:root"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::MY-BUCKET/*"
    }
]

另外,也可以直接给root用户附加IAM权限策略,这种方式对于账号内的用户权限管理会更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:39:24