AWS IAM Policy创建报错:The policy failed legacy parsing 求助
解决IAM Policy "the policy failed legacy parsing" 错误
你的Policy存在几个关键问题导致解析失败,具体修正方案如下:
问题1:日期符号错误
Version字段的日期值"2012–10–17"使用了中文全角破折号,AWS要求必须用英文半角连字符-,正确格式应为"2012-10-17"。
问题2:跨服务Action与Resource混合
第二个Statement同时包含S3和SES的Action,两类Action对应的Resource范围不兼容:
- S3的
GetObject/PutObject仅匹配S3 Bucket的ARN - SES的
SendRawEmail仅匹配SES身份的ARN
需拆分为两个独立Statement分别处理。
问题3:ARN参数拼写错误
<awsccountid>是拼写失误,应改为<awsaccountid>。
修正后的完整Policy代码
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LogCreatePut", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "S3GetPut", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::<awss3bucketname>/*" }, { "Sid": "SESSendRawEmail", "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "arn:aws:ses:<awsregion>:<awsaccountid>:identity/*" } ] }
额外提示
- 替换
<awss3bucketname>、<awsregion>、<awsaccountid>为你实际的AWS资源信息 - 拆分Statement后,每个Statement的Action与Resource一一对应,符合IAM Policy的规范要求
内容的提问来源于stack exchange,提问作者Kevin Apicella
相关产品推荐
相关产品推荐

