Berechtigungsfehler in Backup for GKE beheben


Auf dieser Seite werden Berechtigungsfehler beschrieben, die bei der Verwendung von Backup for GKE auftreten können. Außerdem werden Aspekte erläutert, die bei der Ausführung der Aktion zu berücksichtigen sind, und es wird beschrieben, wie Sie den Fehler beheben können.

Fehler 100010101: Fehler beim Sichern von PersistentVolumeClaim – IAM-Bindung für Mandantenprojekt fehlt

Der Fehler 100010101 tritt auf, wenn beim Versuch, eine PersistentVolumeClaim zu sichern, ein Fehler auftritt, weil für Ihr Mandantenprojekt keine Identity and Access Management-Bindung vorhanden ist. In diesem Fall wird die Fehlermeldung Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project angezeigt.

Backup for GKE erstellt Snapshots des nichtflüchtigen Speichers Ihres GKE-Clusters. Die Snapshots befinden sich in Ihrem Google Cloud Projekt, auch bekannt als das Nutzerprojekt, und Google Cloud erstellt sie in einem von ihm verwalteten Mandantenprojekt. Das Mandantenprojekt befindet sich in der Organisation google.com, getrennt von Ihrer eigenen Organisation.

Der Dienst-Agent im Mandantenprojekt benötigt bestimmte Berechtigungen, um den vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) zu verwenden, mit dem der nichtflüchtige Speicher verschlüsselt wird, auf den in der PersistentVolumeClaim Ihres Clusters verwiesen wird. Mit dieser Berechtigung werden die Snapshot-Daten verschlüsselt und entschlüsselt. Wenn dem service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com-Dienst-Agent die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für den CMEK Ihrer Festplatte fehlt, schlägt der Sicherungsvorgang fehl.

So beheben Sie diesen Fehler:

  1. Prüfen Sie, ob Sie in der Google Cloud Console ausreichende IAM-Berechtigungen zum Ändern von IAM-Richtlinien für den Cloud Key Management Service-Schlüssel haben, z. B. roles/cloudkms.admin oder roles/owner.

  2. Suchen Sie den Compute Engine-Dienst-Agent des Mandantenprojekts anhand des TENANT_PROJECT_NUMBER-Werts, der in der status reason-Meldung Ihres fehlgeschlagenen Sicherungsvorgangs enthalten ist. Beispiel: service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  3. Suchen Sie die folgenden CMEK-Informationen, die für Ihre verschlüsselte Persistent Disk verwendet werden:

    • Schlüsselname: Der Name Ihres Verschlüsselungsschlüssels.

    • Schlüsselbund: Der Name des Schlüsselbunds, in dem sich Ihr Schlüssel befindet.

    • Speicherort: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

  4. Wenn Sie dem Compute Engine-Dienst-Agent des Mandantenprojekts die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK zuweisen möchten, führen Sie den Befehl gcloud kms keys add-iam-policy-binding mit der Google Cloud CLI aus:

    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
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: Name des Verschlüsselungsschlüssels.

    • KEY_RING: Der Name des Schlüsselbunds.

    • LOCATION: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

    • TENANT_PROJECT_NUMBER: die Mandantenprojektnummer, die Sie aus der status reason-Meldung Ihres fehlgeschlagenen Sicherungsvorgangs erhalten haben.

    Bei erfolgreicher Ausführung des Befehls sieht die Ausgabe so aus:

    - members:
    - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  5. Wiederholen Sie den Sicherungsvorgang. Wenn der Vorgang weiterhin nicht erfolgreich ist, wenden Sie sich an Cloud Customer Care.

Fehler 100010104: Fehler beim Sichern von PersistentVolumeClaim – Verstoß gegen die Einschränkung der Organisationsrichtlinie beim Erstellen des Snapshots

Der Fehler 100010104 tritt auf, wenn der Versuch, eine PersistentVolumeClaim zu sichern, aufgrund eines Verstoßes gegen eine Organisationsrichtlinie während der Snapshot-Erstellung fehlschlägt. In diesem Fall wird die Fehlermeldung Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot angezeigt.

