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

S3存储桶Access Denied问题:为开发者配置CRUD权限仍遇403错误

排查S3 403 Forbidden错误的关键点

咱们一步步拆解你的问题,找出导致权限拒绝的核心原因:

1. 桶策略的Resource范围不完整

你当前的桶策略里,Resource只指定了存储桶本身的ARN:arn:aws:s3:::myapp-dev1-bucket,但这个范围仅覆盖存储桶级别的操作(比如ListBucket),而你需要的PutObject、GetObject、DeleteObject这类对象级操作,必须包含桶内所有对象的路径。

修正后的桶策略需要同时覆盖桶和对象:

{
  "Id": "Policy123456789",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt123456789",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::myapp-dev1-bucket",
        "arn:aws:s3:::myapp-dev1-bucket/*"
      ],
      "Principal": {
        "AWS": [
          "arn:aws:iam::1234567890:user/myapp-dev1"
        ]
      }
    }
  ]
}

2. 确认IAM用户的权限策略是否配置正确

你提到给myapp-dev1分配了自定义策略,但要确保该策略的Resource同样覆盖桶和对象,且权限与操作匹配。比如正确的IAM策略应该类似:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::myapp-dev1-bucket",
        "arn:aws:s3:::myapp-dev1-bucket/*"
      ]
    }
  ]
}

另外,如果你的操作需要先列出账户下的所有存储桶(比如用AWS CLI执行s3 ls),还得添加s3:ListAllMyBuckets权限,对应的Resource设为*。

3. 检查S3存储桶的「块公共访问」设置

这是很容易被忽略的坑:如果你的存储桶开启了阻止公共访问(无论是账户级别还是桶级别),哪怕桶策略和IAM策略都允许访问,也会被强制拒绝。

你可以进入S3存储桶的「权限」标签,找到「块公共访问」设置,确认是否勾选了阻止存储桶和对象公共访问等选项。如果开启了,临时关闭后再测试。

4. 验证请求操作与权限的匹配性

不同操作对应不同的权限和Resource范围:

  • 上传/下载对象(比如s3 cp):需要PutObject/GetObject,对应Resource为arn:aws:s3:::myapp-dev1-bucket/*
  • 列出桶内对象(比如s3 ls s3://myapp-dev1-bucket):需要ListBucket,对应Resource为arn:aws:s3:::myapp-dev1-bucket

如果操作对应的权限或Resource不匹配,也会触发403错误。

快速测试建议

你可以用AWS CLI的模拟命令验证权限是否生效,比如:

aws iam simulate-custom-policy --policy-input-list file://your-iam-policy.json --action-names s3:PutObject --resource-arns arn:aws:s3:::myapp-dev1-bucket/test.jpg --principal-arn arn:aws:iam::1234567890:user/myapp-dev1

这个命令能帮你快速确认权限配置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:43:24