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

无法通过S3 Access Point向AWS S3存储桶上传文件的问题排查

问题

我正在学习并测试S3 Access Point的工作机制,尝试让仅拥有S3存储桶只读权限的IAM用户通过S3 Access Point向存储桶上传文件,但未达到预期效果。操作步骤如下:

  • 创建了名为basic的IAM用户,通过用户组附加了AWS托管策略AmazonS3ReadOnlyAccess,该用户组仅包含此策略。
  • 在S3控制台创建了名为my-dummy-bucket的存储桶,随后为该存储桶创建了名为my-first-access-point的S3 Access Point,该接入点不在VPC内,可通过互联网访问。
  • 创建接入点时使用了如下策略:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::1234567890:user/basic"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:eu-west-2:1234567890:accesspoint/my-first-access-point/object/basic-user-directory/*"
        }
    ]
}

该策略意图允许basic用户向basic-user-directory上传文件/对象。

  • 用basic用户登录AWS控制台,进入S3控制台,能看到接入点和存储桶,尝试通过接入点向basic-user-directory上传文件时出现错误。

请问我的配置中缺少了什么,该如何修复?


问题分析与修复方案

你的配置存在两个关键缺失:

1. IAM用户缺少对S3 Access Point的基础操作权限

AmazonS3ReadOnlyAccess托管策略仅授权用户对S3存储桶执行只读操作,未包含访问S3 Access Point本身的必要权限(比如列出接入点对象、获取接入点信息、执行PutObject操作等)。AWS权限遵循"默认拒绝"原则,即使接入点策略允许操作,用户自身没有显式权限的话也无法执行。

需要给basic用户所在的用户组添加一条自定义IAM策略,补充对该接入点的权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetAccessPoint",
                "s3:ListAccessPoints",
                "s3:ListObjectsV2",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:eu-west-2:1234567890:accesspoint/my-first-access-point",
                "arn:aws:s3:eu-west-2:1234567890:accesspoint/my-first-access-point/object/basic-user-directory/*"
            ]
        }
    ]
}

其中ListObjectsV2是控制台操作必需的权限,否则用户无法在控制台查看接入点内的目录结构;PutObject则是显式授权用户执行上传操作。

2. 接入点策略缺少对目录本身的权限(可选但推荐)

当前接入点策略的Resource仅指向basic-user-directory/*,如果用户需要通过控制台自动创建该目录(上传文件时触发),可能会因权限不足失败。可以修改接入点策略的Resource范围,包含目录本身:

"Resource": [
    "arn:aws:s3:eu-west-2:1234567890:accesspoint/my-first-access-point/object/basic-user-directory",
    "arn:aws:s3:eu-west-2:1234567890:accesspoint/my-first-access-point/object/basic-user-directory/*"
]

修复步骤总结

  • 给basic用户所在用户组添加上述自定义IAM策略,补充对接入点的操作权限。
  • (可选)调整接入点策略的Resource范围,包含目录本身。
  • 重新用basic用户登录控制台,尝试上传文件。

内容的提问来源于stack exchange,提问作者Wai Yan Hein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:08:25