java - 未知字段操作(服务 : AmazonIdentityManagement; Status Code: 400)

标签 java amazon-web-services aws-cloudformation

每次堆栈形成并回滚时,我都会收到此错误。我不知道为什么。 “未知字段操作(服务:AmazonIdentityManagement;状态代码:400;错误代码:MalformedPolicyDocument;请求 ID:9c392f93-5d03-4b0c-a90b-00d2db58cb0b)”

尝试查找错误的含义,但找不到任何内容。

{
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
    "CodeCommitBranchName": {
        "Description": "CodeCommit branch name",
        "Type": "String",
        "Default": "master"
    }
},
"Resources": {
    "ManualApprovalSns": {
        "Type": "AWS::SNS::Topic",
        "Properties": {
            "Subscription": [ {
                "Endpoint": "<myemail>",
                "Protocol": "email"
            } ]
        }
    },      

    "JavaProjectRepository": {
        "Type": "AWS::CodeCommit::Repository",
        "Properties": {
            "Code": {
                "S3":{
                    "Bucket": "seis615-public",
                    "Key": "java-project.zip"
                }
            },
            "RepositoryName": "java-project",
            "RepositoryDescription": "Java-project code"
        }
    },

    "ArtifactBucket": {
        "Type": "AWS::S3::Bucket",
        "Properties": {
            "BucketEncryption": {
                "ServerSideEncryptionConfiguration": [
                    {
                        "ServerSideEncryptionByDefault": {
                            "SSEAlgorithm": "AES256"
                        }
                    }
                ]
            }
        }
    },

    "ArtifactBucketPolicy": {
        "Type": "AWS::S3::BucketPolicy",
        "Properties": {
            "Bucket": {
                "Ref": "ArtifactBucket"
            },
            "PolicyDocument": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Sid": "DenyUnEncryptedObjectUploads",
                        "Effect": "Deny",
                        "Principal": "*",
                        "Action": "s3:PutObject",
                        "Resource": {
                            "Fn::Join": [
                                "",
                                [
                                    {
                                        "Fn::GetAtt": [
                                            "ArtifactBucket",
                                            "Arn"
                                        ]
                                    },
                                    "/*"
                                ]
                            ]
                        },
                        "Condition": {
                            "StringNotEquals": {
                                "s3:x-amz-server-side-encryption": "aws:kms"
                            }
                        }
                    }
                ]
            }
        }
    },

    "AppBuildProject": {
        "Type": "AWS::CodeBuild::Project",
        "Properties": {
            "Artifacts": {
                "Type": "CODEPIPELINE"
            },
            "Description": "app build project",
            "Environment": {
                "ComputeType": "BUILD_GENERAL1_SMALL",
                "Image": "aws/codebuild/standard:2.0",
                "ImagePullCredentialsType": "CODEBUILD",
                "Type": "LINUX_CONTAINER"
            },
            "ServiceRole": { "Fn::GetAtt": [ "AppBuildRole", "Arn" ] },
            "Source": {
                "Type": "CODECOMMIT"
            }
        }
    },

    "AppBuildRole": {
        "Type": "AWS::IAM::Role",
        "Properties": {
          "AssumeRolePolicyDocument": {
             "Version" : "2012-10-17",
             "Statement": [ {
                "Effect": "Allow",
                "Principal": {
                   "Service": [ "codebuild.amazonaws.com" ]
                },
                "Action": [ "sts:AssumeRole" ]
             } ]
          },
          "Path": "/",
          "Policies": [
            {
                "PolicyName": "CodeBuildAccess",
                "PolicyDocument": {
                  "Version": "2012-10-17",
                  "Statement": [
                    {
                        "Effect": "Allow",
                        "Resource": [
                            {"Fn::Sub": "arn:aws:s3:::codepipeline-${AWS::Region}-*"}
                        ],
                        "Action": [
                            "s3:PutObject",
                            "s3:GetObject",
                            "s3:GetObjectVersion",
                            "s3:GetBucketAcl",
                            "s3:GetBucketLocation"
                        ]
                    },
                    {
                        "Effect": "Allow",
                        "Resource": [
                            {
                                "Fn::GetAtt": [
                                    "ArtifactBucket",
                                    "Arn"
                                ]
                            },
                            {"Fn::Join": [
                                "",
                                [
                                    {
                                        "Fn::GetAtt": [
                                            "ArtifactBucket",
                                            "Arn"
                                        ]
                                    },
                                    "/*"
                                ]
                            ]}
                        ],
                        "Action": [
                            "s3:PutObject",
                            "s3:GetObject",
                            "s3:GetBucketAcl",
                            "s3:GetBucketLocation"
                        ]
                    },
                    {
                        "Sid": "CodeCommitPolicy",
                        "Effect": "Allow",
                        "Action": [
                            "codecommit:GitPull"
                        ],
                        "Resource": [
                            "*"
                        ]
                    },
                    {
                        "Sid": "CloudWatchLogAccessPolicy",
                        "Effect": "Allow",
                        "Action": [
                            "logs:*"
                        ],
                        "Resource": "*"
                    },
                    {
                        "Action": [
                            "elasticbeanstalk:*",
                            "ec2:*",
                            "elasticloadbalancing:*",
                            "autoscaling:*",
                            "cloudwatch:*",
                            "s3:*",
                            "sns:*",
                            "cloudformation:*",
                            "rds:*",
                            "sqs:*",
                            "ecs:*"
                        ],
                        "Resource": "*",
                        "Effect": "Allow"
                    }
                  ]
                }
              }
          ]
       }
      },

      "BuildLogPolicy": {
        "Type": "AWS::IAM::Policy",
        "Properties": {
           "PolicyName": "BuildLogAccess",
           "PolicyDocument": {
              "Version" : "2012-10-17",
              "Statement": [
                {
                    "Effect": "Allow",
                    "Resource": [
                        {"Fn::Sub": [
                            "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/${project}",
                            {"project": {
                                "Ref": "AppBuildProject"
                                }
                            }
                            ]
                        },
                        {"Fn::Sub": [
                            "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/${project}:*",
                            {"project": {
                                "Ref": "AppBuildProject"
                                }
                            }
                            ]
                        }
                    ],
                    "Action": [
                        "logs:CreateLogGroup",
                        "logs:CreateLogStream",
                        "logs:PutLogEvents"
                    ]
                }
                ]
           },
           "Roles": [ { "Ref": "AppBuildRole" }]
        }
    },


    "AppCodePipeline": {
        "Type": "AWS::CodePipeline::Pipeline",
        "Properties": {
            "ArtifactStore": {
                "Location": {"Ref": "ArtifactBucket"},
                "Type": "S3"
            },
            "RoleArn": {"Fn::GetAtt": ["CodePipelineServiceRole", "Arn"]},
            "Stages": [
                {
                    "Name": "Source",
                    "Action": [
                        {
                            "Name": "GetSource",
                            "ActionTypeId": {
                                "Category": "Source",
                                "Owner": "AWS",
                                "Provider": "CodeCommit",
                                "Version": "1"
                            },
                            "Configuration": {
                                "RepositoryName": {"Fn::GetAtt": ["JavaProjectRepository", "Name"]},
                                "BranchName": {"Ref": "CodeCommitBranchName"},
                                "PollForSourceChanges": "false"
                            },
                            "OutputArtifacts": [
                                {
                                    "Name": "SourceCode"
                                }
                            ]
                        }
                    ]
                },
                {
                    "Name": "Build",
                    "Actions": [
                        {
                            "Name": "BuildSource",
                            "InputArtifacts": [
                                {
                                    "Name": "SourceCode"
                                }
                            ],
                            "ActionTypeId": {
                                "Category": "Build",
                                "Owner": "AWS",
                                "Provider": "CodeBuild",
                                "Version": "1"
                            },
                            "Configuration": {
                                "ProjectName": {"Ref": "AppBuildProject"}
                            },
                            "OutputArtifacts": [
                                {
                                    "Name": "CodeArtifact"
                                }
                            ]
                        }
                    ]
                },
                {
                    "Name": "ManualTest",
                    "Actions": [
                        {
                            "Name": "ManualApproval",
                            "ActionTypeId": {
                                "Category": "Approval",
                                "Owner": "AWS",
                                "Version": "1",
                                "Provider": "Manual"
                            },
                            "InputArticles": [],
                            "OutputArtifacts": [],
                            "Configuration": {
                                "NotificationArn": {"Ref": "ManualApprovalSns"},
                                "ExternalEntityLink": {"Fn::GetAtt": ["ArtifactBucket", "DomainName"]},
                                "CustomData": "Assignment 6 - Manual Approval Stage."
                            }
                        }
                    ]
                }
            ]
        }
    },

    "CodePipelineServiceRole": {
        "Type": "AWS::IAM::Role",
        "Properties": {
            "AssumeRolePolicyDocument": {
                "Statement": [
                    {
                        "Actions": [
                            "sts:AssumeRole"
                        ],
                        "Effect": "Allow",
                        "Principal": {
                            "Service": [
                                "codepipeline.amazonaws.com"
                            ]
                        }
                    }
                ]
            },
            "Path": "/service-role/",
            "Policies": [
                {
                    "PolicyDocument": {
                        "Statement": [
                            {
                                "Effect": "Allow",
                                "Action": "sns:Publish",
                                "Resource": "*"
                            },
                            {
                                "Action": [
                                    "iam:PassRoll"
                                ],
                                "Resource": "*",
                                "Effect": "Allow",
                                "Condition": {
                                    "StringEqualsIfExists": {
                                        "iam:PassedToService": [
                                            "cloudformation.amazonaws.com",
                                            "elasticbeanstalk.amazonaws.com",
                                            "ec2.amazonaws.com",
                                            "ecs-tasks.amazonaws.com"
                                        ]
                                    }
                                }
                            },
                            {
                                "Action": [
                                    "codecommit:CancelUploadArchive",
                                    "codecommit:GetBranch",
                                    "codecommit:GetCommit",
                                    "codecommit:GetUploadArchiveStatus",
                                    "codecommit:UploadArchive"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "elasticbeanstalk:*",
                                    "ec2:*",
                                    "elasticloadbalancing:*",
                                    "autoscaling:*",
                                    "cloudwatch:*",
                                    "s3:*",
                                    "sns:*",
                                    "cloudformation:*",
                                    "rds:*",
                                    "sqs:*",
                                    "ecs:*"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "lambda:InvokrFunction",
                                    "lambda:ListFunctions"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "opsworks:CreateDeployment",
                                    "opsworks:DescribeApps",
                                    "opsworks:DescribeCommands",
                                    "opsworks:DescribeDeployments",
                                    "opsworks:DescribeInstances",
                                    "opsworks:DescribeStacks",
                                    "opsworks:UpdateApp",
                                    "opsworks:UpdateStack"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "cloudformation:CreateStack",
                                    "cloudformation:DeleteStack",
                                    "cloudformation:DescribeStacks",
                                    "cloudformation:UpdateStack",
                                    "cloudformation:CreateChangeSet",
                                    "cloudformation:DeleteChangeSet",
                                    "cloudformation:DescribeChangeSet",
                                    "cloudformation:ExcecuteChangeSet",
                                    "cloudformation:SetStackPolicy",
                                    "cloudformation:ValidateTemplate"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Action": [
                                    "codebuild:BatchGetBuilds",
                                    "codebuild:StartBuild"
                                ],
                                "Resource": "*",
                                "Effect": "Allow"
                            },
                            {
                                "Effect": "Allow",
                                "Action": [
                                    "devicefarm:ListProjects",
                                    "devicefarm:ListDevicePools",
                                    "devicefarm:GetRun",
                                    "devicefarm:GetUpload",
                                    "devicefarm:CreateUpload",
                                    "devicefarm:ScheduleRun"
                                ],
                                "Resource": "*"
                            },
                            {
                                "Effect": "Allow",
                                "Action": [
                                    "servicecatalog:ListProvisionArtifacts",
                                    "servicecatalog:CreateProvisioningArtifact",
                                    "servicecatalog:DescribeProvisioningArtifact",
                                    "servicecatalog:DeleteProvisioningArtifact",
                                    "servicecatalog:UpdateProduct",
                                    "servicecatalog:DescribeProvisioningArtifact",
                                    "servicecatalog:DeleteProvisioningArtifact",
                                    "servicecatalog:UpdateProduct"
                                ],
                                "Resource": "*"
                            },
                            {
                                "Effect": "Allow",
                                "Action": [
                                    "cloudformation:ValidateTemplate"
                                ],
                                "Resource": "*"
                            },
                            {
                                "Effect": "Allow",
                                "Action": [
                                    "ecr:DescribeImages"
                                ],
                                "Resource": "*"
                            }
                        ],
                        "Version": "2012-10-17"
                    },
                    "PolicyName": "ec2codedeploy"
                }
            ]                       
        }                           
    }
},
"Outputs": {
    "S3BucketDomain": {
        "Description": "S3Bucket domain name",
        "Value": {"Fn::GetAtt":["ArtifactBucket", "DomainName"]}
    }
}                                   

}

最佳答案

有:

"Actions": ["sts:AssumeRole"]

但应该是:

"Action": ["sts:AssumeRole"]

不是操作,而是操作

关于java - 未知字段操作(服务 : AmazonIdentityManagement; Status Code: 400),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61725501/

相关文章:

java - 当文本编辑留空时应用程序强制关闭

java - 使用 gradle 运行特定的 junit4 类别

java - 当我从 @RestControler 返回对象时,如何在 json 中保留 map 键顺序

java - 尝试访问 AWS 服务时出现不支持的记录版本 Unknown-0.0 异常

json - WebServerInstance 遇到不支持的属性 VpcId

amazon-iam - Cloudformation 如何从另一个堆栈引用托管策略

java - 我在 Swing Worker 中遇到编译错误?

amazon-web-services - AWS Nginx Ingress 创建 Classic Load Balancer 而不是 Application Load Balancer

ruby-on-rails - Google Docs inline pdf 显示为黑白

amazon-web-services - 如果云形成的条件