Ruotare 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 queste 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) per il 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 certificato del cluster utente con quelle appena generate.

  • I controller del cluster amministrativo distribuiscono i nuovi certificati CA pubblici e le coppie di chiavi dei certificati principali ai componenti di sistema del cluster utente.

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

Per mantenere la comunicazione del cluster sicura, ruota la CA del cluster utente periodicamente 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 agli impatti:

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

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

  • Una rotazione della CA riavvia il server API, altri processi del piano di controllo e ogni nodo del cluster più volte. Ogni fase di una rotazione della CA procede in modo simile a un upgrade del cluster. Sebbene il cluster utente rimanga operativo durante la rotazione dell'autorità di certificazione, è normale che i carichi di lavoro vengano riavviati e riprogrammati.

  • Se il tuo cluster utente non dispone di un control plane ad alta disponibilità, prendi in considerazione brevi periodi di inattività del control plane durante la rotazione della CA.

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

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

Limitazioni

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

  • La rotazione delle CA non aggiorna i certificati emessi manualmente da un amministratore, anche se sono firmati dall'autorità di certificazione del cluster. Aggiorna e ridistribuisci eventuali certificati emessi manualmente al termine della rotazione della CA del cluster utente.

  • Una volta avviata, la rotazione delle 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 dei cluster. Ti consigliamo di eseguire regolarmente l'upgrade dei cluster per mantenerli sicuri e supportati ed evitare che i certificati TLS scadano.

Utilizza il seguente comando per avviare la procedura 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 eseguire la rotazione delle CA.
  • KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione. Per i cluster autogestiti, questo file è il file kubeconfig del cluster.

Il comando bmctl esce dopo la rotazione 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 dell'autorità di certificazione 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