Ruota le autorità di certificazione

Google Distributed Cloud utilizza certificati e chiavi private per autenticare e criptare le connessioni tra i componenti di sistema nei cluster. L'autorità di certificazione (CA) del cluster gestisce questi certificati e chiavi. Quando esegui il comando bmctl update credentials certificate-authorities rotate, Google Distributed Cloud esegue le seguenti azioni:

  • Il comando crea e carica nuove autorità di certificazione (CA) del cluster per la CA del cluster, la CA etcd e la CA front-proxy nello spazio dei nomi del cluster utente nel cluster di amministrazione.

  • I controller del cluster di amministrazione sostituiscono le autorità di certificazione del cluster utente con quelle appena generate.

  • I controller del cluster di amministrazione distribuiscono le nuove coppie di chiavi dei certificati CA pubblici e dei certificati foglia ai componenti di sistema del cluster utente.

  • Il comando aggiorna anche il secret stackdriver-prometheus-etcd-scrape, che è stato creato da Google Distributed Cloud durante la creazione del cluster. Prometheus richiede questo secret per raccogliere le metriche etcd.

Per mantenere sicure le comunicazioni del cluster, ruota periodicamente la CA del cluster utente e ogni volta che si verifica una possibile violazione della sicurezza.

Prima di iniziare

Prima di ruotare l'autorità di certificazione del cluster, pianifica in base alle seguenti condizioni e impatti:

  • Assicurati che i cluster di amministrazione e utente siano alla versione 1.9.0 o successive prima di iniziare la rotazione CA.

  • La rotazione delle CA è incrementale, il che consente ai componenti del sistema di comunicare durante la rotazione.

  • La rotazione della CA riavvia più volte il server API, altri processi del control plane e ogni nodo del cluster. Ogni fase di una rotazione della CA procede in modo simile a un upgrade del cluster. Anche se il cluster utente rimane operativo durante la rotazione dell'autorità di certificazione, è previsto il riavvio e la riprogrammazione dei carichi di lavoro.

  • Se il cluster utente non ha un control plane ad alta disponibilità, prevedi brevi periodi di inattività del control plane durante la rotazione della CA.

  • Le operazioni di gestione dei cluster non sono consentite durante la rotazione della CA.

  • La durata della rotazione della CA dipende dalle dimensioni del cluster. Ad esempio, la rotazione della CA potrebbe richiedere quasi due ore per essere completata per un cluster con un piano di controllo e 50 nodi worker.

Limitazioni

La funzionalità di rotazione dell'autorità di certificazione presenta le seguenti limitazioni:

  • La rotazione della CA non aggiorna i certificati emessi manualmente da un amministratore, anche se la CA del cluster firma i certificati. Aggiorna e ridistribuisci tutti i certificati emessi manualmente dopo il completamento della rotazione della CA del cluster utente.

  • Una volta avviata, la rotazione della CA non può essere messa in pausa o annullata.

Avviare una rotazione dell'autorità di certificazione del cluster

Per impostazione predefinita, i certificati TLS hanno un periodo di scadenza di un anno. Google Distributed Cloud rinnova questi certificati quando ruoti le autorità di certificazione. Google Distributed Cloud rinnova anche i certificati TLS durante gli upgrade del cluster. Ti consigliamo di eseguire regolarmente l'upgrade dei cluster per mantenerli sicuri, supportati e per evitare la scadenza dei certificati TLS.

Utilizza il seguente comando per avviare il processo di rotazione della CA:

bmctl update credentials certificate-authorities rotate --cluster CLUSTER_NAME \
    --kubeconfig KUBECONFIG

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster per cui vuoi ruotare le CA.
  • KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione. Per i cluster self-managed, questo file è il file kubeconfig del cluster.

Il comando bmctl viene chiuso dopo la rotazione riuscita della CA e la generazione di un nuovo file kubeconfig. Il percorso standard per il file kubeconfig è bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

Risolvere i problemi relativi alla rotazione della CA del cluster

Il comando bmctl update credentials mostra l'avanzamento della rotazione della CA. Il file update-credentials.log associato viene salvato nella seguente directory con timestamp:

bmctl-workspace/CLUSTER_NAME/log/update-credentials-TIMESTAMP