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

如何为用户添加s3:ListBucket权限?选S3桶策略还是IAM内联策略?

解决S3桶ListBucket权限缺失的问题

嘿,这个场景我碰到过好多次,给你拆解清楚怎么处理,以及该选哪种方式:

结论:两种方式都可行,看你的管理需求选

用户x需要的s3:ListBucket权限,既可以加到用户的IAM内联策略,也可以加到目标S3桶的桶策略里,下面分别说操作步骤和适用场景:

方式一:添加到用户x的IAM内联策略

这种方式把权限直接绑定给用户,适合单独给这个用户授权的场景,管理起来更集中:

  1. 打开IAM控制台,找到用户x的详情页
  2. 切换到「权限」标签,点击「添加内联策略」
  3. 在可视化编辑器里,选择「S3」服务,找到并勾选s3:ListBucket权限
  4. 在「资源」部分,指定目标桶的ARN(格式是arn:aws:s3:::你的目标桶名称)
  5. 预览策略没问题后,给策略起个名字(比如AllowListTargetS3Bucket),保存即可

方式二:添加到目标S3桶的桶策略

这种方式把权限配置在桶上,适合多个用户/角色需要访问该桶,或者跨账号授权的场景:

  1. 打开S3控制台,找到目标桶的详情页
  2. 切换到「权限」标签,点击「桶策略」进入编辑器
  3. 在现有的JSON策略里,新增一条允许用户x执行s3:ListBucket的语句,示例如下:
{
  "Version": "2012-10-17",
  "Statement": [
    // 保留你原来的GetObject权限语句
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::你的AWS账号ID:user/x"
      },
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::你的目标桶名称"
    }
  ]
}
  1. 验证桶策略语法无误后,保存即可

关键提醒

用户现有的s3:ListAllMyBuckets权限只是让他能看到自己账号下所有桶的列表,但要查看某个桶内的具体内容,必须要有该桶的s3:ListBucket权限,这两个权限是互补的,不能互相替代哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:55:41