Chuyển đến nội dung chính

第 16 課:網路政策

使用 NetworkPolicy 保護您的 Kubernetes 網路:Pod 選擇器、入口/出口規則、預設拒絕模式。進階 Cilium 網路策略,具有基於 HTTP 方法、路徑、標頭的 L7 策略。

🔒 DevSecOps — 第 16 課 第 16 課:網路政策

KUBERNETES:從基礎到進階

模組 4:網路

xdev.asia

🎯 課程目標___HTMLTAG_66__HTMLTAG_67___了解 NetworkPolicy 來控制 Pod 進出流量。實施預設拒絕模式、允許特定流量並使用 Cilium 網路策略進行 L7 控制。

1。為什麼我們需要 NetworkPolicy?

預設情況下,Kubernetes 允許叢集中所有 Pod 之間的所有流量 — 每個 Pod 都可以呼叫其他 Pod。這是一個嚴重的安全風險。

NetworkPolicy 允許您定義 白名單規則:只有明確允許的流量才會通過。

___HTMLTAG_77__HTMLTAG_78___重要:NetworkPolicy 僅在 CNI 外掛程式支援時才有效(Cilium、Calico、Weave)。 Flannel 不支援 NetworkPolicy。

2。網路策略剖析

___程式碼區塊_0___

3。預設拒絕模式 — 最佳實務

從「全部拒絕」開始,然後開啟每個必要的流量流。

3.1 預設拒絕所有入口

___程式碼區塊_1___

3.2 預設拒絕所有出口

___程式碼區塊_2___

3.3 允許 DNS(如果拒絕出口就很重要)

___程式碼區塊_3___

4。允許特定流量模式

前端 → 後端

___程式碼區塊_4___

跨命名空間:允許來自其他命名空間__HTMLTAG_98___ ___程式碼區塊_5___

組合:Pod 選擇器與命名空間選擇器__HTMLTAG_100___ ___程式碼區塊_6___

5。 Cilium 網路政策 — L7

標準 Kubernetes NetworkPolicy 僅控制 L3/L4(IP、連接埠)。 Cilium CiliumNetworkPolicy 允許 L7 控制。

5.1 HTTP 方法與路徑

___程式碼區塊_7___

5.2 基於 DNS 的政策

___程式碼區塊_8___

6。驗證與偵錯網路策略

___程式碼區塊_9___

7。最佳實務

    ___HTMLTAG_114__HTMLTAG_115___以預設拒絕開頭:適用於所有生產命名空間 ___HTMLTAG_118__HTMLTAG_119___最低權限:僅開放絕對必要的流量 ___HTMLTAG_122__HTMLTAG_123___標籤一致:網路策略取決於標籤選擇器 - 設定標籤一致 ___HTMLTAG_126__HTMLTAG_127___應用於生產之前進行測試:使用 Hubble 審核模式查看哪些流量將被阻止 ___HTMLTAG_130__HTMLTAG_131___文件政策:解釋建立每項政策的原因

摘要

  • NetworkPolicy:Pod 流量的白名單規則
  • 預設拒絕模式:阻止所有 → 允許特定
  • 選擇器:podSelector、namespaceSelector(專案內的 AND 邏輯,專案之間的 OR 邏輯)
  • Cilium CiliumNetworkPolicy:L7 HTTP、基於 DNS 的政策
  • 需要 CNI 支援:Cilium、Calico(不是 Flannel)