【问题标题】:Encrypt Traffic in EKS [closed]加密 EKS 中的流量 [关闭]
【发布时间】:2019-08-20 17:46:52
【问题描述】:

我正在设置一个 EKS 集群在 AWS 上,我想保护 Kuberentes 集群中的所有传输中的数据(以及 EKS 和外部系统之间的数据,但这超出了这里的范围) )。

在 Kubernetes 中,不同 pod 之间使用不同的协议,主要是 Rest/HTTP 以及 microservice-pods with a KafkaBrokermicroservice-pods and database pods 之间的 JDBC 之间的通信/strong> (Zalando Postgres),在 filebeat-pod and elasticsearch、...

之间

我看到了几个选项,但我不喜欢其中任何一个。

  • 单独加密每个通信 --> 工作量太大。运营噩梦
  • Istio 或 LinkerD --> 仅适用于 Http 和 gRPC,不适用于 KafkaCommunication。重型控制平面。
  • 像 WeaveNet 这样的 CNI --> 不支持 SecurityGroups、FlowLogs、ACL

还有更好的选择吗? 您会推荐这些选项中的任何一个吗?

【问题讨论】:

  • 为什么不在集群前面扔一个容器或一个 lambda 函数并在上面做所有繁重的工作?
  • @Stargazer 如果使用 lambda 函数,如果保留底层协议,EKS 集群和 lambda 函数之间的通信将不会被加密。另外,这将需要更改整个网络流以将数据包推送到 lambda
  • 请注意,Istio 支持加密任何 TCP 协议的流量。
  • @VadimEisenberg 我已经看到了,但我也看到了 kafka 协议不适用于 istio 的问题。我必须再调查一下。谢谢。
  • @christian Istio 无法理解 Kafka 协议,但我认为 Istio 可以将 Kafka 作为普通 TCP 处理。

标签: amazon-web-services kubernetes istio amazon-eks cni


【解决方案1】:

一种可能的解决方案是在所有 pod 上使用 nginx sidecar reverse proxy 来捕获所有出站流量,并结合 nginx 的 proxy_protocol 指令与 ELB 和其他负载均衡器一起操作。

您可以通过修改 iptables(或您在设置中选择使用的任何 SDN/模式)强制所有出站流量进入反向代理而不是将其发送到互联网来实现此目的。然后,您可以使用由反向代理定义的证书在 proxy_protocolforce all upstream TCP connections to use SSL 中使用指令进行加密。

这应该适用于您定义的协议,因为它们都基于 TCP。

【讨论】:

  • 谢谢@asdf。这听起来像是一个可行的解决方案,但也需要大量的工作。也许我会再次研究 istio。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 2014-07-02
  • 2015-06-24
  • 1970-01-01
  • 2022-07-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多