我有一个中央工具帐户,其中包含部署管道和另一个将应用程序部署到的帐户(“阶段”)。管道中的步骤之一是使用登台帐户中的lambda函数迁移数据库。该函数被调用,但是由于无法访问代码管道而导致运行错误,并且〜20分钟后管道中的阶段进入超时。管道中的错误消息表明lambda函数未调用PutJobSuccessResult / PutJobFailureResult或不允许该函数。
该函数正在调用这些函数,但似乎没有对工具帐户中的代码管道的访问权限。
这些是Lambda和Codepipeline附带的策略:
Lambda:
...,{
"Action": [
"codepipeline:PutJobSuccessResult",
"codepipeline:PutJobFailureResult"
],
"Effect": "Allow",
"Resource": [
"*",
"${var.pipelineArn}"
]
},...
和代码管道:
..., {
"Effect": "Allow",
"Action": [
"codepipeline:*",
"iam:ListRoles",
"cloudformation:Describe*",
"cloudFormation:List*",
"codecommit:List*",
"codecommit:Get*",
"codecommit:GitPull",
"codecommit:UploadArchive",
"codecommit:CancelUploadArchive",
"codebuild:BatchGetBuilds",
"codebuild:StartBuild",
"cloudformation:CreateStack",
"cloudformation:DeleteStack",
"cloudformation:DescribeStacks",
"cloudformation:UpdateStack",
"cloudformation:CreateChangeSet",
"cloudformation:DeleteChangeSet",
"cloudformation:DescribeChangeSet",
"cloudformation:ExecuteChangeSet",
"cloudformation:SetStackPolicy",
"cloudformation:ValidateTemplate",
"iam:PassRole",
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Resource": "*"
}, ...
关于缺少什么的任何想法?我认为我需要在某些地方添加原理,但是我不知道在哪里...