Согласно IAM документации бессерверной,
По умолчанию один IAM Роли разделяют все функции лямбды в вашей службе. Политика IAM также создается и привязана к этой роли. Также по умолчанию ваши функции Lambda имеют разрешение создавать и записывать в журналы CloudWatch, и если вы указали группы безопасности и подсети VPC для своих функций, то права EC2, необходимые для присоединения к VPC через ENI, будут добавлены в значение по умолчанию Политика IAM.
Чтобы добавить определенные права на эту служебную роль, определите инструкции в provider.iamRoleStatements
, которые будут объединены в сгенерированную политику.
Для вызова функции Lambda из другой функции, вам просто нужно добавить "lambda:InvokeFunction"
действие к существующим IAM разрешений Serverless уже предоставляет. Так пример serverless.yml
служба должна иметь iamRoleStatements
раздел, который выглядит следующим образом:
service: new-service
provider:
name: aws
iamRoleStatements:
- Effect: "Allow"
Action:
- "lambda:InvokeFunction"
Resource:
- "*"
Ссылаясь на другой ответ привел:
AWSLambdaBasicExecutionRole
политика управляемого уже охватываются политикой бессерверной по умолчанию;
AWSLambdaExecute
- неправильное имя для требуемой управляемой политики (для этого предоставляется только доступ к S3 get/put, а не InvokeFunction
); ответ, вероятно, означал AWSLambdaRole
, который предоставляет разрешение "lambda:InvokeFunction"
.