加密EKS中的流量

时间:2019-03-29 18:08:33

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

我正在设置一个   EKS 集群上的 AWS ,我想保护Kuberentes集群中(以及EKS与外部系统之间的)所有飞行数据的安全,但是超出范围)。

在Kubernetes中,不同Pod之间使用的协议不同,主要是 Rest/HTTP ,但 microservice-pods with a KafkaBroker 与JDBC之间的通信也是 microservice-pods and database pods (Zalando Postgres),位于 filebeat-pod and elasticsearch ,...

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

  • 分别加密每个通信->过多的工作。噩梦
  • Istio或LinkerD->仅适用于Http和gRPC,不适用于KafkaCommunication。重型控制飞机。
  • 像WeaveNet这样的CNI->不支持SecurityGroup,FlowLogs,ACL

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

1 个答案:

答案 0 :(得分:2)

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

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

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