部署 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 時生效。