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

如何配置S3权限让组织内所有成员可访问他人上传的对象

解决方案

方案1:开启桶所有者强制执行(推荐,无需修改用户上传逻辑)

S3提供的「桶所有者强制执行」功能可以从根上解决对象所有权问题,开启后所有新上传到桶的对象所有权会强制归属桶所属的AWS账号,无需用户上传时额外加ACL参数。
操作步骤:

  • 进入S3控制台,找到目标存储桶,切换到「权限」标签页
  • 找到「对象所有权」配置模块,点击编辑
  • 选择「桶所有者强制执行」选项,保存配置即可
    配置生效后,你原有桶策略中授予的全局读权限会直接对sandbox目录下的所有新上传文件生效,组织内所有成员都可以读取其他成员上传的内容。

方案2:调整桶策略强制上传附带指定ACL(适合不想修改桶所有权配置的场景)

你之前添加Condition报错的原因是:s3:x-amz-acl条件仅对PutObject、PutObjectAcl这类写入操作有效,不能和GetObject等读操作放在同一条策略语句中,需要拆分读写权限为独立语句:

  1. 保留原有全局只读的策略语句不变
  2. 将sandbox目录的权限拆分为两条独立语句:
    • 第一条为sandbox目录的只读权限,无需加Condition
    • 第二条为sandbox目录的写入权限,单独添加ACL校验条件,参考配置如下:
{
    "Sid": "ForceSandboxUploadWithBucketOwnerFullControl",
    "Effect": "Allow",
    "Principal": {
        "AWS": ["arn:aws:iam::1234:root"]
    },
    "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
    ],
    "Resource": "arn:aws:s3:::my-bucket/sandbox/*",
    "Condition": {
        "StringEquals": {
            "s3:x-amz-acl": "bucket-owner-full-control"
        }
    }
}

该配置会拒绝所有未携带bucket-owner-full-controlACL的上传请求,确保所有新上传的文件都给桶所有者开放了全控权限,原有全局读策略即可正常生效。

注意事项

  • 以上两种方案仅对配置生效后新上传的文件有效,sandbox目录中已存在的旧文件需要桶所有者执行批量操作修改所有权/ACL后才能被其他成员读取。
  • 方案2需要组织所有成员上传sandbox文件时必须携带--acl bucket-owner-full-control参数,否则会上传失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:09:01