Résoudre les erreurs d'autorisation dans Sauvegarde pour GKE


Cette page décrit les erreurs d'autorisation que vous pouvez rencontrer lorsque vous utilisez Sauvegarde pour GKE, les éléments à prendre en compte lorsque vous effectuez l'action et comment résoudre l'erreur.

Erreur 100010101 : Échec de la sauvegarde de PersistentVolumeClaim – Liaison IAM manquante pour le projet locataire

L'erreur 100010101 se produit lorsqu'une tentative de sauvegarde d'un PersistentVolumeClaim échoue en raison d'une liaison Identity and Access Management manquante pour votre projet de locataire, ce qui entraîne un message d'erreur indiquant Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project.

Sauvegarde pour GKE crée des instantanés du disque persistant de votre cluster GKE. Les instantanés résident dans votre projet Google Cloud , également appelé projet client, et Google Cloud les crée dans un projet de locataire qu'il gère. Le projet locataire existe dans l'organisation google.com, distincte de la vôtre.

L'agent de service du projet de locataire nécessite des autorisations spécifiques pour utiliser la clé de chiffrement gérée par le client (CMEK) qui chiffre le disque persistant référencé par le PersistentVolumeClaim de votre cluster. Cette autorisation permet de chiffrer et de déchiffrer les données d'instantané. Si l'agent de service service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com ne dispose pas du rôle roles/cloudkms.cryptoKeyEncrypterDecrypter sur la clé CMEK de votre disque, l'opération de sauvegarde échoue.

Pour résoudre cette erreur, suivez les instructions ci-dessous :

  1. Vérifiez que vous disposez des autorisations IAM suffisantes pour modifier les stratégies IAM sur la clé Cloud Key Management Service dans la console Google Cloud , telles que roles/cloudkms.admin ou roles/owner.

  2. Localisez l'agent de service Compute Engine du projet locataire à l'aide de la valeur TENANT_PROJECT_NUMBER qui se trouve dans le message status reason de votre opération de sauvegarde ayant échoué. Exemple : service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  3. Localisez les informations CMEK suivantes utilisées pour votre disque persistant chiffré :

    • Nom de la clé : nom de votre clé de chiffrement.

    • Trousseau de clés : nom du trousseau de clés où se trouve votre clé.

    • Emplacement : emplacement Google Cloud de votre clé. Par exemple, global ou us-central1.

  4. Pour accorder le rôle roles/cloudkms.cryptoKeyEncrypterDecrypter à l'agent de service Compute Engine du projet locataire sur votre CMEK, exécutez la commande gcloud kms keys add-iam-policy-binding à l'aide de 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
    

    Remplacez les éléments suivants :

    • KEY_NAME : nom de votre clé de chiffrement.

    • KEY_RING : nom du trousseau de clés.

    • LOCATION : emplacement de votre clé Google Cloud . Par exemple, global ou us-central1.

    • TENANT_PROJECT_NUMBER : numéro du projet locataire que vous avez obtenu à partir du message status reason de votre opération de sauvegarde ayant échoué.

    Si la commande réussit, le résultat est semblable à celui-ci :

    - members:
    - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  5. Testez à nouveau l'opération de sauvegarde. Si l'opération échoue toujours, contactez Cloud Customer Care pour obtenir de l'aide.

Erreur 100010104 : Échec de la sauvegarde de PersistentVolumeClaim – Non-respect de la contrainte de règle de l'organisation lors de la création de l'instantané

L'erreur 100010104 se produit lorsqu'une tentative de sauvegarde d'un PersistentVolumeClaim échoue en raison d'une violation de contrainte de règle d'administration lors de la création d'un instantané, ce qui entraîne l'affichage du message d'erreur Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot.

Sauvegarde pour GKE crée des instantanés du disque persistant de votre cluster GKE. Les instantanés résident dans votre projet Google Cloud , également appelé projet client, et sont créés dans un projet locataire géré par Google Cloud. Le projet locataire existe dans l'organisation google.com, distincte de la vôtre.

