当前位置: 首页 > 知识库问答 >
问题:

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

张森
2023-03-14

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

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

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

共有3个答案

宇文和昶
2023-03-14

在进一步分析中,我遇到了以下对AWS API网关方法的担忧。

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

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

您可以遵循另一种方法,保持负载平衡器的私有性,并使用Lambda函数(位于专有网络内部)代理负载平衡器,在那里您可以验证客户端证书。

巫马修然
2023-03-14

现在正确的解决方案是使用VPC链接和AWS的网络负载均衡器。您在VPC资源(例如EC2实例)前面设置网络负载均衡器,然后创建API网关VPC链接。在API网关集成中,您选择VPC链接,您可以访问网络负载均衡器,并扩展您的私有EC2实例。

 类似资料:
  • 我正在尝试使用ELB部署一些nodejs站点,但ELB和EC2实例的安全组都存在一些问题。 我想做的是允许ELB接受端口80请求,并将这些请求转发到EC2实例上的端口3000,我不希望EC2实例可以从Internet直接访问,它们应该只能通过负载均衡器(在端口3000上)访问。 因此,在我的公有子网的 VPC 中,我有: < li >设置转发80 (HTTP)到3000 (HTTP)的ELB <

  • 负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载均衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载均衡服务通常是由专用软体和硬件来完成。 负载均衡最重要的一个应用是利用多台服务器提供单一服务,这种方案有

  • 负载均衡包括负载均衡实例、访问控制及证书。 实例 负载均衡实例是一个运行的负载均衡服务,通过设置的虚拟IP接收流量并将其转发分配给后端服务器。 访问控制 访问控制用于设置访问负载均衡的IP白名单或IP黑名单。 证书 当在负载均衡实例上配置HTTPS监听转发来自HTTPS协议的请求时,需要配置证书。

  • 一个简单的负载均衡的示例,把www.domain.com均衡到本机不同的端口,也可以改为均衡到不同的地址上。> http { : upstream myproject { : server 127.0.0.1:8000 weight=3; : server 127.0.0.1:8001; : server 127.0.0.1:8002; : server 127.0.0.1:8003; : }

  • SOFARPC 提供多种负载均衡算法,目前支持以下五种: 类型 名称 描述 random 随机算法 默认负载均衡算法。 localPref 本地优先算法 优先发现是否本机发布了该服务,如果没有再采用随机算法。 roundRobin 轮询算法 方法级别的轮询,各个方法间各自轮询,互不影响。 consistentHash 一致性hash算法 同样的方法级别的请求会路由到同样的节点。 weightRou

  • lvs Linux Virtual Server (lvs) 是Linux内核自带的负载均衡器,也是目前性能最好的软件负载均衡器之一。lvs包括ipvs内核模块和ipvsadm用户空间命令行工具两部分。 在lvs中,节点分为Director Server和Real Server两个角色,其中Director Server是负载均衡器所在节点,而Real Server则是后端服务节点。当用户的请求到