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

创建AWS基于资源的策略时指定IAM组为Principal出现错误如何解决?

错误根因

AWS基于资源的策略(包括你正在使用的S3存储桶策略)存在原生限制:不支持将IAM用户组作为Principal参数的取值。

IAM用户组仅可用于配置身份型策略(即附加在用户、组、角色上的权限策略),资源型策略的Principal仅支持填写IAM用户、IAM角色、AWS根账户、AWS服务、联合身份主体等类型的ARN,填写用户组ARN会直接触发策略校验不通过的报错。

你使用的错误配置示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<acc_number>:group/dev-group"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<bucket>/text.txt"
        }
    ]
}
可行解决方案
  • 方案1:替换Principal为用户组内的IAM用户列表
    如果组内用户数量较少,可以直接将Principal的AWS字段修改为数组,列出所有dev-group下的IAM用户ARN即可,示例如下:
"Principal": {
    "AWS": [
        "arn:aws:iam::<acc_number>:user/dev-user1",
        "arn:aws:iam::<acc_number>:user/dev-user2"
    ]
}
  • 方案2:为IAM用户组附加身份型权限策略
    无需修改当前S3存储桶策略,转而给dev-group用户组直接附加对应权限策略,允许组内用户执行s3:GetObject操作,目标资源为对应S3对象的ARN即可,只要S3存储桶没有显式拒绝该组用户的访问,权限即可正常生效。
  • 方案3:通过IAM角色中转授权
    创建一个拥有对应S3访问权限的IAM角色,将存储桶策略的Principal替换为该角色的ARN,再给dev-group内的所有用户授予扮演该角色的权限,用户通过切换角色即可访问目标S3资源,适合用户数量多、需要统一权限生命周期管理的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:06:03