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

如何配置权限实现仅允许用户向单个S3存储桶上传文件

问题原因

  • 资源匹配错误:对象级操作(比如s3:PutObject上传文件)的作用资源需要指定到桶内对象路径arn:aws:s3:::my-bucket/*,你最初的策略只填写了存储桶本身的ARN,导致上传类权限不生效。
  • 控制台访问必备权限缺失:如果通过AWS网页控制台操作,必须授予s3:ListAllMyBuckets权限才能正常加载S3控制台的桶列表界面,否则登录后看不到任何存储桶。
  • 冗余权限过多:你最初通过可视化编辑器生成的策略包含大量不需要的高危权限,比如删除桶配置、删除对象版本、修改加密规则等,完全不符合你最小权限的需求。
  • 你后续补充的标记为正确的策略仍存在权限过宽问题:包含了下载文件s3:GetObject、删除文件s3:DeleteObject等你明确禁止的操作,需要进一步精简。

符合需求的最小权限策略

以下策略仅允许用户:1. 登录S3控制台看到存储桶列表(仅能访问你指定的my-bucket的内容,无法操作其他桶);2. 查看my-bucket内的文件列表;3. 上传文件到my-bucket,不允许下载、删除、修改配置等任何其他操作:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListAllBucketsForConsole",
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        },
        {
            "Sid": "AllowListSpecificBucketContent",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::my-bucket"
        },
        {
            "Sid": "AllowOnlyUploadFiles",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:AbortMultipartUpload"
            ],
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}

额外注意事项

如果你的存储桶开启了强制服务器端加密,需要确保上传的用户在上传时指定正确的加密配置,或者存储桶配置了默认加密,否则会触发权限拒绝报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:36:08