Risolvere gli errori di autorizzazione in Backup per GKE


Questa pagina descrive gli errori di autorizzazione che potresti riscontrare durante l'utilizzo di Backup per GKE, gli aspetti da considerare durante l'esecuzione dell'azione e come risolvere l'errore.

Errore 100010101: impossibile eseguire il backup di PersistentVolumeClaim. Associazione IAM mancante per il progetto tenant

L'errore 100010101 si verifica quando un tentativo di backup di un PersistentVolumeClaim non riesce a causa di un'associazione Identity and Access Management mancante per il progetto tenant, con conseguente messaggio di errore che indica Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project.

Backup per GKE crea snapshot del Persistent Disk del cluster GKE. Gli snapshot si trovano nel tuo progetto Google Cloud , noto anche come progetto consumer, e Google Cloud li crea all'interno di un progetto tenant che gestisce. Il progetto tenant esiste all'interno dell'organizzazione google.com, separata dalla tua organizzazione.

L'agente di servizio all'interno del progetto tenant richiede autorizzazioni specifiche per utilizzare la chiave di crittografia gestita dal cliente (CMEK) che cripta il Persistent Disk a cui fa riferimento il PersistentVolumeClaim del cluster. Questa autorizzazione cripta e decripta i dati dello snapshot. Se l'agente di servizio service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com non dispone del ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter sulla CMEK del disco, l'operazione di backup non va a buon fine.

Per risolvere questo errore, segui queste istruzioni:

  1. Verifica di disporre delle autorizzazioni IAM sufficienti per modificare le policy IAM sulla chiave Cloud Key Management Service nella console Google Cloud , ad esempio roles/cloudkms.admin o roles/owner.

  2. Individua l'agente di servizio Compute Engine del progetto tenant utilizzando il valore TENANT_PROJECT_NUMBER presente nel messaggio status reason dell'operazione di backup non riuscita. Ad esempio service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  3. Individua le seguenti informazioni CMEK utilizzate per il tuo Persistent Disk criptato:

    • Nome chiave: il nome della chiave di crittografia.

    • Keyring: il nome del keyring in cui si trova la chiave.

    • Posizione: la Google Cloud posizione in cui si trova la chiave. Ad esempio, global o us-central1.

  4. Per concedere all'agente di servizio Compute Engine del progetto tenant il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter sulla tua chiave CMEK, esegui il comando gcloud kms keys add-iam-policy-binding utilizzando Google Cloud CLI:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Sostituisci quanto segue:

    • KEY_NAME: il nome della chiave di crittografia.

    • KEY_RING: il nome del portachiavi.

    • LOCATION: la Google Cloud posizione della chiave. Ad esempio, global o us-central1.

    • TENANT_PROJECT_NUMBER: il numero del progetto tenant che hai ottenuto dal messaggio status reason dell'operazione di backup non riuscita.

    Se il comando ha esito positivo, l'output è simile al seguente:

    - members:
    - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  5. Esegui di nuovo il test dell'operazione di backup. Se l'operazione non va ancora a buon fine, contatta l'assistenza clienti Google Cloud per ulteriore assistenza.

Errore 100010104: Impossibile eseguire il backup di PersistentVolumeClaim - Violazione del vincolo della policy dell'organizzazione durante la creazione dello snapshot

L'errore 100010104 si verifica quando un tentativo di backup di un PersistentVolumeClaim non riesce a causa di una violazione del vincolo dei criteri dell'organizzazione durante la creazione dello snapshot, con conseguente messaggio di errore che indica Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot.

Backup per GKE crea snapshot del Persistent Disk del cluster GKE. Gli snapshot si trovano nel tuo progetto Google Cloud , noto anche come progetto consumer, e vengono creati all'interno di un progetto tenant gestito da Google Cloud. Il progetto tenant esiste all'interno dell'organizzazione google.com, separata dalla tua organizzazione.

La policy dell'organizzazione determina dove puoi creare risorse di archiviazione. L'errore Constraint constraints/compute.storageResourceUseRestrictions violated indica che una risorsa o uno snapshot viola le norme perché è stato creato in un progetto tenant che non fa parte della struttura organizzativa consentita. Poiché il progetto tenant si trova all'interno dell'organizzazione di Google, non rientra nel criterio definito, il che comporta l'errore di backup.

Per risolvere questo errore, segui queste istruzioni:

  1. Individua la policy dell'organizzazione che implementa il vincolo constraints/compute.storageResourceUseRestrictions. Per saperne di più su come visualizzare le policy dell'organizzazione utilizzando la console Google Cloud , consulta Visualizzazione delle policy dell'organizzazione.

  2. Modifica il criterio constraints/compute.storageResourceUseRestrictions per includere la cartella del progetto tenant folders/77620796932 utilizzata da Backup per GKE nella relativa lista consentita.

  3. Salva le modifiche alle norme dopo aver aggiunto la cartella alla lista consentita.

  4. Esegui nuovamente il test dell'operazione di backup dopo l'aggiornamento e la propagazione dei criteri dell'organizzazione, che di solito richiedono alcuni minuti. Il backup deve procedere senza violare le limitazioni all'utilizzo delle risorse di archiviazione. Se l'operazione non va ancora a buon fine, contatta l'assistenza clienti Google Cloud per ulteriore assistenza.

Errore 100010106: impossibile eseguire il backup del PVC. Manca l'associazione IAM per l'agente di servizio Backup per GKE

L'errore 100010106 si verifica quando un tentativo di backup di un PersistentVolumeClaim non riesce a causa di un'associazione Identity and Access Management mancante per l'agente di servizio Backup per GKE, con conseguente messaggio di errore che indica Failed to backup PVC - Missing IAM binding for Backup for GKE service agent.

