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

如何配置IAM用户仅拥有S3对象上传权限,禁止删除、列取操作

问题原因

你当前的配置仅做了最小权限允许,但没有显式禁止不需要的操作。如果该IAM用户继承了所属用户组、身份策略的其他S3允许权限,就会出现仍可执行删除、列取操作的问题。Wasabi完全兼容S3的IAM权限评估逻辑:显式拒绝 > 任意允许 > 隐式拒绝,只需按以下步骤配置即可解决。

配置步骤

  1. 清理多余权限
  • 检查指定IAM用户及所属用户组附加的所有权限策略,删除包含s3:DeleteObject、s3:ListBucket、s3:*这类通配或多余允许规则的策略,仅保留你之前配置的仅允许s3:PutObject的策略即可。
  1. 补充桶策略的显式拒绝规则
    显式拒绝是避免多余权限生效的最可靠方案
    替换你现有的桶策略为以下内容,注意替换所有占位符:
  • 你的Wasabi账号ID:可在Wasabi控制台账号设置页查询
  • 指定IAM用户名:你要限制权限的IAM用户名称
  • my_bucket:替换为你的实际存储桶名称
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicRead",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my_bucket/*"
    },
    {
      "Sid": "DenyRestrictedActions",
      "Effect": "Deny",
      "Principal": {
        "AWS": "arn:aws:iam::你的Wasabi账号ID:user/指定IAM用户名"
      },
      "Action": [
        "s3:DeleteObject",
        "s3:ListBucket",
        "s3:PutObjectAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::my_bucket",
        "arn:aws:s3:::my_bucket/*"
      ]
    }
  ]
}

补充说明:

  • 额外添加s3:PutObjectAcl的拒绝规则,避免用户上传对象时修改ACL绕开权限控制
  • s3:ListBucket作用于桶本身资源(不带/*后缀),因此Resource配置需要同时包含桶和对象的ARN
  1. 验证配置
    使用该IAM用户的凭证调用列取、删除对象接口,会返回403权限错误,仅上传对象接口可正常调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:45:08