Backup for GKE erstellt Snapshots des nichtflüchtigen Speichers Ihres GKE-Clusters. Die Snapshots befinden sich in Ihrem Google Cloud -Projekt, auch bekannt als Nutzerprojekt, und werden in einem von Google Cloudverwalteten Mandantenprojekt erstellt. Das Mandantenprojekt befindet sich in der Organisation google.com, getrennt von Ihrer eigenen Organisation.

Ihre Organisationsrichtlinie gibt vor, wo Sie Speicherressourcen erstellen können. Der Fehler Constraint constraints/compute.storageResourceUseRestrictions violated bedeutet, dass eine Ressource oder ein Snapshot gegen die Richtlinie verstößt, weil sie in einem Mandantenprojekt erstellt wurde, das nicht Teil Ihrer zulässigen Organisationsstruktur ist. Da sich das Mandantenprojekt in der Organisation von Google befindet, fällt es nicht unter Ihre definierte Richtlinie, was zum Fehler bei der Sicherung führt.

So beheben Sie diesen Fehler:

  1. Suchen Sie die Organisationsrichtlinie, die die Einschränkung constraints/compute.storageResourceUseRestrictions implementiert. Weitere Informationen zum Aufrufen von Organisationsrichtlinien über die Google Cloud -Konsole finden Sie unter Organisationsrichtlinien aufrufen.

  2. Ändern Sie die constraints/compute.storageResourceUseRestrictions-Richtlinie so, dass der vom Backup for GKE verwendete folders/77620796932-Mandantenprojektordner in der Zulassungsliste enthalten ist.

  3. Speichern Sie die Richtlinienänderungen, nachdem Sie den Ordner auf die Zulassungsliste gesetzt haben.

  4. Testen Sie den Sicherungsvorgang noch einmal, nachdem die Organisationsrichtlinie aktualisiert und übernommen wurde. Das dauert in der Regel einige Minuten. Die Sicherung sollte ohne Verstoß gegen die Einschränkungen bei der Nutzung von Speicherressourcen erfolgen. Wenn der Vorgang weiterhin nicht erfolgreich ist, wenden Sie sich an Cloud Customer Care.

Fehler 100010106: Fehler beim Sichern von PVC – Fehlende IAM-Bindung für den Backup for GKE-Dienst-Agent

Der Fehler 100010106 tritt auf, wenn beim Versuch, eine PersistentVolumeClaim zu sichern, ein Fehler auftritt, weil für Ihren Backup for GKE-Dienst-Agent keine IAM-Bindung (Identity and Access Management) vorhanden ist. In diesem Fall wird die Fehlermeldung Failed to backup PVC - Missing IAM binding for Backup for GKE service agent angezeigt.

Für Backup for GKE sind Berechtigungen erforderlich, um den vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) von BackupPlan zum Verschlüsseln und Entschlüsseln von nichtflüchtigen Speichern zu verwenden. Wenn dem Backup for GKE-Dienst-Agent die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren BackupPlan-CMEK fehlt, schlagen Sicherungsvorgänge fehl.

So beheben Sie diesen Fehler:

  1. Ermitteln Sie den von Google verwalteten Backup for GKE-Dienst-Agent für Ihr Projekt. Beispiel: service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com. Sie können Ihre Projektnummer mit den folgenden Methoden ermitteln:

    • Verwenden Sie das Google Cloud Projekt-Dashboard in der Google Cloud Console.

    • Führen Sie den Befehl gcloud projects describe über die Google Cloud CLI aus:

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

      Ersetzen Sie PROJECT_ID durch den eindeutigen Namen Ihres Projekts.

  2. Ermitteln Sie die folgenden CMEK-Details:

    • Schlüsselname: Der Name Ihres Verschlüsselungsschlüssels.

    • Schlüsselbund: Der Name des Schlüsselbunds, in dem sich Ihr Schlüssel befindet.

    • Standort: Der Google Cloud -Standort, an dem sich Ihr BackupPlan-CMEK befindet. Beispiel: global oderus-central1.

  3. Um dem Backup for GKE-Dienst-Agent die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK zu gewähren, führen Sie den Befehl gcloud kms keys add-iam-policy-binding mit der Google Cloud CLI aus:

    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
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: Name des Verschlüsselungsschlüssels.

    • KEY_RING: Der Name des Schlüsselbunds.

    • LOCATION: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

    • PROJECT_NUMBER: Ihre Google Cloud -Projektnummer.

  4. Prüfen Sie, ob Sie die erforderlichen IAM-Berechtigungen (Identity and Access Management) für den Cloud KMS-Schlüssel haben. Beispiel: roles/cloudkms.admin oder roles/owner.

  5. Prüfen Sie, ob Sie die erteilten Berechtigungen haben. Suchen Sie in der Ausgabe des vorherigen gcloud kms keys add-iam-policy-binding-Befehls nach einem Eintrag, der dem folgenden ähnelt:

    -members:
    -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  6. Wiederholen Sie den Sicherungsvorgang, nachdem Sie die erforderlichen Berechtigungen erteilt haben. Wenn der Vorgang nicht erfolgreich abgeschlossen wird, wenden Sie sich an Cloud Customer Care.

