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

如何为指定IAM用户添加允许s3:ListBucket的内联策略?

解决方法说明

错误原因

你写的是资源策略格式(带Principal元素),但误将其作为IAM身份内联策略(附加到用户/角色/组的策略)添加。身份策略不需要指定Principal——因为策略本身就是绑定到某个IAM身份的,这个身份就是默认的授权主体,额外添加Principal会触发格式错误。

两种可行方案

方案1:修改为正确的IAM用户内联策略

直接移除Principal元素,策略仅定义允许的操作和目标资源即可,因为策略会直接附加到目标IAM用户上,自动关联该用户为授权主体。修改后的代码如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::bucket-name"
        }
    ]
}

注意:将bucket-name替换为你的实际存储桶名称(不要包含空格),同时确保用户ARN和存储桶ARN的账号ID、名称信息准确。

方案2:将策略作为S3存储桶的资源策略添加

如果想通过资源策略的方式直接在存储桶上配置访问权限,可保留原策略结构,但不要添加到IAM用户的内联策略中,而是进入S3控制台找到对应存储桶,在「权限」→「桶策略」页面粘贴这段代码。需要注意:

  • 确认存储桶Resource的ARN格式正确(桶名无空格)
  • 确保目标IAM用户没有被其他策略拒绝该操作
  • 若为跨账号授权,需确保对方账号的用户有对应的身份策略允许该操作

内容的提问来源于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 21:20:40