Dépannage des charges depuis Google Cloud Storage

Cette rubrique fournit des instructions pour résoudre les problèmes spécifiques au chargement des données à partir des zones de préparation Google Cloud Storage.

Pour les étapes générales de dépannage du chargement des données, voir Dépannage des chargements de données en lot.

Dans ce chapitre :

Erreur : Échec de l’utilisation de la région de la zone de préparation

Lorsque vous tentez de charger des données à partir d’un compartiment Google Cloud Storage (GCS), vous pouvez rencontrer l’erreur suivante :

Failure using stage area. Cause: [Request violates VPC Service Controls. (Status Code: 403)]

Cette erreur indique une violation des restrictions établies pour un périmètre de service GCP, qui est configuré à l’aide de VPC Service Controls pour sécuriser les données sensibles. Bien que le compte de service GCS créé pour votre compte Snowflake ait pu être autorisé à lire et à écrire dans le compartiment, les règles d’accès pour le périmètre de service sont appliquées au niveau de l’organisation GCP, affectant potentiellement plusieurs projets. Pour consulter des détails supplémentaires associés au message d’erreur, accédez aux journaux d’erreurs VPC Service Control. Consultez la documentation GCP pour obtenir une description des valeurs violationReason dans les journaux.

L’option la plus simple pour résoudre l’erreur consiste à charger les données à partir d’un compartiment exclu du périmètre de service. Si cette option n’est pas autorisée par vos règles de sécurité établies, vous pouvez exclure le compte de service GCS de votre compte Snowflake des filtres de périmètre de service en ajoutant le compte de service dans une stratégie de niveau d’accès. Notez que le compte de service nécessite toujours l’accès aux ressources approuvées à l’aide de la stratégie IAM standard décrite dans les instructions de configuration de l’intégration avec GCS.

La stratégie d’accès pour une organisation GCP contient des niveaux d’accès. Les niveaux d’accès sont créés et gérés à l’aide d’Access Context Manager et de la console Google Cloud, de l’outil de ligne de commande gcloud ou de l’API Cloud. Les instructions suivantes s’appuient sur l’outil de ligne de commande gcloud.

Pour ajouter le compte de service GCS de votre compte Snowflake à une stratégie de niveau d’accès :

  1. Avec un client Snowflake, récupérez l’ID du compte de service Cloud Storage créé automatiquement pour votre compte Snowflake (à l’aide de DESCRIBE INTEGRATION) :

    DESC STORAGE INTEGRATION <integration_name>;
    

    nom_intégration est le nom d’une intégration de stockage dans votre compte. Pour plus d’informations, voir Configuration d’une intégration pour Google Cloud Storage.

  2. Créez un fichier nommé snowflake_policy.yaml sur votre ordinateur local. Spécifiez l’ID du compte de service dans l’attribut members :

    - members:
       - serviceAccount:<service_account>
    

    Par exemple :

    - members:
       - serviceAccount:service-account-id@project1-123456.iam.gserviceaccount.com
    
  3. À l’aide de l’outil de ligne de commande gcloud, exécutez la commande suivante pour créer un niveau d’accès.

    Note

    Cette commande nécessite un rôle GCP avec les autorisations nécessaires pour modifier le contrôle de service VCP.

    gcloud access-context-manager levels create <access_level_name> \
       --title snowflake \
       --basic-level-spec snowflake_policy.yaml \
       --combine-function=OR \
       --policy=<policy_name>
    

Où :

  • nom_stratégie est le nom de la stratégie d’accès de votre organisation GCP.

  • nom_niveau_accès est le nom de votre choix pour le nom du niveau d’accès.