Backup per GKE richiede le autorizzazioni per utilizzare la chiave di crittografia gestita dal cliente (CMEK) del tuo BackupPlan per criptare e decriptare i volumi Persistent Disk. Quando l'agente di servizio Backup per GKE non dispone del ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter sulla tua CMEK BackupPlan, le operazioni di backup non vanno a buon fine.

Per risolvere questo errore, segui queste istruzioni:

  1. Identifica l'agente di servizio Backup per GKE gestito da Google specifico per il tuo progetto. Ad esempio, service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com. Puoi trovare il numero di progetto utilizzando i seguenti metodi:

    • Utilizza la dashboard del progetto Google Cloud nella console Google Cloud .

    • Esegui il comando gcloud projects describe utilizzando Google Cloud CLI:

      gcloud projects describe PROJECT_ID –format="value(projectNumber)"
      

      Sostituisci PROJECT_ID con il nome univoco del tuo progetto.

  2. Identifica i seguenti dettagli di CMEK:

    • Nome chiave: il nome della chiave di crittografia.

    • Keyring: il nome del keyring in cui si trova la chiave.

    • Posizione: la Google Cloud posizione in cui si trova la tua chiave BackupPlan CMEK. Ad esempio, global o us-central1.

  3. Per concedere al service agent Backup per GKE il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter sulla tua chiave CMEK, utilizza Google Cloud CLI per eseguire il comando gcloud kms keys add-iam-policy-binding:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Sostituisci quanto segue:

    • KEY_NAME: il nome della chiave di crittografia.

    • KEY_RING: il nome del portachiavi.

    • LOCATION: la Google Cloud posizione della chiave. Ad esempio, global o us-central1.

    • PROJECT_NUMBER: il tuo numero di progetto Google Cloud .

  4. Verifica di disporre delle autorizzazioni Identity and Access Management richieste per la chiave Cloud Key Management Service. Ad esempio, roles/cloudkms.admin o roles/owner.

  5. Verifica di disporre delle autorizzazioni concesse. Nell'output del comando gcloud kms keys add-iam-policy-binding precedente, cerca una voce simile alla seguente:

    -members:
    -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  6. Esegui nuovamente il test dell'operazione di backup dopo aver concesso le autorizzazioni necessarie. Se l'operazione non viene completata correttamente, contatta l'assistenza clienti Google Cloud per ulteriore assistenza.

Errore 100010107: impossibile eseguire il backup del PVC - Associazione IAM mancante - account di servizio agente (KCP)

L'errore 100010107 si verifica quando tenti di eseguire un'operazione di backup per GKE e l'agente di servizio del cluster Google Kubernetes Engine non ha accesso alla tua chiave di crittografia gestita dal cliente (CMEK), il che comporta la visualizzazione del messaggio Failed to backup PVC - Missing IAM binding - agent service account (KCP).

L'agente di servizio del cluster Google Kubernetes Engine, in genere nel formato service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com, è essenziale per consentire al cluster GKE di interagire con i servizi Google Cloud. Quando il piano di backup utilizza una chiave di crittografia gestita dal cliente (CMEK). Questo service agent ha bisogno delle autorizzazioni per criptare e decriptare i dati di backup utilizzando la tua CMEK. Se nel piano di backup manca il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter su CMEK, le operazioni di backup avviate dal cluster non vanno a buon fine e viene visualizzato un errore permission denied.

Per risolvere l'errore, segui queste istruzioni per la risoluzione dei problemi:

  1. Verifica di disporre delle autorizzazioni corrette per modificare i criteri IAM sulla chiave Cloud Key Management Service. Ad esempio, cloudkms.admin o roles/owner.

  2. Identificare l'agente di servizio del cluster Google Kubernetes Engine. Questo service agent viene creato e gestito automaticamente da Google Cloud per i tuoi cluster GKE. Ad esempio, service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com. Per creare il account di servizio completo, devi disporre del numero di progetto. Puoi trovare il numero del progetto utilizzando uno dei seguenti metodi:

    • Utilizza la dashboard del progetto Google Cloud nella console Google Cloud .

    • Esegui il comando gcloud projects describe utilizzando Google Cloud CLI:

      gcloud projects describe PROJECT_ID –-format="value(projectNumber)"
      

      Sostituisci PROJECT_ID con l'ID progetto.

  3. Individua le seguenti informazioni su CMEK:

    • Nome chiave: il nome della chiave di crittografia.

    • Keyring: il nome del keyring in cui si trova la chiave.

    • Posizione: la Google Cloud posizione in cui si trova la chiave. Ad esempio, global o us-central1.

  4. Concedi il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter a livello di chiave di crittografia gestita dal cliente. L'agente di servizio Google Kubernetes Engine ha bisogno delle autorizzazioni per la chiave di crittografia. Per concedere il ruolo roles/cloudkms.cryptoKeyEncrypterDecrypter sulla tua chiave CMEK, utilizza Google Cloud CLI per eseguire il comando gcloud kms key add-iam-policy-binding:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Sostituisci quanto segue:

    • KEY_NAME: il nome della chiave di crittografia.

    • KEY_RING: il nome del portachiavi.

    • LOCATION: la Google Cloud posizione della chiave. Ad esempio, global o us-central1.

    • PROJECT_NUMBER: il nome del progetto.

    L'output è simile al seguente:

     - members:
     - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com
     role: roles/cloudkms.cryptoKeyEncrypterDecrypter
     ```
    
  5. Riprova l'operazione Backup per GKE. Se l'operazione continua a non riuscire, contatta l'assistenza clienti Google Cloud per ulteriore assistenza.

Passaggi successivi