Amazon web services 加密EKS中的流量

Amazon web services 加密EKS中的流量,amazon-web-services,kubernetes,istio,amazon-eks,cni,Amazon Web Services,Kubernetes,Istio,Amazon Eks,Cni,我正在建立一个 EKSAWS上的集群,我想保护Kuberentes集群中的所有飞行数据(以及EKS和外部系统之间的数据,但这超出了本文的范围) 在Kubernetes中,不同的POD之间使用不同的协议,主要是Rest/HTTP,也包括微服务POD与KafkaBroker之间的通信,以及微服务POD与数据库POD之间的JDBC(Zalando Postgres),在filebeat pod和elasticsearch之间 我看到了几个选择,但我一个都不喜欢 单独加密每个通信-->工作量太大。作战

我正在建立一个
EKS
AWS上的集群,我想保护Kuberentes集群中的所有飞行数据(以及EKS和外部系统之间的数据,但这超出了本文的范围)

在Kubernetes中,不同的POD之间使用不同的协议,主要是
Rest/HTTP
,也包括
微服务POD与KafkaBroker
之间的通信,以及
微服务POD与数据库POD之间的JDBC(Zalando Postgres),在filebeat pod和elasticsearch之间

我看到了几个选择,但我一个都不喜欢

  • 单独加密每个通信-->工作量太大。作战噩梦
  • Istio或LinkerD-->仅适用于Http和gRPC,不适用于卡夫卡通信。重型控制飞机
  • 类似CNI的WeaveNet-->不支持安全组、流日志和ACL
有更好的选择吗?
您会推荐这些选项中的任何一个吗?

一个可能的解决方案是在您的所有POD上使用a来捕获所有出站流量,并结合nginx的指令来使用ELBs和其他负载平衡器

您可以通过修改iptables(或您选择在设置中使用的任何SDN/模式)来实现这一点,以强制所有出站流量进入反向代理,而不是将其发送到internet。然后使用
proxy\u协议
中的指令使用反向代理定义的证书进行加密


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

为什么不在集群前面扔一个容器或一个lambda函数,并在其上完成所有繁重的工作?@Stargazer如果使用lambda函数,则如果底层协议不可用,EKS集群和lambda函数之间的通信将不会加密保持。另外,这需要更改整个网络流,以将数据包推送到Istio支持对任何TCP协议的流量进行加密的lambdaNote中。@VadimEisenberg我已经看到了这一点,但我也看到了kafka协议与Istio不兼容的问题。我得再调查一下。谢谢。@christian Istio无法理解卡夫卡协议,但我认为Istio可以将卡夫卡作为简单的TCP处理。谢谢@asdf。这听起来是一个可行的解决方案,但也需要做很多工作。也许我会再调查一次。