Résoudre les problèmes de mise en réseau de Looker (Google Cloud Core)

Vous pouvez diagnostiquer et résoudre les problèmes de connectivité entrants et sortants courants pour votre instance Looker (Google Cloud Core). Le dépannage de vos configurations Private Service Connect, d'accès aux services privés et de sortie contrôlée vous aide à rétablir les connexions aux fournisseurs d'identité, aux services externes et aux backends de base de données.

Échec de l'authentification OpenID Connect avec sortie contrôlée

Lorsque vous configurez l'authentification OpenID Connect sur une instance Looker (Google Cloud Core) configurée avec Private Service Connect et la sortie contrôlée activée, l'authentification peut échouer.

Symptômes

Si l'authentification a échoué, vous pouvez rencontrer l'un des problèmes suivants :

  • Le point de terminaison /openidconnect de Looker se bloque pendant environ 60 secondes dans le navigateur avant d'afficher une erreur ou d'expirer avec une erreur 504 Upstream Request Timeout ou 504 Gateway Timeout.
  • Votre fournisseur d'identité affiche un message d'erreur indiquant que l'URI de redirection ne correspond pas, par exemple :

    AADSTS50011: The redirect URI specified in the request does not match the
    redirect URIs configured for the application
    

    Ce message d'erreur est trompeur, car l'URI de redirection que vous avez configuré dans votre fournisseur d'identité peut être correct. L'échec se produit lorsque Looker (Google Cloud Core) ne parvient pas à contacter le point de terminaison du jeton du fournisseur d'identité lors de l'échange de backend.

Cause

Le workflow de provisionnement automatisé pour la sortie contrôlée échoue parfois à créer la route réseau Secure Web Proxy (looker-swp-route) nécessaire dans le projet locataire Looker (Google Cloud Core).

Lorsque cette route est manquante, les requêtes de backend de Looker (Google Cloud Core) vers le point de terminaison du jeton du fournisseur d'identité expirent, car l'instance ne peut pas acheminer le trafic sortant vers l'Internet public via le Secure Web Proxy.

Solution

