如何使用CLI运行AWS CloudBuild映像以访问另一个帐户中的资源

时间:2019-05-08 20:10:33

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

我正在尝试运行aws cli以针对另一个帐户更新lambda代码,但我一直在获得未经授权的错误。 因此,目前我们有2个帐户设置(dv,pr) 我在dv中创建了一个管道,在其中触发了代码生成,在buildspec中,我在PR帐户中指定了lambda函数的ARN

aws lambda update-function-code --function-name arn:aws:lambda:us-east-1:productionAccount:function:functionName --zip-file fileb://$CODEBUILD_SRC_DIR_build_output/aws/lambda/target/artifact.jar --region us-east-1 --publish

然后我遇到错误:

An error occurred (AccessDeniedException) when calling the UpdateFunctionCode operation: User: arn:aws:sts::accountNumber:assumed-role/build-role/AWSCodeBuild-5cae6fd3-0fc1-44fb-ad7f-456ae0aa8944 is not authorized to perform: lambda:UpdateFunctionCode on resource: arn:aws:lambda:us-east-1:accountNumber:function:functionName

我设置交叉账户的方式如下: 在生产帐户中: 我已经在LambdaFullAccess以及信任关系中创建了角色“ lambdaDeployRole”

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::devAccount:role/build-role"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}

我尝试在关系政策文档中添加以下内容,但在政策错误中获取了无效的委托人

arn:aws:sts::devAccountNumber:assumed-role/build-role/*

知道如何设置吗?

0 个答案:

没有答案