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

MinIO中s3:ListAllMyBuckets Bucket Policy失效问题咨询

问题分析与解决

核心原因:s3:ListAllMyBuckets的资源匹配规则特殊

s3:ListAllMyBuckets是S3的全局级操作,它作用于整个S3服务而非单个存储桶,因此对它的权限配置不能使用针对具体存储桶的ARN(如arn:aws:s3:::*)。你当前策略里的arn:aws:s3:::*匹配的是所有存储桶的资源,但这个操作不支持按存储桶粒度授权,导致权限无法生效。

修正后的权限策略

要让s3:ListAllMyBuckets生效,需要将该操作对应的资源指定为S3服务的全局ARN(arn:aws:s3:::),同时保留s3:CreateBucket的存储桶级资源匹配,示例如下:

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

你也可以将两个操作合并到同一个Statement中,同时包含两种资源类型:

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

关于第二个策略生效的说明

你使用s3:*并限定前缀资源的策略能生效,是因为当权限包含全量S3操作时,S3会自动适配全局操作的资源要求。但这种配置存在安全风险——它授予了该前缀下存储桶的所有S3操作权限,不符合最小权限原则,不建议用于生产环境。

对齐你的核心目标

你的需求是让userone的存储桶不被其他用户查看,除了配置IAM权限外,还需要确保存储桶的桶策略没有开放公共访问,同时检查账户级的S3公共访问设置是否开启了阻止公共访问的规则,避免意外的权限泄露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:40:32