設定檔適用性:等級 2
執行 GKE 中繼資料伺服器可防止工作負載存取敏感的實例中繼資料,並促進工作負載身份識別。
每個節點將其中繼資料儲存在中繼資料伺服器上。部分中繼資料,例如 kubelet 憑證和 VM 實例身份識別令牌,屬於敏感資訊,不應暴露給 Kubernetes 工作負載。啟用
GKE 中繼資料伺服器可防止未在主機網路上運行的 Pod 存取這些中繼資料,並促進工作負載身份識別。
如果未指定,預設設定允許運行的 pod 完全訪問節點的基礎元數據伺服器。
注意預設情況下,運行的 Pod 可以完全訪問節點的基礎元數據伺服器。
|
影響
使用工作負載身份時,必須運行 GKE 中繼資料伺服器。由於工作負載身份取代了使用中繼資料隱藏的需求,這兩種方法不相容。
當 GKE Metadata Server 和 Workload Identity 已啟動時,除非 Pod 在主機網路上運行,否則 Pods 無法使用 Compute
Engine 的預設服務帳戶。
工作負載可能需要修改才能使用工作負載身份。請參閱GKE 文件以獲取詳細資訊。
稽核
使用 Google 雲端主控台:
- 前往 Kubernetes Engine 網站。
- 從群集列表中,點擊您感興趣的群集名稱。
- 對於叢集中的每個節點池,打開「詳細資訊」窗格,並確保 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 雲端主控台:
- 前往 Kubernetes Engine 網站。
- 從叢集列表中,選擇已停用工作負載身份的叢集。
- 在「DETAILS」窗格下,向下瀏覽至安全性子部分。
- 點擊名為「Edit Workload Identity」的鉛筆圖示,在彈出窗口中點擊「Enable Workload Identity」,然後從下拉框中選擇工作負載池。預設情況下,它將是包含集群的雲端專案命名空間,例如:
<project_id>.svc.id.goog. - 點擊「SAVE CHANGES」並等待叢集更新。
- 叢集更新後,請在叢集詳細資訊頁面中選擇每個節點池。
- 在每個節點池的詳細資訊頁面中,選擇「EDIT」。
- 在「Edit node pool」窗格中,勾選「Enable GKE Metadata Server」核取方塊。
- 點擊「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 文件以獲取詳細資訊。
