1

我们在我们的EC2集群前使用AWS API网关和负载均衡器。网关需要负载均衡器公共托管,这就是为什么我们将负载均衡器置于VPC的公共子网中,并将所有EC2实例置于私有VPC中。AWS API网关和负载均衡器安全通信

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

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

回答

0

您无法在负载平衡器级别验证客户端证书。您需要在容器级别验证它。

还有一种方法可以保持负载均衡器的私密性,并使用Lambda函数(放置在VPC中)代理负载均衡器,您可以在其中验证客户端证书。

+0

感谢您的输入,我已经探索过lambda的方式,但我不想因为它会添加另一跳到系统。与其他网关相比,我对AWS API网关提供给我的功能相当混淆:Kong。 –

+0

你有什么想法,lambda方法的性能会怎样? –

+0

性能取决于Lambda的内存分配以及是否冷启动。因此,假设您避免冷启动,这将是合理的,但如果您可以对您的有效载荷执行负载测试以查看延迟时间,那将会更好 – Ashan

0

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

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