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

Amazon S3权限配置咨询:允许浏览器取图,禁止公共List/Put操作

Amazon S3 权限配置问题解答

1. 如何配置权限,允许浏览器从S3获取图片,但禁止公共的List或Put操作?

核心思路是用桶策略做精准权限控制,避免开全桶公开:

  • 首先调整Block all public access设置:仅取消勾选「Block public access to buckets and objects granted through new public bucket policies」,其余三个选项保持开启,防止意外的公共权限泄露。
  • 给桶添加如下策略(替换your-bucket-name为实际桶名):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::your-bucket-name/*"
    },
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": [
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::your-bucket-name",
        "arn:aws:s3:::your-bucket-name/*"
      ]
    }
  ]
}
  • 注意不要给桶或对象设置「公共读」的ACL,用桶策略统一控制更安全。这个策略允许所有用户通过浏览器获取图片(GetObject是对象级操作),但直接拒绝公共用户的桶列表查看和对象上传操作。

2. 仅允许通过编程访问执行List/Put操作

编程访问依赖IAM身份(用户/角色)的密钥或角色关联,步骤如下:

  • 方案1:IAM用户(适合本地脚本/第三方工具)
    创建一个IAM用户,仅开启「编程访问」(关闭控制台访问权限),然后给该用户附加如下权限策略:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::your-bucket-name",
        "arn:aws:s3:::your-bucket-name/*"
      ]
    }
  ]
}
  • 方案2:IAM角色(适合云服务,如EC2/Lambda)
    创建IAM角色并附加上述权限策略,然后将角色关联到对应的云服务实例(比如给EC2实例分配角色),服务端代码可以直接通过AWS SDK自动获取临时凭证,无需硬编码密钥。
  • 结合第一个问题的桶策略,公共用户无法执行List/Put,只有授权的IAM身份能通过编程方式完成这些操作。

3. 默认取消勾选Block all public access是否仅将公共权限限制为下载?

完全不是。Block all public access是由4个独立选项组成的集合:

  1. Block public access to buckets and objects granted through any access control lists (ACLs)
  2. Block public access to buckets and objects granted through new public bucket policies
  3. Block public access to buckets and objects granted through any public bucket policies
  4. Block public and cross-account access if bucket has public policies

取消总开关意味着这4个选项全部关闭,此时你的桶可以被配置为完全公开(包括List、Put甚至删除操作),只要对应的ACL或桶策略允许。不能默认认为取消总开关就只允许下载,必须通过桶策略或IAM权限精准定义允许的操作,同时建议根据需求单独调整这4个选项,而不是直接关闭总开关。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:20:19