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

配置公共仅可写入、Root用户全权限的S3 Bucket政策问题

S3 Bucket权限配置:公众可上传+Root全权限

你的问题出在第二条Deny语句——它用了Principal: "*",会拒绝**所有用户(包括你的Root账户)**的所有S3操作。AWS权限判断里,Deny的优先级远高于Allow,所以哪怕你第一条给Root开了权限,也会被这条全局Deny直接覆盖,导致Root无法查看对象列表。

下面是满足需求的正确Bucket政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::MY_ACCOUNT_ID:root"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::BUCKET_NAME_HERE",
                "arn:aws:s3:::BUCKET_NAME_HERE/*"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::BUCKET_NAME_HERE/*"
        }
    ]
}

逻辑说明:

  • 第一条给Root账户开放Bucket和所有对象的全部S3权限,包括列表、读取、删除、上传等,完全满足Root的操作需求。
  • 第二条仅允许所有公众用户执行s3:PutObject(上传文件),且仅针对Bucket下的对象资源(/*),公众默认没有其他权限(AWS权限默认是拒绝,除非明确允许),自然无法读取、删除或列出对象。

替换代码中的MY_ACCOUNT_ID和BUCKET_NAME_HERE为你的实际账户ID和Bucket名称即可生效。

内容的提问来源于stack exchange,提问作者Chris Lowth.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:42:34