2017-08-02 53 views
5

在準備HIPAA合規性時,我們正在過渡我們的Kubernetes集羣,以在整個集羣(所有集羣之間)使用安全端點。由於羣集由大約8-10個服務組成,目前使用HTTP連接,因此Kubernetes負責照顧這些服務將非常有用。如何配置Kubernetes以加密節點和Pod之間的流量?

我們想要解決的具體攻擊向量是節點(物理服務器)之間的數據包嗅探。

這個問題分解成兩個部分:

  • 不Kubernetes加密莢默認&節點之間的流量?
  • 如果不是,有沒有辦法配置它?

非常感謝!

回答

1

其實正確的答案是「它取決於」。我會將羣集分成2個獨立的網絡。

1.控制平面網絡

這網絡是物理網絡或換言之所述底層網絡的。

k8s控制平面元素 - kube-apiserver,kube-controller-manager,kube-scheduler,kube-proxy,kubelet - 以各種方式相互交談。除少數端點(例如度量)外,可以在所有端點上配置加密。

如果你也在測試,那麼kubelet authn/authz也應該打開。否則,加密不會阻止對kubelet的未授權訪問。這個端點(在端口10250)可以被輕鬆劫持。

2.羣集網絡

羣集網絡由豆莢,其也被稱爲覆蓋網絡中使用的一個。加密留給第三方覆蓋插件來實現,否則,應用程序必須執行。

織造覆蓋supports encryption。 @ lukas-eichler建議的服務網格鏈接器也可以實現此目的,但在不同的網絡層上。

0

不,kubernetes默認情況下不

我沒有親自嘗試過的流量進行加密,但在Calico software defined network的描述似乎朝着面向你所描述的內容,與已被kubernetes friendly

額外的好處

我認爲印花布做本地加密,但基於this GitHub issue看來他們建議使用IPsec等的解決方案來加密,就像你將一個傳統的主機

1

不Kubernetes encry默認情況下,節點之間的節點之間的流量是否爲&節點?

Kubernetes不加密任何流量。

有像linkerd這樣的服務可以讓您輕鬆地在http服務之間引入https通信。

您將在每個節點上運行服務網格的實例,並且所有服務都會與服務網格對話。服務網格內的通信將被加密。

實施例:

服務-http-> localhost來servicemesh節點 - https-> REMOTENODE -http-> localhost來遠程服務。

當您在與服務相同的窗格中運行服務網格節點時,localhost通信將在專用虛擬網絡設備上運行,而其他窗格無法訪問該設備。