使用无服务器部署,我如何将对一个 AWS Lambda 的访问限制为 IP 地址的子集

Using serverless deployment, how do I restrict access to one AWS Lambda to a subset of IP addresses

我正在部署几个通过 AWS API 网关访问的 AWS lambda 函数。我想限制其中一个功能,除非您在特定的 IP 地址范围内(我们的 VPN),否则无法访问它,同时允许其余功能对调用它们的任何人开放。我可以这样做吗?如果有怎么办。我见过几个示例,其中通过配置无服务器 yaml 的提供者部分来限制对 ip 子集的访问。但是,这会影响我的所有功能,我不想让我的任何其他功能受到影响。

谢谢!

对 API 网关的基于 IP 的控制可以通过 WAF 或自定义 Authoriser 函数(现在可能称为 Lambda Authorizer)来完成。请在无服务器中查看 here for an example. You can specify a Lambda function in your serverless yaml for this authorizerFunc. There is support。对于您希望免受某些 IP 保护的端点:authorizer: authorizerFuncevents 部分中,并留下您希望单独访问的其他端点。