我们如何强制AWS Lamda在VPC中安全运行?

时间:2019-03-09 06:48:20

标签: aws-lambda aws-serverless

AWS Lamda执行可以在AWS云中的任何位置进行。有没有一种方法可以强制它在一个VPC中运行?我们如何保护Lamda函数?

1 个答案:

答案 0 :(得分:0)

AWS Lambda函数始终在VPC中运行,但默认情况下不在您在帐户中创建的VPC之一中运行。要在您帐户中的VPC中运行它们,您必须为您的AWS Lambda函数提供VPC配置。 AWS Lambda将使用该配置在您的AWS Lambda函数随后使用的VPC中设置弹性网络接口(ENI)。

这里是“ Configuring a Lambda Function to Access Resources in an Amazon VPC”中的一个示例,该示例在创建AWS Lambda函数时如何添加此类VPC配置。注意vpc-config参数:

aws lambda create-function \
  --function-name ExampleFunction \
  --runtime go1.x \
  --role execution-role-arn \
  --zip-file fileb://path/app.zip \
  --handler app.handler \
  --vpc-config SubnetIds=comma-separated-vpc-subnet-ids,SecurityGroupIds=comma-separated-security-group-ids \
  --memory-size 1024

也就是说,请注意在Best Practices for Working with AWS Lambda Functions中说明的在VPC中运行AWS Lambda函数的弊端。正如AWS总结的那样:

  

除非有必要,否则请勿将Lambda函数放入VPC。除了使用它来访问无法公开公开的资源(例如私有Amazon Relational Database实例)之外,没有任何好处。 。可以使用访问策略通过IAM保护诸如Amazon Elasticsearch Service之类的服务,因此公开暴露端点是安全的,并且不需要您在VPC中运行功能来保护它。