我正在尝试运行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/*
知道如何设置吗?