設定檔適用性:等級 2
如果不需要,請關閉從節點網路外部對 Kubernetes API 的存取。
在私人叢集中,主節點有兩個端點,一個是私人端點,另一個是公共端點。私人端點是主節點的內部 IP 位址,位於主節點 VPC 網路中的內部負載平衡器後方。節點使用私人端點與主節點進行通信。公共端點使
Kubernetes API 能夠從主節點的 VPC 網路外部進行訪問。
雖然 Kubernetes API 需要授權的令牌來執行敏感操作,但一個弱點可能會將 Kubernetes 公開暴露,允許不受限制的訪問。此外,攻擊者可能能夠識別當前的叢集和
Kubernetes API 版本,並確定其是否易受攻擊。除非必要,否則禁用公共端點將有助於防止此類威脅,並要求攻擊者必須在主節點的 VPC 網路上才能對 Kubernetes
API 進行任何攻擊。
注意預設情況下,私人端點是停用的。
|
影響
要啟用私人端點,叢集還必須配置私人節點、私人主機 IP 範圍並啟用 IP 別名。
如果在叢集建立期間,將私有端點標誌
--enable-private-endpoint 傳遞給 gcloud CLI,或在 Google 雲端主控台中未定義外部 IP 位址,則所有來自公共 IP 位址的存取將被禁止。稽核
使用 Google 雲端主控台:
- 前往Kubernetes Engine 網站。
- 選擇所需的叢集,並在詳細資訊窗格中確保端點沒有公共 IP 位址。
使用命令列:
執行此命令:
gcloud container clusters describe <cluster_name> --format json | jq '.privateClusterConfig.enablePrivateEndpoint'
如果已啟動私人端點且公共存取已停用,則上述命令的輸出會返回
true。為了進行額外檢查,可以使用以下命令查詢端點參數:
gcloud container clusters describe <cluster_name> --format json | jq '.endpoint'
如果已啟動私有端點且已停用公共存取,則上述命令的輸出會返回一個私有 IP 位址。
補救
一旦建立叢集時未啟用僅限私人端點,則無法修正。相反,必須重新建立叢集。
使用 Google 雲端主控台:
- 前往Kubernetes Engine 網站。
- 點擊「CREATE CLUSTER」,然後選擇配置以設定標準模式叢集。
- 按需求配置叢集,然後在導航窗格中的叢集下點擊「Networking」。
- 在 IPv4 網路存取下,點擊私人叢集單選按鈕。
- 取消勾選使用其外部IP位址的存取控制平面選項框。
- 在控制平面 IP 範圍文字框中,提供控制平面的 IP 範圍。
- 進行其他所需的設定,然後按一下「CREATE」。
使用命令列:
在叢集建立命令中包含 --enable-private-endpoint 標誌,以建立已啟動私人端點且已停用公共存取的叢集:
gcloud container clusters create <cluster_name> --enable-private-endpoint
設定此旗標還需要設定
--enable-private-nodes、--enable-ip-alias和--master-ipv4-cidr=<master_cidr_range>。