Votre règle d'administration détermine où vous pouvez créer des ressources de stockage. L'erreur Constraint constraints/compute.storageResourceUseRestrictions violated signifie qu'une ressource ou un instantané enfreint le règlement en étant créé dans un projet locataire qui ne fait pas partie de la structure organisationnelle autorisée. Étant donné que le projet locataire se trouve dans l'organisation de Google, il ne relève pas de la stratégie que vous avez définie, ce qui entraîne l'échec de la sauvegarde.

Pour résoudre cette erreur, suivez les instructions ci-dessous :

  1. Localisez la règle d'administration qui implémente la contrainte constraints/compute.storageResourceUseRestrictions. Pour en savoir plus sur l'affichage des règles d'administration d'administration à l'aide de la console Google Cloud , consultez Afficher les règles d'administration.

  2. Modifiez la règle constraints/compute.storageResourceUseRestrictions pour inclure le dossier du projet locataire folders/77620796932 utilisé par Sauvegarde pour GKE dans sa liste d'autorisation.

  3. Enregistrez les modifications apportées aux règles après avoir ajouté le dossier à la liste d'autorisation.

  4. Testez à nouveau l'opération de sauvegarde après la mise à jour et la propagation de la règle d'entreprise, ce qui prend généralement quelques minutes. La sauvegarde doit se dérouler sans enfreindre les restrictions d'utilisation des ressources de stockage. Si l'opération échoue toujours, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.

Erreur 100010106 : Échec de la sauvegarde du PVC – Liaison IAM manquante pour l'agent de service Sauvegarde pour GKE

L'erreur 100010106 se produit lorsqu'une tentative de sauvegarde d'un PersistentVolumeClaim échoue en raison d'une liaison Identity and Access Management manquante pour votre agent de service Sauvegarde pour GKE, ce qui entraîne un message d'erreur indiquant Failed to backup PVC - Missing IAM binding for Backup for GKE service agent.

Sauvegarde pour GKE nécessite des autorisations pour utiliser la clé de chiffrement gérée par le client (CMEK) de votre BackupPlan afin de chiffrer et déchiffrer les disques persistants des volumes. Lorsque l'agent de service Sauvegarde pour GKE ne dispose pas du rôle roles/cloudkms.cryptoKeyEncrypterDecrypter sur votre CMEK BackupPlan, les opérations de sauvegarde échouent.

Pour résoudre cette erreur, suivez les instructions ci-dessous :

  1. Identifiez l'agent de service Sauvegarde pour GKE géré par Google et spécifique à votre projet. Par exemple, service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com. Vous pouvez trouver le numéro de votre projet en utilisant les méthodes suivantes :

    • Utilisez le tableau de bord du projet Google Cloud dans la console Google Cloud .

    • Exécutez la commande gcloud projects describe à l'aide de Google Cloud CLI :

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

      Remplacez PROJECT_ID par le nom unique de votre projet.

  2. Identifiez les informations CMEK suivantes :

    • Nom de la clé : nom de votre clé de chiffrement.

    • Trousseau de clés : nom du trousseau de clés où se trouve votre clé.

    • Emplacement : emplacement Google Cloud de votre clé CMEK BackupPlan. Par exemple, global ou us-central1.

  3. Pour accorder le rôle roles/cloudkms.cryptoKeyEncrypterDecrypter à l'agent de service Sauvegarde pour GKE sur votre clé CMEK, utilisez Google Cloud CLI pour exécuter la commande 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
    

    Remplacez les éléments suivants :

    • KEY_NAME : nom de votre clé de chiffrement.

    • KEY_RING : nom du trousseau de clés.

    • LOCATION : emplacement de votre clé Google Cloud . Par exemple, global ou us-central1.

    • PROJECT_NUMBER : numéro de votre projet Google Cloud .

  4. Vérifiez que vous disposez des autorisations Identity and Access Management requises sur la clé Cloud Key Management Service. Par exemple, roles/cloudkms.admin ou roles/owner.

  5. Vérifiez que vous disposez des autorisations accordées. Dans le résultat de la commande gcloud kms keys add-iam-policy-binding précédente, recherchez une entrée semblable à la suivante :

    -members:
    -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  6. Testez à nouveau l'opération de sauvegarde après avoir accordé les autorisations nécessaires. Si l'opération n'aboutit pas, contactez Cloud Customer Care pour obtenir de l'aide.