Fehler 100010107: PVC konnte nicht gesichert werden – IAM-Bindung fehlt – Dienstkonto des Agents (KCP)

Der Fehler 100010107 tritt auf, wenn Sie versuchen, einen Backup for GKE-Sicherungsvorgang auszuführen und der Google Kubernetes Engine-Cluster-Dienst-Agent keinen Zugriff auf Ihren vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) hat. In diesem Fall wird die Meldung Failed to backup PVC - Missing IAM binding - agent service account (KCP) angezeigt.

Der Google Kubernetes Engine-Clusterdienst-Agent, in der Regel im Format service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com, ist unerlässlich, damit Ihr GKE-Cluster mit Google Cloud-Diensten interagieren kann. Wenn in Ihrem Sicherungsplan ein vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) verwendet wird. Dieser Dienstagent benötigt Berechtigungen zum Ver- und Entschlüsseln Ihrer Sicherungsdaten mit Ihrem CMEK. Wenn im Sicherungsplan die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK fehlt, schlagen Sicherungsvorgänge, die vom Cluster aus initiiert werden, mit dem Fehler permission denied fehl.

Führen Sie die folgenden Schritte zur Fehlerbehebung aus, um das Problem zu beheben:

  1. Prüfen Sie, ob Sie die erforderlichen Berechtigungen zum Ändern von IAM-Richtlinien für den Cloud Key Management Service-Schlüssel haben. Beispiel: cloudkms.admin oder roles/owner.

  2. Identifizieren Sie den Google Kubernetes Engine-Cluster-Dienst-Agent. Dieser Dienst-Agent wird automatisch von Google Cloud für Ihre GKE-Cluster erstellt und verwaltet. Beispiel: service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com Sie benötigen die Projektnummer, um das vollständige Dienstkonto zu erstellen. Sie können Ihre Projektnummer mit einer der folgenden Methoden ermitteln:

    • Verwenden Sie das Google Cloud Projekt-Dashboard in der Google Cloud Console.

    • Führen Sie den Befehl gcloud projects describe über die Google Cloud CLI aus:

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

      Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

  3. Suchen Sie die folgenden CMEK-Informationen:

    • Schlüsselname: Der Name Ihres Verschlüsselungsschlüssels.

    • Schlüsselbund: Der Name des Schlüsselbunds, in dem sich Ihr Schlüssel befindet.

    • Speicherort: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

  4. Weisen Sie die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter auf CMEK-Ebene zu. Der Google Kubernetes Engine-Dienst-Agent benötigt Berechtigungen für Ihren Verschlüsselungsschlüssel. Wenn Sie die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter für Ihren CMEK gewähren möchten, führen Sie den Befehl gcloud kms key add-iam-policy-binding mit der Google Cloud CLI aus:

    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
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: Name des Verschlüsselungsschlüssels.

    • KEY_RING: Der Name des Schlüsselbunds.

    • LOCATION: Der Google Cloud Speicherort Ihres Schlüssels. Beispiel: global oder us-central1.

    • PROJECT_NUMBER: der Name des Projekts.

    Die Ausgabe sieht etwa so aus:

     - members:
     - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com
     role: roles/cloudkms.cryptoKeyEncrypterDecrypter
     ```
    
  5. Wiederholen Sie den Backup for GKE-Vorgang. Wenn der Vorgang weiterhin fehlschlägt, wenden Sie sich an Cloud Customer Care.

Nächste Schritte