使用AWS Policy Generator生成的策略JSON验证失败,请求排查原因
问题原因及解决方法
你的策略验证失败是因为错误包含了Principal字段,和AWS Policy Generator本身无关,具体说明如下:
- IAM身份策略(用来给IAM用户/角色/组授权的策略)不需要
Principal字段——这类策略直接附加到IAM实体上,默认授权主体就是该实体本身,加了反而会导致验证不通过。 - 只有资源策略(比如SES身份的权限策略、S3桶策略)才需要
Principal,但这类策略是用来定义谁能访问该资源,而非给IAM实体授权。从你的需求来看,你应该是要给IAM实体授权发送SES邮件,所以不需要这个字段。
修改后的合法策略
删除多余的Principal和空Condition字段即可:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "stmt1657969589793", "Effect": "ALLOW", "Resource": "arn:aws:ses:eu-central-1:750383375762:identity/exophrenik@gmail.com", "Action": [ "ses:SendEmail", "ses:SendRawEmail", "ses:SendTemplatedEmail", "ses:SendBulkTemplatedEmail" ] } ] }
额外提示
如果是用Policy Generator生成策略时选错了类型(比如选了SES资源策略而非IAM策略),也会自动添加Principal字段。下次生成时注意选择对应的策略类型即可。
内容的提问来源于stack exchange,提问作者apboutos
相关产品推荐
相关产品推荐

