Rotazione delle chiavi degli account di servizio

In questa pagina viene descritto 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 credenziali-cluster-utente 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 registro privato, Il secret di private-registry-creds contiene le credenziali per la tua , non la chiave dell'account di servizio di accesso ai componenti.

    Connetti-registrati

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

    Monitoraggio-logging

    Cluster Secret Spazio dei nomi
    Amministratore admin-cluster-creds kube-system
    Amministratore credenziali-cluster-utente 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 credenziali-cluster-utente CLUSTER_NAME-gke-onprem-mgmt
    Amministratore kube-apiserver CLUSTER_NAME

    Misurazione dell'utilizzo

    Cluster Secret Spazio dei nomi
    Amministratore credenziali-cluster-utente 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 credenziali-cluster-utente 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 questi comandi per il 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.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, trova campo componentAccessServiceAccountKeyPath, la sezione gkeConnect e stackdriver, la sezione cloudAudigLogging e usageMetering. In queste posizioni, sostituisci i percorsi del servizio chiave dell'account.

  7. Salva le modifiche apportate eseguendo questi 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 di più componenti.)
    • ADMIN_CLUSTER_KUBECONFIG: il percorso kubeconfig per il cluster di amministrazione.

    • ADMIN_CLUSTER_CONFIG: il percorso dell'amministratore di configurazione del cluster.

    • USER_CLUSTER_CONFIG: il percorso dell'utente di configurazione del cluster.

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 componente Se utilizzi Container Registry: sì
Se utilizzi un registro privato: No
Audit logging Cluster di amministrazione: Sì
Cluster utente con Contrlplane V2 abilitato: sì, ma solo il piano di controllo nodi
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 la rotazione della chiave è simile al tempo di inattività di una dell'upgrade del cluster. Per maggiori dettagli, vedi Tempo di inattività durante gli upgrade.

Ripristino dei backup in corso...

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

kubectl apply -f backup/