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

跨账号假设IAM角色后无法查看指定S3 Bucket问题排查

问题原因与解决方案

你遇到的问题核心是缺少s3:ListAllMyBuckets权限。

AWS S3控制台在展示桶列表时,第一步会调用s3:ListAllMyBuckets接口获取当前身份能访问的所有桶的元数据(比如桶名、创建时间),之后才会根据你对单个桶的ListBucket权限,决定是否展示该桶的内容。你的现有策略只允许对foobar桶执行ListBucket和GetObject,但没有允许列出账号下所有桶的权限,所以控制台直接看不到任何桶。

修正后的策略

在原有策略中添加一条允许s3:ListAllMyBuckets的语句(该操作的资源只能指定为*,因为它是账号级别的全局操作):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::foobar"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::foobar/*"
        }
    ]
}

补充说明

  • 如果你用CLI直接执行aws s3 ls s3://foobar,不需要ListAllMyBuckets也能成功,因为这个命令直接调用ListBucket接口,跳过了桶列表的获取步骤;但控制台必须先加载全量桶列表,所以必须添加该权限。
  • s3:ListAllMyBuckets仅用于展示桶的存在,不会赋予你对其他桶的任何操作权限,后续对桶的操作仍受对应桶的权限策略控制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:20:09