檢視次數:
設定檔適用性:等級 2
執行 GKE 中繼資料伺服器可防止工作負載存取敏感的實例中繼資料,並促進工作負載身份識別。
每個節點將其中繼資料儲存在中繼資料伺服器上。部分中繼資料,例如 kubelet 憑證和 VM 實例身份識別令牌,屬於敏感資訊,不應暴露給 Kubernetes 工作負載。啟用 GKE 中繼資料伺服器可防止未在主機網路上運行的 Pod 存取這些中繼資料,並促進工作負載身份識別。
如果未指定,預設設定允許運行的 pod 完全訪問節點的基礎元數據伺服器。
注意
注意
預設情況下,運行的 Pod 可以完全訪問節點的基礎元數據伺服器。

影響

使用工作負載身份時,必須運行 GKE 中繼資料伺服器。由於工作負載身份取代了使用中繼資料隱藏的需求,這兩種方法不相容。
當 GKE Metadata Server 和 Workload Identity 已啟動時,除非 Pod 在主機網路上運行,否則 Pods 無法使用 Compute Engine 的預設服務帳戶。
工作負載可能需要修改才能使用工作負載身份。請參閱GKE 文件以獲取詳細資訊。

稽核

使用 Google 雲端主控台:
  1. 前往 Kubernetes Engine 網站
  2. 從群集列表中,點擊您感興趣的群集名稱。
  3. 對於叢集中的每個節點池,打開「詳細資訊」窗格,並確保 GKE Metadata Server 設定為Enabled
使用命令列:
要檢查叢集中的每個節點池是否已啟動 GKE Metadata Server,請執行以下命令:
gcloud container clusters describe <cluster_name> --zone <cluster_zone> --
format json | jq .nodePools[].config.workloadMetadataConfig
這應該為每個節點池返回以下內容:
{ 
    "mode": "GKE_METADATA" 
}
如果 GKE Metadata Server 未{ }已啟動,則返回 Null。

補救

GKE 中繼資料伺服器需要在叢集上啟用工作負載身份。修改叢集以啟用工作負載身份並啟用 GKE 中繼資料伺服器。
使用 Google 雲端主控台:
  1. 前往 Kubernetes Engine 網站
  2. 從叢集列表中,選擇已停用工作負載身份的叢集。
  3. 「DETAILS」窗格下,向下瀏覽至安全性子部分。
  4. 點擊名為「Edit Workload Identity」的鉛筆圖示,在彈出窗口中點擊「Enable Workload Identity」,然後從下拉框中選擇工作負載池。預設情況下,它將是包含集群的雲端專案命名空間,例如:<project_id>.svc.id.goog.
  5. 點擊「SAVE CHANGES」並等待叢集更新。
  6. 叢集更新後,請在叢集詳細資訊頁面中選擇每個節點池。
  7. 在每個節點池的詳細資訊頁面中,選擇「EDIT」
  8. 「Edit node pool」窗格中,勾選「Enable GKE Metadata Server」核取方塊。
  9. 點擊「SAVE」
使用命令列:
gcloud container clusters update <cluster_name> --identity-
namespace=<project_id>.svc.id.goog
注意
注意
現有的節點池不受影響。新的節點池預設為--workload-metadata-from-node=GKE_METADATA_SERVER
要修改現有的節點池以啟用 GKE Metadata Server:
gcloud container node-pools update <node_pool_name> --cluster=<cluster_name> 
--workload-metadata-from-node=GKE_METADATA_SERVER
工作負載可能需要修改才能使用工作負載身份。請參閱GKE 文件以獲取詳細資訊。