AWS 网络负载均衡器 SSL 直通

问题描述 投票:0回答:2

我正在尝试确保客户端和后端服务器之间的完整端到端连接。这就是我当前的基础设施的样子:

  1. Fargate 集群,我的后端应用程序放置在私有子网内。
  2. 它们的前端是内部网络负载均衡器,该负载均衡器也不暴露于外界。
  3. 将 VPC 链接集成到我的内部 NLB 的 REST API 网关。

目前,我的 NLB 在端口 443 上使用 TLS 侦听器并附加了证书,但正在终止 TLS 并通过端口 80 上的 TCP 与目标组进行软弱通信。我的计划是也在我的 Fargate 节点上配置 TLS 和证书。 目前我不了解以下设置如何工作。是否会将加密流量从我的客户端发送到后端应用程序,或者在 NLB 上执行解密并在将流量发送到 Fargate 节点之前再次加密流量?

我通过阅读许多博客得知,可以使用 NLB 实现直通行为,而无需解密/加密 NLB 上的流量,但没有找到任何示例,而且 AWS 文档对此主题也不清楚。

是否可以将证书仅应用于我的后端应用程序并仅在那里进行解密?我的理解是我可以看起来类似于下面:

  1. 在我的 Fargate 应用程序端配置的证书和 TLS
  2. NLB 在端口 443 上具有 TCP 侦听器,未在 NLB 级别应用证书。因此,NLB 只会将加密流量从我的客户端传递到后端。

有人尝试过设置类似的基础设施并了解如何配置它吗?

问候。

amazon-web-services ssl encryption tls1.2 aws-nlb
2个回答
0
投票

我相信你的假设是正确的,Jarek。您还需要在 443 和 TCP TargetGroup 上创建带有 TCP 侦听器的 NLB。您部署的 ECS 容器(Fargate 或其他容器)将接收 TLS 请求、执行握手协商等。您的 NLB 侦听器实际上是一个 TCP 直通(如果您在端口 443 上),并且 ECS 容器执行实际的 TLS工作。对于 ECS 容器,您可能希望使用 SecretsManager 来存储您的证书、密钥和链。

如果您还需要客户端证书验证 (mTLS),您还需要存储客户端证书验证可能需要的任何其他链。

执行此 NLB 设置的缺点是您会丢失 NLB TLS 侦听器的一些功能,例如它可以强制执行的 TLS 协议限制。您可以自己在 ECS 容器上执行此操作,但容器确实会变得更加复杂。

需要注意的一个警告是 TargetGroup 可以执行的“保留客户端 IP”功能会破坏您的目标组。还没有想出办法解决这个问题。到目前为止,还无法通过此设置实现这一点。

此外,我怀疑有一种方法可以创建与启用了 TLS 的 ECS 容器的 TLS TargetGroup 相匹配的 TLS 侦听器,但对我来说,这似乎多余且难以正确配置,因为解密将在 NLB 上发生,然后它会重新加密TLS 目标组和 ECS 容器。我不太确定这会如何运作(如果有的话)。我的理解是,AWS ELBv2 ALB 和 NLB 不会验证其背后的任何 TLS 证书(需要参考)。不过,我个人还没有能够让这个工作正常。


0
投票

添加 AWS 帖子的参考,显示如何使用 NLB 配置 SSL 直通而不使用 ALB 的额外跃点进行 TLS 终止,https://repost.aws/questions/QU94k_s2LyRd-hJRloOlzAwQ/is-it-possible-to-setup- a-nlb-转发到具有 nlb-端点安全的 alb

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.