Questa pagina mostra come risolvere problemi relativi a: crittografia dei secret a livello di applicazione in Google Kubernetes Engine (GKE).
Aggiornamento non riuscito
Quando aggiorni la configurazione di crittografia della crittografia dei secret a livello di applicazione, GKE deve riscrivere tutti gli oggetti Secret nel cluster Kubernetes. GKE lo fa per garantire che tutti i Secret sono criptati dalla nuova chiave Cloud KMS o sono scritti non criptati se ecco cosa configuri.
Questa operazione di aggiornamento può non riuscire a causa di una delle seguenti condizioni:
- Il piano di controllo Kubernetes è temporaneamente non disponibile durante l'aggiornamento progressi.
- Un
AdmissionWebhook
definito dall'utente impedisce a GKE di poter per aggiornare gli oggetti Secret. - La chiave Cloud KMS aggiornata o precedente viene disattivata prima del completamento dell'operazione di aggiornamento.
Finché l'operazione di aggiornamento non va a buon fine, non interagire con nessuno dei due con le chiavi Cloud KMS precedenti o aggiornate.
Campi di debug
I nuovi cluster GKE che eseguono la versione 1.29 e successive contengono
campi aggiuntivi che ti consentono di monitorare gli aggiornamenti a Cluster.DatabaseEncryption
e aiutarti a risolvere gli errori.
I passaggi seguenti sono validi solo per i cluster in cui
Il campo DatabaseEncryption.CurrentState
non è vuoto. Se il campo CurrentState
è vuoto, significa che la funzionalità non è ancora attivata in questa versione del cluster.
A questi campi si applicano i seguenti limiti:
- Sono solo output, il che significa che non è possibile impostarli durante la creazione del cluster o richieste di aggiornamento.
Campo CurrentState
Puoi controllare lo stato attuale di un'operazione di aggiornamento DatabaseEncryption
esaminando il campo CurrentState
in Cluster.DatabaseEncryption
.
Valore di CurrentState |
Descrizione |
---|---|
|
L'ultima operazione di aggiornamento è andata a buon fine. Non sono necessarie altre azioni. Puoi eliminare le chiavi utilizzate in precedenza. |
|
L'aggiornamento è in corso. |
|
Si è verificato un errore con l'aggiornamento più recente. Non disattivare o distruggere le chiavi Cloud KMS utilizzate in precedenza, in quanto potrebbero essere ancora in uso da GKE.
Per ulteriori informazioni, consulta il campo |
Campo LastOperationErrors
Quando un'operazione di aggiornamento non va a buon fine, l'errore sottostante dell'istanza GKE
viene visualizzato nell'output di gcloud container clusters update
.
Vengono visualizzati anche i messaggi di errore delle due ultime operazioni di aggiornamento non riuscite
disponibile in Cluster.DatabaseEncryption.LastOperationErrors
.
Campo DecryptionKeys
La chiave Cloud KMS utilizzata per le nuove operazioni di crittografia è mostrata in
DatabaseEncryption.KeyName
. Di solito questa è l'unica chiave utilizzata dal cluster.
Tuttavia, DatabaseEncryption.DecryptionKeys
contiene chiavi aggiuntive che vengono utilizzate anche dal cluster se è in corso un aggiornamento o dopo un errore.
Ripristinare un aggiornamento non riuscito
Per eseguire il ripristino dopo un aggiornamento non riuscito:
- Esamina il messaggio di errore e risolvi eventuali problemi indicati.
- Riprova a inviare la richiesta di aggiornamento eseguendo il comando non riuscito, ad esempio
gcloud container clusters update ... --database-encryption-key
. Ti consigliamo di riprovare con la stessa richiesta di aggiornamento che hai inviato inizialmente o di ripristinare lo stato precedente del cluster. GKE potrebbe non essere in grado di passare a una chiave diversa o della crittografia se non può leggere uno o più secret.
Le seguenti sezioni elencano i motivi più comuni per gli errori.
Errore chiave Cloud KMS
Se il messaggio di errore contiene un riferimento a uno o più Cloud KMS di Cloud KMS, esamina la configurazione della chiave Cloud KMS per assicurarti le versioni pertinenti della chiave.
Se l'errore indica che una chiave Cloud KMS è stata disattivata o eliminata, riattiva la chiave o la versione della chiave.
Errore: impossibile utilizzare la chiave Cloud KMS configurata per la crittografia a livello di applicazione
Se l'account servizio predefinito di GKE non riesce ad accedere alla chiave Cloud KMS, viene visualizzato il seguente messaggio di errore:
Cluster problem detected (Kubernetes Engine Service Agent account unable to use CloudKMS key configured for Application Level encryption).
Per risolvere il problema, riattiva la chiave disabilitata.
Impossibile aggiornare il secret
Se l'API Kubernetes ha rifiutato la richiesta di aggiornamento a causa di un webhook di ammissione, potrebbe verificarsi il seguente errore:
error admission webhook WEBHOOK_NAME denied the request
Per risolvere questo errore, rimuovi l'webhook o modificalo in modo che GKE possa aggiornare i secret in tutti gli spazi dei nomi durante gli aggiornamenti delle chiavi.