繁体   English   中英

在无服务器 yml 中添加角色作为 CloudFormation 模板

[英]Add role as CloudFormation template in serverless yml

我正在尝试从另一个调用 lambda,按照这个答案中的示例:

Nodejs - 从另一个 lambda 函数中调用 AWS.Lambda 函数

答案说这两个 lambda 函数都应该具有AWSLambdaExecuteAWSLambdaBasicExecutionRole权限。

使用无服务器,我怎么能这两个角色添加到在CloudFormation模板serverless.yml

根据无服务器IAM文档,

默认情况下,您的服务中的所有 Lambda 函数共享一个 IAM 角色。 还会创建 IAM 策略并将其附加到该角色。 此外,默认情况下,您的 Lambda 函数具有创建和写入 CloudWatch 日志的权限,如果您已指定 VPC 安全组和子网供您的函数使用,则通过 ENI 附加到 VPC 所需的 EC2 权限将添加到默认值中IAM 政策。

要向此服务范围的角色添加特定权限,请在provider.iamRoleStatements中定义语句,这些语句将合并到生成的策略中。

要从另一个函数调用 Lambda 函数,您只需将"lambda:InvokeFunction"操作添加到无服务器已提供的现有 IAM 权限。 因此,一个例子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"权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM