Это то, как я предоставляю внешнюю учетную запись AWS для разрешения доступа к моей лямбде.
myLambda.grantInvoke(new iam.AccountPrincipal('account_id_b'));
Ран развертывание cdk
Политика на основе ресурсов имеет следующее json, как показано в консоли
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "generated_Sid",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account_id_b:root"
},
"Action": "lambda:InvokeFunction",
"Resource": "my_lambda_arn"
}
]
}
Я выполнил следующие шаги https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-cross-account-lambda-integrations.html, чтобы создать шлюз API, который может вызывать эту лямбду из учетной записи account_id_b.
Тестирование шлюза API из account_id_b приводит к следующим журналам:
Fri Mar 06 03:00:07 UTC 2020 : Execution failed due to configuration error: Invalid permissions on Lambda function
Fri Mar 06 03:00:07 UTC 2020 : Method completed with status: 500
Что мне еще нужно сделать, чтобы настроить это правильно?