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

AWS S3 IAM策略限制特定文件夹访问的问题排查

S3 IAM策略访问问题分析

第一个策略被拒绝的原因

你的第一个策略存在两个关键错误:

  • Resource配置错误:s3:GetObject是对象级操作,对应的Resource必须指向存储桶内的对象(格式为arn:aws:s3:::mybucket/*),而你写的是桶的ARN(arn:aws:s3:::mybucket),桶级ARN仅适用于ListBucket、PutBucket等桶级操作。
  • Condition条件错误:s3:prefix条件是用于ListBucket操作时过滤列出的前缀,GetObject操作需要用s3:key条件来匹配对象的完整键路径。

修正后的第一个策略应该是:

{
    "Statement": [
        {
            "Action": [
                "s3:GetObject"
            ],
            "Condition": {
                "StringLike": {
                    "s3:key": [
                        "myfolder/*"
                    ]
                }
            },
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::mybucket/*"
            ]
        }
    ]
}

第二个策略能访问notmyfolder的原因

你第二个策略里的Resource写的是arn:aws:s3:::pangea-configuration/myfolder/*,但你的存储桶名为mybucket,这明显是桶名写错了。如果实际存储桶名是pangea-configuration,那能访问notmyfolder下的文件,大概率是因为存在其他允许访问该路径的IAM策略(比如你有管理员权限、或者其他策略允许访问整个存储桶),或者在策略模拟器测试时输入的对象路径有误。

正确的第二个策略应该把桶名修正为mybucket:

{
    "Statement": [
        {
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::mybucket/myfolder/*"
            ]
        }
    ]
}

这个策略会严格限制仅允许访问mybucket下myfolder内的所有对象,不会允许访问notmyfolder,除非有其他冲突的策略存在。

内容的提问来源于stack exchange,提问作者Jack-of-some

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:57:40