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

S3策略报错:如何配置IAM用户仅查看同名子文件夹?

解决S3用户文件夹权限隔离的策略错误问题

你遇到的报错核心原因是:s3:ListBucket动作的资源必须是S3桶的ARN,不能直接指定文件夹路径。ListBucket是针对整个桶的列表操作,需要通过条件过滤来限制用户可见的内容,而非直接把文件夹设为资源。

正确的IAM用户权限策略

下面的策略可以实现用户只能访问与自己用户名同名的文件夹,且无法查看其他用户的内容:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::my-bucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "",
                        "${aws:username}/",
                        "${aws:username}/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::my-bucket/${aws:username}/*"
        }
    ]
}

策略说明

  1. 桶列表权限控制

    • Resource指定为桶的ARN arn:aws:s3:::my-bucket,符合s3:ListBucket动作的资源要求。
    • 通过Condition中的StringLike和s3:prefix,限制用户仅能看到根目录、自己的文件夹(${aws:username}/)及文件夹下的所有内容,避免用户看到其他用户的文件夹。
  2. 对象操作权限控制

    • 允许用户对自己文件夹下的所有对象执行上传、下载、删除操作,资源路径arn:aws:s3:::my-bucket/${aws:username}/*确保权限严格隔离。

额外纠正

你原来的策略中使用了Principal: "*",这是桶策略的写法。IAM用户的权限策略不需要Principal字段,直接定义允许的动作和资源即可,更推荐用IAM用户策略实现这种权限隔离,管理更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:00:56