Rotazione delle chiavi dell'account di servizio

Questa pagina descrive come ruotare le chiavi per i seguenti account di servizio:

Per ruotare le chiavi degli account di servizio:

  1. Crea una directory in cui archiviare un backup dei secret attuali:

    mkdir backup
  2. 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 private registry, il secret private-registry-creds contiene la chiave per l'accesso al componente l'account di servizio.
    • Se utilizzi un registry privato, il secret private-registry-creds contiene le credenziali per il registry privato, non la chiave dell'account di servizio di accesso del componente.

    Connetti-registrati

    Cluster Secret Spazio dei nomi
    Amministratore admin-cluster-creds kube-system
    Amministratore user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt

    Monitoraggio-logging

    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

    Log di controllo

    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

    Misurazione dell'utilizzo

    Cluster Secret Spazio dei nomi
    Amministratore user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt
    Utente usage-metering-bigquery-service-account-key kube-system

    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
  3. Crea un backup di ogni secret utilizzando il seguente comando:

    kubectl get secret SECRET --namespace NAMESPACE \
        --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json

    Sostituisci 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 del servizio di logging di controllo:

    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
  4. Per 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 della chiave dell'account di servizio
    • IAM_ACCOUNT: l'indirizzo email dell'account di servizio
  5. Nel file di configurazione del cluster di amministrazione, campo componentAccessServiceAccountKeyPath, la sezione gkeConnect e stackdriver e la sezione cloudAuditLogging. In questi casi, sostituire i percorsi dei file delle chiavi dell'account di servizio.

  6. Nel file di configurazione del cluster utente, individua il campo componentAccessServiceAccountKeyPath, la sezione gkeConnect, la sezione stackdriver, la sezione cloudAudigLogging e la sezione usageMetering. In questi punti, sostituisci i percorsi dei file delle chiavi dell'account di servizio.

  7. Salva le modifiche apportate eseguendo i seguenti comandi. Puoi ruotare le chiavi per un componente alla volta oppure puoi ruotare tutte le chiavi contemporaneamente imposta 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_CONFIG
    

    Sostituisci quanto segue:

    • COMPONENT: uno tra:

      • componentaccess
      • register
      • cloudauditlogging
      • usagemetering
      • stackdriver
      • sakeys (Ruota le chiavi per più 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 delle chiavi degli account di servizio potrebbero richiedere più tempo la ricreazione è obbligatoria:

Account di servizio È necessaria la ricreazione dei nodi
Accesso ai componenti Se utilizzi Container Registry: Sì
Se utilizzi un registry privato: No
Audit logging Cluster di amministrazione: sì
Cluster utente con control plane v2 abilitato: sì, ma solo i nodi del control plane
Monitoraggio dei log No
Connetti-registra No
Misurazione dell'utilizzo No

Per una rotazione della chiave che richiede la nuova creazione di nodi, i nodi vengono sostituiti in un processo di aggiornamento in sequenza; cioè i nodi vengono ricreati uno alla volta.

Il possibile tempo di inattività durante una rotazione delle chiavi è simile al tempo di inattività per un upgrade del cluster. Per maggiori dettagli, vedi Tempo di inattività durante gli upgrade.

Ripristino dei backup

Se devi ripristinare i backup dei secret creati in precedenza, esegui il seguente comando:

kubectl apply -f backup/