In questa pagina viene descritto come ruotare le chiavi per i seguenti account di servizio:
Per ruotare le chiavi dell'account di servizio:
Crea una directory per archiviare un backup dei secret attuali:
mkdir backup
Prendi nota delle seguenti informazioni per l'account di servizio pertinente:
Accesso ai componenti
Cluster Secret Spazio dei nomi Amministratore admin-cluster-creds kube-system Amministratore user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Amministratore private-registry-creds kube-system Utente private-registry-creds kube-system - Se non utilizzi un
registro privato,
il
private-registry-credsSecret contiene la chiave per l'account di servizio di accesso ai componenti. - Se utilizzi un registro privato, il secret
private-registry-credscontiene le credenziali per il registro privato, non la chiave dell'account di servizio di accesso ai componenti.
Connect-register
Cluster Secret Spazio dei nomi Amministratore admin-cluster-creds kube-system Amministratore user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Logging-monitoring
Cluster Secret Spazio dei nomi Amministratore admin-cluster-creds kube-system Amministratore user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Utente google-cloud-credentials kube-system Utente stackdriver-service-account-key knative-serving Audit logging
Cluster Secret Spazio dei nomi Amministratore admin-cluster-creds kube-system Amministratore user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Amministratore kube-apiserver CLUSTER_NAME Stackdriver
Cluster Secret Spazio dei nomi Amministratore admin-cluster-creds kube-system Amministratore user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Utente google-cloud-credentials kube-system Utente stackdriver-service-account-key knative-serving - Se non utilizzi un
registro privato,
il
Crea un backup di ogni secret utilizzando il seguente comando:
kubectl get secret SECRET --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.jsonSostituisci quanto segue:
NAMESPACE: lo spazio dei nomi in cui si trova il secret. Ad esempio,kube-system.KUBECONFIG: il percorso del file kubeconfig per il cluster di amministrazione o utente.SECRET: il nome del secret. Ad esempio,admin-cluster-creds.
Ad esempio, esegui i seguenti comandi per l'account di servizio di audit logging:
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.jsonPer creare un nuovo file di chiavi dell'account di servizio, esegui questo comando:
gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT
Sostituisci quanto segue:
NEW_KEY_FILE: il nome del nuovo file di chiavi dell'account di servizioIAM_ACCOUNT: l'indirizzo email del account di servizio
Nel file di configurazione del cluster di amministrazione, individua il campo
componentAccessServiceAccountKeyPath, la sezionegkeConnect, la sezionestackdrivere la sezionecloudAuditLogging. In questi punti, sostituisci i percorsi dei file di chiavi dell'account di servizio.Nel file di configurazione del cluster utente, individua il campo
componentAccessServiceAccountKeyPath, la sezionegkeConnect, la sezionestackdrivere la sezionecloudAudigLogging. In questi punti, sostituisci i percorsi dei file di chiavi dell'account di servizio.Salva le modifiche apportate eseguendo i seguenti comandi:
Puoi ruotare le chiavi per un componente alla volta oppure puoi ruotare tutte le chiavi contemporaneamente impostando il componente su
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_CONFIGSostituisci quanto segue;
COMPONENT: uno dei seguenti:componentaccessregistercloudauditloggingstackdriversakeys(ruota tutte le chiavi dei componenti)
ADMIN_CLUSTER_KUBECONFIG: il percorso del file kubeconfig per il cluster di amministrazione.ADMIN_CLUSTER_CONFIG: il percorso del file di configurazione del cluster di amministrazione.USER_CLUSTER_CONFIG: il percorso del file di configurazione del cluster utente.
Ricreazione dei nodi
Alcune rotazioni della chiave degli account di servizio potrebbero richiedere più tempo perché è necessaria la ricreazione dei nodi:
| Service account | Ricreazione dei nodi richiesta |
|---|---|
| Accesso ai componenti | Se utilizzi Artifact Registry: Sì Se utilizzi un registro privato: No |
| Audit logging | Cluster di amministrazione: Sì, ma solo i nodi del control plane Cluster utente che utilizza kubeception: No Cluster utente che utilizza Controlplane V2: Sì, ma solo i nodi del control plane |
| Logging-monitoring | No |
| Connect-register | No |
Per una rotazione della chiave che richiede la ricreazione dei nodi, i nodi vengono sostituiti in un processo di aggiornamento in sequenza, ovvero i nodi vengono ricreati uno alla volta.
Il possibile tempo di inattività durante una rotazione della chiave è simile al tempo di inattività per un upgrade del cluster. Per informazioni dettagliate, vedi Tempo di inattività durante gli upgrade.
Ripristino dei backup
Se devi ripristinare i backup dei secret creati in precedenza, esegui questo comando:
kubectl apply -f backup/
Differenze dei cluster avanzati per la rotazione delle chiavi degli account di servizio
Il comando gkectl update credentials è supportato solo parzialmente per i cluster avanzati. La tabella seguente elenca le varianti dei comandi supportate e non supportate:
| Comando | Descrizione | Assistenza |
|---|---|---|
gkectl update credentials certificate-authorities rotate |
Ruota le autorità di certificazione. | Supportato |
gkectl update credentials certificate-authorities status |
(Anteprima) Visualizza lo stato di rotazione delle autorità di certificazione. | Supportato |
gkectl update credentials certificate-authorities update-kubeconfig |
Scarica un file kubeconfig con il certificato client più recente. | Supportato |
gkectl update credentials cloudauditlogging |
Aggiorna le credenziali di Cloud Audit Logs. | Non supportato |
gkectl update credentials componentaccess |
Aggiorna le credenziali della chiave dell'account di servizio di accesso ai componenti per i cluster creati con Google Distributed Cloud per VMware. | Supportato |
gkectl update credentials f5bigip |
Aggiorna le credenziali del bilanciatore del carico F5 BIG-IP. | Non necessario |
gkectl update credentials ksa-signing-key rotate |
Ruota la chiave di firma del token dell'account di servizio Kubernetes (KSA). | Non supportato |
gkectl update credentials ksa-signing-key status |
Visualizza lo stato di una rotazione della chiave di firma del token KSA in corso. | Non supportato |
gkectl update credentials |
Aggiorna le credenziali del cluster. | Supportato |
gkectl update credentials privateregistry |
Aggiorna le credenziali del registro privato per un cluster. | Supportato |
gkectl update credentials register |
Aggiorna le credenziali della chiave dell'account di servizio di registrazione. | Supportato |
gkectl update credentials sakeys |
Aggiorna le credenziali delle chiavi dell'account di servizio per un cluster. | Supportato |
gkectl update credentials stackdriver |
(Anteprima) Aggiorna le credenziali di Google Cloud Observability. | Supportato |
gkectl update credentials vsphere |
Aggiorna le credenziali di vSphere per un cluster. | Supportato |
Per un elenco completo delle funzionalità di Google Distributed Cloud per VMware e delle capacità supportate o meno per i cluster avanzati, vedi Differenze durante l'esecuzione di cluster avanzati.