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

如何创建IAM策略实现S3对象的通配符匹配列表访问

S3 IAM策略修正方案

原策略问题

  1. 未授予s3:GetObject权限:仅列表操作无法查看对象内容,必须补充该权限才能访问对象。
  2. ListBucket条件逻辑错误:S3列表桶时,s3:prefix用于指定前缀范围,不能直接用它过滤对象名称;需通过s3:object-key条件筛选符合*XYZ*规则的对象。

修正后的IAM策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowBucketNavigation",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::myBucket",
            "Condition": {
                "StringEquals": {
                    "s3:delimiter": "/",
                    "s3:prefix": [
                        "",
                        "users/",
                        "users/userA/"
                    ]
                }
            }
        },
        {
            "Sid": "FilterObjectsInUserAPrefix",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::myBucket",
            "Condition": {
                "StringLike": {
                    "s3:object-key": "users/userA/*XYZ*"
                }
            }
        },
        {
            "Sid": "AllowGetMatchingObjects",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::myBucket/users/userA/*XYZ*"
        },
        {
            "Sid": "AllowBucketListAndLocation",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        }
    ]
}

策略说明

  • 导航权限:第一个ListBucket语句允许用户依次访问桶根目录、users/前缀、users/userA/前缀,配合/分隔符实现类目录导航。
  • 对象过滤:第二个ListBucket语句通过s3:object-key条件,仅显示users/userA/前缀下名称包含XYZ的对象。
  • 对象访问:s3:GetObject权限明确限定在users/userA/*XYZ*资源上,确保用户只能获取符合规则的对象内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:23:02