設定檔適用性:等級 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>
。