AWS委托策略报错:基于资源的策略含无效JSON,UI验证通过但添加失败
解决资源策略提示“This resource-based policy contains invalid JSON”的问题
你的策略触发错误的核心原因是**Principal字段为空对象{}**——AWS基于资源的策略要求必须明确指定授权主体(比如AWS账号、IAM角色、AWS服务等),空的Principal属于无效配置,哪怕JSON格式本身语法正确,也会被判定为无效策略。
给你几个具体的解决方向:
- 指定具体授权主体:根据你的需求填写对应的主体信息,比如授权某个AWS根账号:
或者授权某个IAM角色:"Principal": {"AWS": "arn:aws:iam::123456789012:root"}"Principal": {"AWS": "arn:aws:iam::123456789012:role/YourRoleName"} - 允许所有主体(仅测试/非生产场景用):如果只是测试需要开放所有访问(不推荐生产环境),可以用通配符:
"Principal": "*"
修正后的完整策略示例(以授权特定AWS账号为例):
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificAccountOrganizationsAccess", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root"}, "Action": [ "organizations:*" ], "Resource": [ "*" ] } ] }
注意:不同AWS服务对资源策略的Principal可能有额外限制,比如Organizations相关资源可能要求特定的主体类型,调整时要结合实际使用场景确认。
内容的提问来源于stack exchange,提问作者joshp
相关产品推荐
相关产品推荐

