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 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) del cluster per la CA del cluster, la CA di etcd e la CA del proxy front-end 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 di certificati CA pubblici e di certificati foglia 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 secret per raccogliere le metriche di etcd.

Per mantenere la comunicazione sicura 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 ai seguenti impatti:

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

  • La rotazione della CA è incrementale e consente ai componenti di sistema di comunicare durante la rotazione.

  • Una rotazione della CA riavvia più volte il server API, altri processi del piano di controllo e ogni nodo del cluster. Ogni fase di una rotazione della CA procede in modo simile a un upgrade del cluster. Sebbene il cluster utente rimanga operativo durante una rotazione della CA, dovresti aspettarti che i carichi di lavoro vengano riavviati e ripianificati.

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

  • Le operazioni di gestione del 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 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 al termine della rotazione della CA del cluster utente.

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

Avviare una rotazione della CA del cluster

Per impostazione predefinita, i certificati TLS hanno un periodo di scadenza di 1 anno, mentre il certificato clientconfig-operator ha un periodo di scadenza di 10 anni (per le versioni precedenti alla 1.36.100, il certificato clientconfig-operator scade dopo cinque anni). Google Distributed Cloud rinnova questi certificati quando ruoti le autorità di certificazione. Google Distributed Cloud rinnova anche i certificati TLS di 1 anno durante gli upgrade del cluster. Per le versioni precedenti alla 1.36.100, ti consigliamo di eseguire regolarmente l'upgrade dei cluster per mantenerli sicuri e supportati, impedire la scadenza dei certificati TLS ed eseguire una rotazione della CA almeno una volta ogni cinque anni.

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 il quale vuoi ruotare le 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 viene chiuso dopo che la CA è stata ruotata correttamente e viene generato un nuovo file kubeconfig. Il percorso standard per il file kubeconfig è bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

Risolvere i problemi relativi a una 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