Auf dieser Seite wird beschrieben, wie Sie Schlüssel für die folgenden Dienstkonten rotieren:
So rotieren Sie Ihre Dienstkontoschlüssel:
Erstellen Sie ein Verzeichnis zum Speichern einer Sicherung Ihrer aktuellen Secrets:
mkdir backup
Beachten Sie die folgenden Informationen für das entsprechende Dienstkonto:
Komponentenzugriff
Cluster Secret Namespace Administrator admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Admin private-registry-creds kube-system Nutzer private-registry-creds kube-system - Wenn Sie keine private Registry verwenden, enthält das
private-registry-creds
-Secret den Schlüssel für Ihr Dienstkonto für den Komponentenzugriff. - Wenn Sie eine private Registry verwenden, enthält das Secret
private-registry-creds
die Anmeldedaten für Ihre private Registry und nicht den Dienstkontoschlüssel für den Komponentenzugriff.
Connect-register
Cluster Secret Namespace Administrator admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Logging-monitoring
Cluster Secret Namespace Administrator admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Nutzer google-cloud-credentials kube-system Nutzer stackdriver-service-account-key knative-serving Audit-Logging
Cluster Secret Namespace Administrator admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Admin kube-apiserver CLUSTER_NAME Nutzungsmessung
Cluster Secret Namespace Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Nutzer usage-metering-bigquery-service-account-key kube-system Stackdriver
Cluster Secret Namespace Administrator admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Nutzer google-cloud-credentials kube-system Nutzer stackdriver-service-account-key knative-serving - Wenn Sie keine private Registry verwenden, enthält das
Erstellen Sie mit dem folgenden Befehl eine Sicherung jedes Secrets:
kubectl get secret SECRET --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json
Ersetzen Sie Folgendes:
NAMESPACE
: der Namespace, in dem sich das Secret befindet. Beispiel:kube-system
.KUBECONFIG
: der Pfad zur kubeconfig-Datei für den Administrator- oder Nutzercluster.SECRET
: der Name des Secrets. Beispiel:admin-cluster-creds
.
Führen Sie beispielsweise die folgenden Befehle für das Audit-Logging-Dienstkonto aus:
kubectl get secret admin-cluster-creds --namespace kube-system \ --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json kubectl get secret user-cluster-creds --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json kubectl get secret kube-apiserver --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
Führen Sie den folgenden Befehl aus, um eine neue Dienstkonto-Schlüsseldatei zu erstellen:
gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT
Ersetzen Sie Folgendes:
NEW_KEY_FILE
: der Name Ihrer neuen Dienstkonto-Schlüsseldatei.IAM_ACCOUNT
: die E-Mail-Adresse des Dienstkontos.
Suchen Sie in der Konfigurationsdatei des Administratorclusters das Feld
componentAccessServiceAccountKeyPath
, den AbschnittgkeConnect
, den Abschnittstackdriver
und den AbschnittcloudAuditLogging
. Ersetzen Sie an diesen Stellen die Pfade zu den Dienstkontoschlüsseldateien.Suchen Sie in der Konfigurationsdatei des Nutzerclusters das Feld
componentAccessServiceAccountKeyPath
, den AbschnittgkeConnect
, den Abschnittstackdriver
, den AbschnittcloudAudigLogging
und den AbschnittusageMetering
. Ersetzen Sie an diesen Stellen die Pfade zu den Dienstkontoschlüsseldateien.Speichern Sie die vorgenommenen Änderungen mit den folgenden Befehlen. Sie können die Schlüssel für jeweils eine Komponente oder alle Schlüssel auf einmal rotieren. Dazu setzen Sie die Komponente auf
sakeys
:gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --admin-cluster gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
Dabei gilt:
COMPONENT
: eine der folgenden Optionen:componentaccess
register
cloudauditlogging
usagemetering
stackdriver
sakeys
(Schlüssel für mehrere Komponenten rotieren)
ADMIN_CLUSTER_KUBECONFIG
: der Pfad zur kubeconfig-Datei für den Administratorcluster.ADMIN_CLUSTER_CONFIG
: der Pfad zur Konfigurationsdatei des Administratorclusters.USER_CLUSTER_CONFIG
: der Pfad zur Konfigurationsdatei des Nutzerclusters.
Neuerstellung von Knoten
Einige Dienstkontoschlüsselrotationen können länger dauern, da die Knoten neu erstellt werden müssen:
Dienstkonto | Neuerstellung von Knoten erforderlich |
---|---|
Komponentenzugriff | Bei Verwendung von Container Registry: Ja Bei Verwendung einer privaten Registry: Nein |
Audit-Logging | Administratorcluster: Ja Nutzercluster mit aktiviertem Contrlplane V2: Ja, aber nur für Knoten der Steuerungsebene |
Logging-monitoring | Nein |
Connect-register | Nein |
Nutzungsmessung | Nein |
Bei einer Schlüsselrotation, bei der Knoten neu erstellt werden müssen, werden die Knoten in einem Rolling Update-Prozess ersetzt. Das heißt, die Knoten werden nacheinander neu erstellt.
Die mögliche Ausfallzeit während einer Schlüsselrotation ähnelt der Ausfallzeit bei einem Clusterupgrade. Weitere Informationen finden Sie unter Ausfallzeit während Upgrades.
Sicherungen wiederherstellen
Wenn Sie die Sicherungen der zuvor erstellten Secrets wiederherstellen müssen, führen Sie den folgenden Befehl aus:
kubectl apply -f backup/