为了准备HIPAA合规性,我们正在转换我们的Kubernetes集群,以便在整个机群中使用安全端点(在所有pod之间)。由于集群由目前使用HTTP连接的大约8-10个服务组成,因此由Kubernetes负责处理将非常有用。
我们想要解决的具体攻击向量是节点(物理服务器)之间的数据包嗅探。
这个问题分为两部分:
非常感谢!
答案 0 :(得分:3)
Kubernetes是否对pods和amp;之间的流量进行加密。节点默认情况下?
Kubernetes不会加密任何流量。
像linkerd这样的服务可以让您轻松地在您的http服务之间引入https通信。
您将在每个节点上运行服务网格的实例,并且所有服务都将与服务网格对话。服务网格内的通信将被加密。
示例:
您的服务-http-> localhost到servicemesh节点 - https-> remoteNode -http-> localhost到远程服务。
当您在与服务相同的窗格中运行服务网格节点时,localhost通信将在其他窗格无法访问的专用虚拟网络设备上运行。
答案 1 :(得分:3)
实际上正确的答案是"它取决于"。我会将群集分成两个独立的网络。
<强> 1。控制平面网络
换句话说,该网络是物理网络或底层网络。
k8s控制平面元素 - kube-apiserver,kube-controller-manager,kube-scheduler,kube-proxy,kubelet - 以各种方式相互交谈。除少数端点(例如度量标准)外,可以在所有端点上配置加密。
如果您还要进行测试,那么kubelet authn/authz也应该打开。否则,加密不会阻止对kubelet的未授权访问。该端点(在端口10250处)可以轻松地被劫持。
<强> 2。群集网络
群集网络是Pod使用的群集网络,也称为覆盖网络。加密留给第三方覆盖插件来实现,否则应用必须实现。
Weave overlay supports encryption。 @ lukas-eichler建议的服务网络链接器也可以实现这一点,但是在不同的网络层上。
答案 2 :(得分:2)
这里的回复似乎已经过时了。截至 2021 年 4 月 28 日,至少以下组件似乎能够为 Kubernetes 提供加密网络层:
(以上列表通过查阅各项目主页获得)
答案 3 :(得分:0)
不,kubernetes默认不加密流量
我还没有亲自尝试过,但Calico software defined network上的说明似乎是针对您所描述的内容,而且还有其他好处kubernetes friendly
我认为Calico进行了原生加密,但基于this GitHub issue,似乎他们建议使用像IPSEC这样的解决方案来加密,就像传统主机一样