Pour résoudre ce problème, suivez ces étapes afin de réinitialiser la configuration de sortie contrôlée et forcer le système à recréer la route réseau manquante :

  1. Dans la console Google Cloud , accédez à la page Looker :

    Accéder à Looker

  2. Cliquez sur le nom de l'instance que vous souhaitez mettre à jour.

  3. Cliquez sur Modifier.

  4. Développez la section Connexions, puis accédez à la section Configurer les connexions sortantes.

  5. Enregistrez tous les noms de domaine complets (FQDN) existants listés dans la section FQDN global (tels que les points de terminaison de votre fournisseur d'identité).

  6. Supprimez tous les noms de domaine complets listés dans la section Nom de domaine complet global.

  7. Décochez la case Autoriser Looker à se connecter à des services externes pour désactiver la sortie contrôlée.

  8. Cliquez sur Enregistrer.

  9. Attendez que la mise à jour de l'instance soit terminée et que les modifications de configuration soient effacées.

  10. Cliquez à nouveau sur Modifier.

  11. Développez la section Connexions, puis cochez la case Autoriser Looker à se connecter à des services externes.

  12. Dans la section Nom de domaine complet global, ajoutez de nouveau les noms de domaine complets requis pour votre fournisseur d'identité et tout autre service externe.

  13. Cliquez sur Enregistrer.

La réinitialisation de la sortie contrôlée déclenche le processus de provisionnement automatisé pour recréer la route réseau looker-swp-route manquante. Une fois la route créée, les requêtes de backend sortantes vers le fournisseur d'identité peuvent être effectuées.

Erreur 504 : expiration du délai de la requête en amont

Lorsque vous effectuez des appels d'API, exécutez des requêtes de longue durée ou vous authentifiez auprès d'un service externe sur une instance Looker (Google Cloud Core), la requête peut échouer avec une erreur de délai d'attente HTTP 504.

Symptômes

Vous pouvez recevoir une erreur 504 Upstream Request Timeout ou 504 Gateway Timeout dans l'un des cas suivants :

  • Appels ou requêtes d'API entrants : les appels d'API aux points de terminaison Looker, tels que /result_format, ou les requêtes de longue durée dans l'interface utilisateur Looker échouent avec une erreur 504 après environ 30 secondes sur une instance qui est précédée d'un équilibreur de charge.
  • Authentification sortante ou connexions à des services externes : vous recevez une erreur 504 dans votre navigateur après être revenu de la page de connexion d'un fournisseur d'identité ou lorsque vous vous connectez à un service externe sur une instance avec sortie contrôlée activée.

Cause

Une erreur de délai d'attente 504 se produit généralement pour l'une des raisons suivantes :

  • Délai avant expiration du service de backend de l'équilibreur de charge pour les requêtes entrantes : lorsque votre instance Looker (Google Cloud Core) est accessible via un équilibreur de charge Cloud Load Balancing, le service de backend de l'équilibreur de charge dispose d'un délai avant expiration du service de backend de 30 secondes par défaut. Si le temps d'exécution combiné des requêtes de base de données et le temps de rendu de la charge utile Looker dépassent cette limite de délai avant expiration, l'équilibreur de charge ferme la connexion et renvoie une erreur HTTP 504.
  • Domaine sortant bloqué avec sortie contrôlée : l'instance Looker (Google Cloud Core) ne peut pas accéder à un domaine externe via une sortie contrôlée. Contrairement aux erreurs de route manquante, une erreur 504 lors des requêtes sortantes signifie généralement que le chemin réseau existe, mais qu'un domaine requis est manquant dans la liste d'autorisation FQDN global et est bloqué, ou que la requête expire au niveau de la passerelle.

Solution

En fonction de la cause de l'erreur, suivez les étapes décrites dans les sections suivantes pour résoudre le problème.

Résoudre les délais d'expiration de l'équilibreur de charge lors d'appels ou de requêtes d'API

Pour résoudre les erreurs 504 causées par le délai avant expiration du service de backend de l'équilibreur de charge, utilisez l'une des méthodes suivantes, ou les deux :

  • Augmentez le délai avant expiration du service de backend de l'équilibreur de charge :

    1. Dans la console Google Cloud , accédez à la page Équilibrage de charge :

      Accéder à la page Équilibrage de charge

    2. Cliquez sur Backends, puis sur le nom du service de backend associé à votre instance Looker (Google Cloud Core).

    3. Cliquez sur Modifier.

    4. Dans le champ Délai avant expiration, augmentez la valeur du délai avant expiration (par exemple, de 30 secondes à 300 secondes) pour tenir compte de vos requêtes et requêtes API les plus longues.

    5. Cliquez sur Enregistrer.

  • Utilisez un workflow d'API asynchrone : si vous appelez l'API Looker pour récupérer des données de requête et que vous ne pouvez pas modifier le délai d'expiration de l'équilibreur de charge, utilisez des points de terminaison asynchrones au lieu de requêtes synchrones. Appelez create_query_task pour démarrer la requête de manière asynchrone, puis interrogez query_task_results pour récupérer les résultats une fois la requête terminée.

Résoudre les délais d'expiration de la sortie contrôlée

Pour résoudre les erreurs 504 qui se produisent lorsque Looker (Google Cloud Core) ne parvient pas à se connecter à un service externe ou à un fournisseur d'identité avec la sortie contrôlée activée, procédez comme suit :

  1. Vérifiez les noms de domaine complets requis : dans la console Google Cloud , vérifiez que tous les domaines requis par votre service externe ou fournisseur d'identité sont ajoutés à la liste Nom de domaine complet global. Les flux d'authentification OIDC nécessitent souvent plusieurs points de terminaison (tels que les points de terminaison d'autorisation, de jeton et d'informations utilisateur) qui peuvent utiliser différents domaines.
  2. Capturez une trace réseau : si l'erreur persiste, capturez une trace réseau du navigateur (fichier HAR) tout en reproduisant le problème. Recherchez les codes d'état 504 ou les requêtes HTTP ayant échoué dans la trace pour identifier les domaines qui ont été contactés au cours du flux, mais qui ne figurent pas dans votre liste FQDN global.
  3. Réinitialiser la configuration : si les FQDN requis sont présents, mais que les requêtes continuent d'expirer, suivez les étapes de la section Résolution pour les échecs d'authentification OpenID Connect afin de réinitialiser la configuration de sortie contrôlée.

HttpClient:ConnectTimeoutError execution expired

Lorsque vous testez une connexion OpenID Connect ou d'autres connexions réseau externes dans le panneau d'administration de Looker, le test de connexion peut échouer en raison d'une erreur de délai d'attente.

Symptômes

Lorsque vous exécutez un test de connexion dans le panneau d'administration Looker (par exemple, sur la page Authentification OpenID Connect), Looker renvoie l'erreur suivante :

HttpClient:ConnectTimeoutError execution expired

Cause

Cette erreur indique que l'instance Looker (Google Cloud Core) ne dispose pas du chemin réseau nécessaire pour communiquer avec le service externe ou le fournisseur d'identité. Ce problème se produit généralement lorsque l'une des conditions suivantes est remplie :

  • Propagation de route manquante : Cloud Router utilise les paramètres par défaut et ne propage pas les routes du réseau VPC (telles que les routes annoncées personnalisées) à l'instance Looker (Google Cloud Core).
  • NEG Internet manquant : aucun groupe de points de terminaison du réseau (NEG) Internet n'est configuré dans votre réseau VPC pour acheminer le trafic vers le service externe.

Solution

Pour résoudre ce problème, procédez comme suit :

  1. Configurer la propagation des routes Cloud Router : vérifiez que Cloud Router est configuré pour propager les routes de réseau VPC nécessaires à votre instance Looker (Google Cloud Core) en configurant des routes annoncées personnalisées.
  2. Configurer un NEG Internet : configurez un NEG Internet dans votre réseau VPC pour permettre à l'instance Looker (Google Cloud Core) d'acheminer le trafic sortant vers le fournisseur ou le service d'identité externe.
  3. Vérifiez l'accès aux services privés : pour les instances qui utilisent l'accès aux services privés, assurez-vous que votre réseau VPC est correctement appairé aux services Google. Pour en savoir plus, consultez Accéder à des services externes à l'aide de l'accès aux services privés.

Problèmes de connexion Southbound Private Service Connect

Pour les instances Looker (Google Cloud Core) qui utilisent Private Service Connect pour les connexions sortantes aux backends de base de données ou aux services publiés, vous pouvez rencontrer des erreurs de connexion même lorsque l'état du point de terminaison est Accepted.

Voici quelques problèmes courants :

  • Erreurs de résolution de nom d'hôte : si Looker (Google Cloud Core) affiche une erreur Unknown host lors du test d'une connexion, vérifiez que le nom d'hôte configuré correspond à l'enregistrement DNS de votre réseau privé et que l'équilibreur de charge de backend est opérationnel.
  • Délai d'expiration de la connexion : si les connexions expirent, vérifiez vos règles de pare-feu VPC pour vous assurer que le trafic entrant est autorisé depuis le sous-réseau NAT Private Service Connect vers les backends de votre équilibreur de charge.
  • État "En attente" ou "Fermé" : si l'état du rattachement de service est Pending ou Closed, vérifiez que le projet consommateur figure dans la liste d'autorisation du rattachement de service et que les vérifications d'état TCP obligatoires sont configurées.

Pour obtenir des workflows de diagnostic détaillés et un arbre de décision, consultez Résoudre les problèmes de connexions Private Service Connect southbound.

Problèmes de connectivité et de route d'accès aux services privés

Pour les instances Looker (Google Cloud Core) qui utilisent l'accès aux services privés, la communication sortante vers les services externes nécessite une propagation des routes et une infrastructure réseau appropriées :

  • Propagation des routes : vérifiez que Cloud Router est configuré pour propager les routes de réseau VPC à l'instance Looker (Google Cloud Core), telles que les routes annoncées personnalisées.
  • Groupes de points de terminaison réseau Internet : si votre instance doit accéder à des points de terminaison externes via l'accès aux services privés, assurez-vous qu'un groupe de points de terminaison réseau Internet (NEG) est configuré dans votre réseau VPC.

Si ces routes ou groupes de points de terminaison sont manquants, les tests de connexion aux points de terminaison externes échouent et renvoient une erreur HttpClient:ConnectTimeoutError execution expired.

Pour en savoir plus, consultez Accéder à des services externes à l'aide de l'accès aux services privés.

Outils et journaux de diagnostic

Utilisez les outils et journaux suivants pour diagnostiquer les problèmes de réseau :

  • Cloud Logging : affichez les journaux au niveau de l'instance dans Cloud Logging pour identifier les échecs de connexion et les événements système. Pour en savoir plus, consultez Afficher les journaux d'instance.
  • Activité du système Looker : si vous pouvez vous connecter en tant qu'administrateur, consultez le tableau de bord Activité des utilisateurs dans l'activité du système. Ce tableau de bord affiche les échecs de connexion récents, la méthode d'authentification utilisée et les messages d'erreur. Pour en savoir plus, consultez Tableau de bord des activités de l'utilisateur.
  • Journaux de flux VPC : consultez les journaux de flux VPC pour déterminer si le trafic réseau de Looker (Google Cloud Core) atteint votre sous-réseau de destination ou s'il est bloqué par les règles de pare-feu.
  • Cloud Customer Care : si vous avez suivi la procédure de dépannage et que le problème persiste, contactez Cloud Customer Care pour obtenir de l'aide.