CloudFormation部署IAM策略遇MalformedPolicyDocument错误求助
解决CloudFormation中IAM Policy的MalformedPolicyDocument错误
我看到你在部署CloudFormation模板时遇到了IAM Policy的语法错误,这个问题的核心原因是Policy文档里的Version字段值不符合AWS的要求。
AWS IAM Policy仅支持两个合法的版本号:
2008-10-17(旧版,不推荐使用)2012-10-17(当前推荐的标准版本)
你模板里用的2020-01-29是无效的版本值,这直接触发了MalformedPolicyDocument错误。
修正后的模板代码
JenkinsInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Path: "/" Roles: - Ref: "JenkinsRole" JenkinsPolicy: Type: AWS::IAM::Policy Properties: PolicyName: "JenkinsPolicy" PolicyDocument: Version: "2012-10-17" # 修改为AWS认可的合法版本号 Statement: - Effect: "Allow" Action: - "s3:GetObject" - "s3:GetObjectVersion" - "s3:PutObject" - "s3:DeleteObject" Resource: "*" - Effect: "Allow" Action: - "codedeploy:ListApplications" - "codedeploy:ListDeploymentGroups" - "codedeploy:RegisterApplicationRevision" - "codedeploy:CreateDeployment" - "codedeploy:GetDeploymentConfig" - "codedeploy:GetApplicationRevision" - "codedeploy:GetDeployment" Resource: "*" Roles: - Ref: "JenkinsRole"
额外检查点(若修改后仍报错)
如果调整版本号后问题依旧,可以排查以下细节:
- YAML语法是否规范:比如有没有多余的逗号、缩进是否保持一致(YAML对缩进敏感)
- Statement中的Action名称是否拼写准确,有没有遗漏或错误的服务前缀
- Resource字段的格式是否符合要求(你当前用的
*是合法的通配符,这部分没问题)
内容的提问来源于stack exchange,提问作者Anvesha Saxena
相关产品推荐
相关产品推荐

