Я пытаюсь запустить aws cli, чтобы обновить лямбда-код для другой учетной записи, но я получаю неавторизованную ошибку.
Итак, на данный момент у нас есть 2 настройки аккаунта (dv, pr)
У меня есть конвейер, созданный в DV, где запускается код сборки, в buildspec, я указал ARN лямбда-функции в учетной записи PR
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
Способ настройки кросс-аккаунта следующий:
В производственном учете:
Я создал роль "lambdaDeployRole" с LambdaFullAccess, и в доверительных отношениях
{
"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/*
Есть идеи, как мне это настроить?