AWS Lamda执行可以在AWS云中的任何位置进行。有没有一种方法可以强制它在一个VPC中运行?我们如何保护Lamda函数?
答案 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中运行功能来保护它。