【发布时间】:2021-02-07 22:11:15
【问题描述】:
在 AWS SAM .yaml 模板中,我可以为每个 lambda 函数声明一个内联策略,如下所示:
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Resources:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs8.10
CodeUri: 's3://my-bucket/function.zip'
Policies:
- Statement:
- Sid: SSMDescribeParametersPolicy
Effect: Allow
Action:
- ssm:DescribeParameters
Resource: '*'
- Sid: SSMGetParameterPolicy
Effect: Allow
Action:
- ssm:GetParameters
- ssm:GetParameter
Resource: '*'
但是,如果我希望多个函数共享同一个内联策略文档,我们是否在模板的“全局”部分声明它?
到目前为止,文档让我相信,最简洁的方法是使用附加的策略创建一个角色,然后简单地将角色声明给每个函数,而不是像这样:
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Resources:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs8.10
CodeUri: 's3://my-bucket/function.zip'
Role: arn:aws:iam::111111111111:role/SAMPolicy
有没有办法在模板中声明内联策略并在每个函数上简单地引用它?
【问题讨论】:
标签: amazon-web-services aws-lambda aws-sam