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

如何为AWS IAM用户配置指定S3文件夹的专属操作权限并验证策略有效性

权限配置的位置选择
  • 权限既可以在IAM侧绑定给用户/用户组,也可以通过S3桶的资源策略完成配置,生产场景下优先在IAM侧配置,全程不需要修改S3桶的访问权限开关,可避免误操作触发桶的公共访问风险。
  • 无需从托管S3策略里逐条挑选读写条目,用自定义策略精确匹配权限范围即可,不需要引入冗余的全桶访问权限。
现有自定义策略的不匹配问题
  • 完全不支持登录AWS控制台:现有策略未配置任何控制台基础访问权限,用户无法通过IAM账号登录控制台,更无法跳转进入S3控制台。
  • 资源范围配置错误:s3:ListBucket的合法适用资源是桶本身的ARN(不带/*后缀的arn:aws:s3:::static.XXXXXX.com),当前将该动作绑定到带/*的对象路径资源上,会直接导致列取文件列表的权限失效,用户进入S3控制台后无法加载文件列表。
  • 缺少必需的操作权限:
    • 未配置s3:GetObject权限,无法实现目标文件夹内文件的读取、下载操作
    • 缺少S3控制台加载依赖的基础权限:s3:ListAllMyBuckets(用于在控制台展示当前用户有权限的桶列表)、s3:GetBucketLocation(用于控制台获取桶的所在区域信息),缺少这两个权限时控制台会直接返回权限拒绝错误
  • MFA条件逻辑失效:使用BoolIfExists判断时,如果请求不携带MFA相关参数(比如日常命令行调用、控制台默认请求逻辑),条件会直接判定为通过,根本无法实现强制多因素认证的管控效果。
修正后的可用策略
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ConsoleBasicAccess",
            "Effect": "Allow",
            "Action": [
                "iam:GetUser",
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListTargetFolder",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::static.XXXXXX.com",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "images/carousel/",
                        "images/carousel/*"
                    ]
                }
            }
        },
        {
            "Sid": "TargetObjectOperations",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::static.XXXXXX.com/images/carousel/*"
        }
    ]
}
配置验证要点
  • 使用对应IAM用户登录控制台,确认能在S3的桶列表中看到目标存储桶
  • 进入桶内images/carousel/路径,验证是否能正常执行文件上传、下载、删除操作
  • 检查是否无法访问同桶下images/carousel/路径之外的其他文件,确认权限没有越界

提示:如果业务不需要强制多因素认证,可直接移除原有策略中的MFA判断逻辑;如果需要强制MFA,将条件判断从BoolIfExists调整为Bool类型即可生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 18:54:03