Erreur 100010107 : Échec de la sauvegarde du PVC – Liaison IAM manquante – Compte de service de l'agent (KCP)

L'erreur 100010107 se produit lorsque vous essayez d'effectuer une opération de sauvegarde Sauvegarde pour GKE et que l'agent de service du cluster Google Kubernetes Engine n'a pas accès à votre clé de chiffrement gérée par le client (CMEK), ce qui entraîne l'affichage du message Failed to backup PVC - Missing IAM binding - agent service account (KCP).

L'agent de service du cluster Google Kubernetes Engine, généralement au format service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com, est essentiel pour que votre cluster GKE puisse interagir avec les services Google Cloud. Lorsque votre forfait de sauvegarde utilise une clé de chiffrement gérée par le client (CMEK). Cet agent de service a besoin d'autorisations pour chiffrer et déchiffrer vos données de sauvegarde à l'aide de votre clé CMEK. Si le rôle roles/cloudkms.cryptoKeyEncrypterDecrypter est manquant dans le plan de sauvegarde sur votre CMEK, les opérations de sauvegarde lancées depuis le cluster échouent et renvoient une erreur permission denied.

Pour résoudre cette erreur, suivez les instructions de dépannage ci-dessous :

  1. Vérifiez que vous disposez des autorisations appropriées pour modifier les stratégies IAM sur la clé Cloud Key Management Service. Par exemple, cloudkms.admin ou roles/owner.

  2. Identifiez l'agent de service du cluster Google Kubernetes Engine. Cet agent de service est créé et géré automatiquement par Google Cloud pour vos clusters GKE. Exemple : service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com. Vous avez besoin du numéro de projet pour créer le compte de service complet. Vous pouvez trouver votre numéro de projet à l'aide de l'une des méthodes suivantes :

    • Utilisez le tableau de bord du projet Google Cloud dans la console Google Cloud .

    • Exécutez la commande gcloud projects describe à l'aide de Google Cloud CLI :

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

      Remplacez PROJECT_ID par l'ID du projet.

  3. Recherchez les informations CMEK suivantes :

    • Nom de la clé : nom de votre clé de chiffrement.

    • Trousseau de clés : nom du trousseau de clés où se trouve votre clé.

    • Emplacement : emplacement Google Cloud de votre clé. Par exemple, global ou us-central1.

  4. Attribuez le rôle roles/cloudkms.cryptoKeyEncrypterDecrypter au niveau de la clé CMEK. L'agent de service Google Kubernetes Engine a besoin d'autorisations sur votre clé de chiffrement. Pour attribuer le rôle roles/cloudkms.cryptoKeyEncrypterDecrypter à votre clé CMEK, utilisez la Google Cloud CLI pour exécuter la commande 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
    

    Remplacez les éléments suivants :

    • KEY_NAME : nom de votre clé de chiffrement.

    • KEY_RING : nom du trousseau de clés.

    • LOCATION : emplacement de votre clé Google Cloud . Par exemple, global ou us-central1.

    • PROJECT_NUMBER : nom du projet.

    Le résultat ressemble à ce qui suit :

     - members:
     - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com
     role: roles/cloudkms.cryptoKeyEncrypterDecrypter
     ```
    
  5. Réessayez l'opération Sauvegarde pour GKE. Si l'opération continue d'échouer, contactez l'assistance Cloud Customer Care pour obtenir de l'aide.

Étapes suivantes