我有一个lambda函数,需要与一些AWS服务(例如EC2,其他lambda函数,api网关,Elastic Search服务)进行对话。所有这些服务都位于现有vpc的专用子网内。我如何通过cloudformation模板添加策略/角色,以便我可以访问我的lambda函数来与这些其他服务进行通信。另外,我是否需要定义安全组。现在,有一个默认安全组应用于所有没有任何入站/出站规则的资源。
AWSTemplateFormatVersion: 2010-09-09
Parameters:
VPCId:
Type: AWS::EC2::VPC::Id
Resources:
# S3 Bucket
S3Bucket:
Type: AWS::S3::Bucket
# Functions
S3-Lambda-trigger:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: lambda.handler
Description: s3 object creation triggers lambda
Runtime: nodejs12.x
Events:
S3Bucket:
Type: S3
Properties:
Bucket: !Ref S3Bucket
Events: 's3:ObjectCreated:*'
# Permissions
Allow-lamda-invocation-s3:
Type: AWS::Lambda::Permission
Properties:
Action: 'lambda:InvokeFunction'
FunctionName: !Ref S3-Lambda-trigger
Principal: s3.amazonaws.com
SourceArn: !GetAtt S3Bucket.Arn