AWS API网关和负载均衡器安全通信

时间:2017-08-16 13:15:36

标签: amazon-web-services ssl aws-api-gateway elastic-load-balancer

我们在EC2集群前使用AWS API网关和负载均衡器。 Gateway需要将负载均衡器公开托管,这就是为什么我们将负载均衡器放在VPC的公有子网中以及所有EC2实例都在私有VPC中。

我们面临的问题是,由于我们的负载均衡器在公共VPC中,我们如何使我们的请求无效,而不是来自我们的API网关。我们只想将负载均衡器的请求传递给EC2实例,当且仅当它来自我们的API网关时。

当我探索可能的解决方案时,有人建议使用来自网关的公共客户端证书来验证您的请求。我能够从网关获得此公共证书,但没有找到任何方法在负载均衡器中配置它。

3 个答案:

答案 0 :(得分:0)

您无法在Load Balancer级别验证客户端证书。您需要在容器级别验证它。

您可以遵循另一种方法,即将Load Balancer保持为私有并使用Lambda函数(放置在VPC中)代理Load Balancer,您可以在其中验证客户端证书。

答案 1 :(得分:0)

在进一步分析中,我遇到了以下关于AWS API网关方法的问题。

  1. 当lambda容器不重复使用或冷却时,VPC对lambda容器初始化时间有巨大影响。根据其他人的经验,它可能需要10到15秒,这可能会延迟响应时间。即使它是一个热的lambda,当你从它访问VPC时也会产生时间延迟成本。
  2. Lambda需要足够数量的ENI和私有IP范围来支持并行执行。这意味着如果在运行时,负载增加,并且如果没有任何ENI空闲,则请求将失败。我们不确定是否可以根据请求加载在运行时动态增加ENI。
  3. 如果由于ENI不可用而导致任何错误或超时,AWS不会为其创建任何日志,您可能对错误来源一无所知。

答案 2 :(得分:0)

如今,正确的解决方案是将VPC链接与AWS的Network Load Balancer结合使用。您在VPC资源(例如EC2实例)之前设置了网络负载平衡器,并创建了API网关VPC链接。在API网关集成中,选择VPC链接,然后您就可以访问网络负载平衡器,并且可以扩展您的私有EC2实例。