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

如何配置AWS S3权限,仅允许特定_user前缀的读写访问

解决方案

要实现仅允许指定前缀下的S3对象读写权限,你需要调整IAM策略的逻辑——由于IAM中Deny优先级高于Allow,直接先拒绝所有再允许部分的写法会导致允许规则被覆盖,正确的做法是仅拒绝不在指定前缀范围内的读写操作,同时利用默认的全权限允许合法路径的访问。

修正后的IAM策略

{
    "Version": "2012-10-17",
    "Id": "RestrictReadWriteToSpecificPrefixes",
    "Statement": [
        {
            "Sid": "DenyReadWriteExceptAllowedPrefixes",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::mybucket/*",
            "Condition": {
                "StringNotLike": {
                    "s3:ResourceKey": [
                        "1_user/*",
                        "2_user/*",
                        "10_user/*"
                    ]
                }
            }
        }
    ]
}

关键说明

  1. 路径匹配修正:原策略中Allow规则的Resource写为arn:aws:s3:::mybucket/*_user,仅匹配名称以_user结尾的单个对象,而非1_user/前缀下的所有对象。修正后通过1_user/*这类格式,精准匹配前缀下的所有子对象。
  2. 条件逻辑调整:通过StringNotLike条件判断,仅当请求的对象键(s3:ResourceKey)不在允许的前缀列表中时,才触发Deny操作。由于你默认拥有全权限,合法前缀下的读写操作不会被这个Deny规则影响。
  3. 资源范围控制:Resource指定为arn:aws:s3:::mybucket/*,仅针对存储桶内的对象,不会影响存储桶级别的操作(如创建桶等,若不需要可按需调整)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:01:08