跨帐户Lambda呼叫永远不会成功

时间:2019-03-25 12:32:33

标签: amazon-web-services aws-lambda aws-codepipeline

我有一个中央工具帐户,其中包含部署管道和另一个将应用程序部署到的帐户(“阶段”)。管道中的步骤之一是使用登台帐户中的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": "*"
}, ...

关于缺少什么的任何想法?我认为我需要在某些地方添加原理,但是我不知道在哪里...

0 个答案:

没有答案