部署 NCP 時,請務必要採取保護 Kubernetes 與 NSX-T Data Center 環境的相關步驟。

將 NCP 限制在指定的節點上執行

NCP 具有 NSX-T Data Center 管理平面的存取權,因此應受到限制而僅能在指定的基礎結構節點上執行。您可以使用適當標籤識別這些節點。接著,應將此標籤的 nodeSelector 套用至 NCP ReplicationController 規格。例如,

  nodeSelector:
      nsx-infra: True

您也可以使用其他機制 (例如相似性) 將網繭指派給節點。如需詳細資訊,請參閱https://kubernetes.io/docs/concepts/configuration/assign-pod-node

確定 Docker Engine 為最新版本

Docker 會定期發行安全性更新。您應實作自動化程序來套用這些更新。

不允許不受信任容器的 NET_ADMIN 和 NET_RAW

攻擊者可以利用 Linux 功能 NET_ADMIN 和 NET_RAW 來入侵網繭網路。您應停用不受信任容器的這兩項功能。依預設,系統並不會對不具權限的容器授與 NET_ADMIN 功能。請留意網繭規格是否明確加以啟用,或將容器設定為在特殊權限模式中執行。此外,對於不受信任的容器,請在容器規格的 SecurityContext 組態中的捨棄功能清單中指定 NET_RAW 來停用 NET_RAW。例如,

    securityContext:
       capabilities:
          drop:
            - NET_RAW
            - ...

角色型存取控制

Kubernetes 會使用角色型存取控制 (RBAC) API 控制授權決定,讓管理員能夠動態設定原則。如需詳細資訊,請參閱https://kubernetes.io/docs/admin/authorization/rbac

一般而言,叢集管理員是唯一具有存取權和角色權限的使用者。對於使用者和服務帳戶,授與存取權時必須遵循最低權限的原則。

建議採用下列準則:

  • 將 Kubernetes API Token 的存取權限制在需要這些 Token 的網繭。
  • 將 NCP ConfigMap 和 NSX API 用戶端憑證 TLS 密碼的存取權限制在 NCP 網繭。
  • 封鎖不需要存取 Kubernetes 網路 API 的網繭對此類 API 的存取。
  • 新增 Kubernetes RBAC 原則以指定有權存取 Kubernetes API 的網繭。

建議的 RBAC 原則已在 NCP YAML 檔案中,並且將在您安裝 NCP 時生效。