Profilanwendbarkeit: Stufe 2
Das Ausführen des GKE-Metadatenservers verhindert, dass Workloads auf sensible Instanzmetadaten
zugreifen, und erleichtert die Workload-Identität.
Jeder Knoten speichert seine Metadaten auf einem Metadatenserver. Einige dieser Metadaten,
wie kubelet-Anmeldedaten und das Identitätstoken der VM-Instanz, sind sensibel und
sollten nicht für eine Kubernetes-Workload zugänglich sein. Das Aktivieren des GKE-Metadatenservers
verhindert, dass Pods (die nicht im Hostnetzwerk laufen) auf diese Metadaten zugreifen,
und erleichtert die Workload-Identität.
Wenn nicht angegeben, ermöglicht die Standardeinstellung, dass laufende Pods vollen
Zugriff auf den zugrunde liegenden Metadatenserver des Knotens haben.
HinweisStandardmäßig haben laufende Pods vollen Zugriff auf den zugrunde liegenden Metadatenserver
des Knotens.
|
Auswirkung
Der GKE-Metadatenserver muss ausgeführt werden, wenn Workload Identity verwendet wird.
Da Workload Identity die Notwendigkeit der Verwendung von Metadatenverschleierung
ersetzt, sind die beiden Ansätze unvereinbar.
Wenn der GKE-Metadatenserver und die Workload-Identität aktiviert sind, können Pods,
sofern sie nicht im Hostnetzwerk ausgeführt werden, das Standarddienstkonto der Compute
Engine nicht verwenden.
Möglicherweise müssen Workloads geändert werden, damit sie die Workload-Identität
verwenden können. Siehe die GKE-Dokumentation für weitere Informationen.
Prüfung
Verwendung der Google Cloud Console:
- Gehen Sie zur Kubernetes Engine-Website.
- Klicken Sie in der Liste der Cluster auf den Namen des gewünschten Clusters.
- Für jeden Knotenpool innerhalb des Clusters öffnen Sie das Details-Fenster und stellen Sie sicher, dass der GKE-Metadatenserver auf
Enabledeingestellt ist.
Verwendung der Befehlszeile:
Um zu überprüfen, ob der GKE-Metadatenserver für jeden Knotenpool innerhalb eines
Clusters aktiviert ist, führen Sie den folgenden Befehl aus:
gcloud container clusters describe <cluster_name> --zone <cluster_zone> -- format json | jq .nodePools[].config.workloadMetadataConfig
Dies sollte für jeden Knotenpool Folgendes zurückgeben:
{
"mode": "GKE_METADATA"
}
Null (
{ }) wird zurückgegeben, wenn der GKE-Metadatenserver nicht aktiviert ist.Wiederherstellung
Der GKE-Metadatenserver erfordert, dass die Workload-Identität auf einem Cluster aktiviert
ist. Ändern Sie den Cluster, um die Workload-Identität zu aktivieren und den GKE-Metadatenserver
zu aktivieren.
Verwendung der Google Cloud Console:
- Gehen Sie zur Kubernetes Engine-Website.
- Wählen Sie aus der Liste der Cluster den Cluster aus, für den die Workload-Identität deaktiviert ist.
- Unter dem Bereich DETAILS navigieren Sie nach unten zum Abschnitt Sicherheit.
- Klicken Sie auf das Stiftsymbol mit dem Namen Edit Workload Identity, klicken Sie im Popup-Fenster auf Enable Workload Identity und wählen Sie einen Workload-Pool aus der Dropdown-Liste aus. Standardmäßig wird
es der Namespace des Cloud-Projekts sein, das den Cluster enthält, zum Beispiel:
<project_id>.svc.id.goog. - Klicken Sie auf SAVE CHANGES und warten Sie, bis das Cluster aktualisiert wird.
- Sobald der Cluster aktualisiert wurde, wählen Sie jeden Node-Pool auf der Detailseite des Clusters aus.
- Für jeden Node-Pool wählen Sie EDIT auf der Detailseite des Node-Pools aus.
- Im Edit node pool-Bereich aktivieren Sie das Kontrollkästchen Enable GKE Metadata Server.
- Klicken Sie auf Speichern.
Verwendung der Befehlszeile:
gcloud container clusters update <cluster_name> --identity- namespace=<project_id>.svc.id.goog
HinweisBestehende Node-Pools sind nicht betroffen. Neue Node-Pools verwenden standardmäßig
--workload-metadata-from-node=GKE_METADATA_SERVER. |
Um einen bestehenden Node-Pool zu ändern, um den GKE-Metadatenserver zu aktivieren:
gcloud container node-pools update <node_pool_name> --cluster=<cluster_name> --workload-metadata-from-node=GKE_METADATA_SERVER
Möglicherweise müssen Workloads geändert werden, damit sie die Workload-Identität
verwenden können. Siehe die GKE-Dokumentation für weitere Informationen.
