Cet article contient des questions fréquentes à propos d'Identity-Aware Proxy (IAP).
Quelles applications puis-je sécuriser avec IAP ?
IAP peut être utilisé avec :
- les applications dans les environnements standard et flexible App Engine ;
- Les instances Compute Engine avec des services de backend d'équilibrage de charge HTTP(S)
- les conteneurs Google Kubernetes Engine.
- Applications Cloud Run avec des services de backend d'équilibrage de charge HTTP(S)
IAP n'est pas compatible avec Cloud CDN pour le moment.
Pourquoi y a-t-il un symbole "#" à la fin de mon URL après la connexion à mon application ?
Dans certains navigateurs et dans certaines conditions, un symbole #
peut s'ajouter à l'URL après l'authentification. Ceci est normal et ne pose aucun problème lors de la connexion.
Pourquoi mes requêtes échouent-elles et renvoient-elles un code d'état 405 Method Not Allowed (Méthode non autorisée) ?
Cela peut être dû au fait que les cookies ne sont pas joints à vos requêtes. Par défaut, les méthodes JavaScript ne joignent pas les cookies aux requêtes.
La manière d'inclure les cookies varie d'une méthode de requête à l'autre. Par exemple, pour les requêtes envoyées avec un objet XMLHttpRequest
, la propriété withCredentials
doit être définie sur true
, alors que pour les requêtes envoyées avec l'API Fetch, l'option credentials
doit être définie sur include
ou same-origin
.
Pour en savoir plus sur la gestion des erreurs qui ne se produisent qu'après un certain temps, consultez la page Gérer les sessions IAP.
Pourquoi ai-je reçu un code d'état HTTP 401 Unauthorized (Non autorisé) au lieu d'un code d'état HTTP 302 Redirect (Redirection) ?
IAP répond par un code d'état 302 Redirect
lorsqu'un client est configuré pour gérer les redirections. Pour indiquer que votre client peut gérer les redirections, assurez-vous que HTTP Accept="text/html,*/*"
figure dans l'en-tête des requêtes.
Pourquoi les requêtes POST ne déclenchent-elles pas de redirections ?
Pour que des redirections soient déclenchées, assurez-vous que les appels à IAP ne sont pas des requêtes POST. Les navigateurs n'effectuent pas de redirections en réponse aux requêtes POST. Pour cette raison, IAP répond par un code d'état 401 Unauthorized
au lieu d'un code d'état 302 Redirect
.
Si vous avez besoin d'IAP pour diffuser des requêtes POST, assurez-vous que le jeton d'ID ou les cookies valides sont transmis dans l'en-tête des requêtes.
Incluez le jeton d'ID dans un en-tête Authorization: Bearer
pour envoyer une requête authentifiée à la ressource sécurisée par IAP.
Pour obtenir des cookies valides, actualisez la session.
Puis-je utiliser IAP si j'ai désactivé l'API ?
Oui. L'accès aux ressources sécurisées avec IAP fonctionne même si l'API est désactivée, mais vous ne pouvez pas modifier les autorisations IAM.
Comment puis-je empêcher les utilisateurs disposant du rôle "Propriétaire" d'utiliser IAP pour TCP ?
Tout d'abord, évitez autant que possible d'utiliser le rôle "Propriétaire" (roles/owner
). Ce rôle accorde de larges autorisations sur l'ensemble de Google Cloud. L'attribution de rôles et d'autorisations plus précis peut accroître la sécurité de votre projet. Pour en savoir plus, consultez les bonnes pratiques de IAM.
Si vous ne parvenez pas à réduire l'utilisation du rôle "Propriétaire", vous pouvez bloquer IAP pour TCP à l'aide de règles de pare-feu.
Quel domaine utilise IAP pour TCP ?
IAP utilise les domaines suivants, qui appartiennent à Google:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
si accès basé sur un certificat est activé.
Si vous vous connectez par l'intermédiaire d'un serveur proxy ou d'un pare-feu, assurez-vous qu'ils permettent vers ces domaines et qu'ils ne bloquent pas l'utilisation des connexions WebSocket.
Si vous bloquez le trafic vers ces domaines, vous ne pourrez pas utiliser IAP pour TCP. Vous pouvez recevoir plusieurs messages d'erreur différents.
Si vous utilisez gcloud
, le message d'erreur peut être :
Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
Si vous utilisez SSH à partir du navigateur, le message d'erreur est :
Cloud Identity-Aware Proxy Failed
Aucun code n'est associé à cette erreur.
Pourquoi le message d'erreur Server Error
s'affiche-t-il ?
Si le message d'erreur suivant s'affiche, il est possible que votre pare-feu interdise les adresses IP 130.211.0.0/22
et 35.191.0.0/16
:
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
Si les adresses IP 130.211.0.0/22
et 35.191.0.0/16
de l'équilibreur de charge ne peuvent pas atteindre votre backend, il est possible que vos applications ne soient pas accessibles. Pour en savoir plus, consultez la page Configurer un équilibreur de charge HTTPS externe.
Si vous utilisez IAP pour TCP afin de vous connecter à une VM spécifique, celle-ci doit accepter les connexions provenant d'adresses de la plage 35.235.240.0/20
.
Pourquoi reçois-je des erreurs de serveur internes intermittentes ?
Un message d'erreur au format suivant indique un échec interne:
An internal server error occurred while authorizing your request. Error code X
Les erreurs internes associées aux codes 1
, 30
, 62
, 63
, 64
ou 703
indiquent
les défaillances de backend. Un faible taux de ces erreurs de backend indique souvent un problème
problème. Les clients doivent relancer la requête en utilisant un intervalle exponentiel entre les tentatives.
Comment traiter les erreurs de dépassement de quota (code d'erreur 429) ?
Le code d'erreur 429 indique que le trafic vers l'application est limité par IAP. IAP applique une limite de 360 000 requêtes par minute par projet. Si plusieurs applications sont hébergées dans un même projet, qui s'appliquent au nombre total de requêtes reçues par l'ensemble applications du projet.
Si vous rencontrez des erreurs de dépassement de quota dans IAP, cliquez ici quelques techniques que vous pouvez appliquer pour atténuer le problème. * Les tests de charge dans les instances de production sont déconseillés. Si l'augmentation de la charge est due à des tests de charge, nous vous recommandons de trouver d'autres des chemins d'accès réseau vers votre application n'invoquant pas IAP.
Si votre application reçoit un trafic élevé de service à service, nous vous recommandons vous devez implémenter un intervalle exponentiel entre les tentatives côté client pour gérer les erreurs 429 en douceur.
S'il existe plusieurs applications à trafic élevé dans le même projet, envisagez déplacer certaines applications vers un autre projet.
Si l'application est conçue en tant qu'API et non en tant qu'application Web, envisagez à l'aide de solutions de passerelle API comme Apigee.
Si le trafic est élevé en raison d'une croissance naturelle, contactez l'assistance Google Cloud avec une demande d'augmentation de la limite de quota.
Codes d'erreur
Le tableau suivant répertorie les codes d'erreur et les messages courants qui s'affichent lors de la configuration et de l'utilisation d'IAP.
Code d'erreur ou message | Description | Dépannage |
---|---|---|
Code d'erreur 7 | La valeur de votre code secret ou de votre ID client OAuth est vide. | Vérifiez que vos code secret et ID client sont correctement configurés pour votre application en consultant la page Identifiants. S'ils semblent être configurés correctement, utilisez la méthode GET pour afficher l'état actuel et la méthode PATCH pour les réinitialiser : • API Compute Engine : GET , PATCH • API App Engine : GET , PATCH |
Code d'erreur 9 | Une redirection OAuth n'a pas abouti. | Il s'agit d'une erreur interne qui a été enregistrée en vue d'être examinée. |
Code d'erreur 9 (avec des règles de réécriture de chemin) | Une redirection OAuth n'a pas abouti. | Les règles de réécriture de chemin de l'équilibreur de charge Google Cloud interfèrent avec la capacité d'IAP à mener à bien un flux OAuth. Si vous hébergez plusieurs backends derrière l'équilibreur de charge Google Cloud et que vous utilisez des règles de réécriture de chemin d'accès, assurez-vous que les deux backends utilisent les mêmes ID client OAuth pour IAP. Vous pouvez modifier un ID client OAuth pour un service de backend à l'aide de la commande gcloud compute backend-services update. |
Code d'erreur 11 | Votre ID client OAuth n'est pas configuré correctement. | Vérifiez que vos code secret et ID client sont correctement configurés pour votre application en consultant la page Identifiants. S'ils semblent être configurés correctement, utilisez la méthode GET pour afficher l'état actuel et la méthode PATCH pour les réinitialiser : • API Compute Engine : GET , PATCH • API App Engine : GET , PATCH |
Code d'erreur 13 | Votre jeton OpenID Connect (OIDC) n'est pas valide. | Assurez-vous que l'ID client configuré pour IAP n'est pas supprimé en consultant la page Identifiants. |
Code d'erreur 51 | Votre navigateur n'est pas compatible avec le regroupement de connexions. | Un navigateur à jour et à jour peut gérer les erreurs de regroupement de connexions. S'assurer que les utilisateurs finaux utilisent un navigateur à jour et à jour. Pour en savoir plus, consultez Restreindre l'accès aux ressources à des domaines spécifiques. |
Code d'erreur 52 | Le nom d'hôte fourni ne correspond pas au certificat SSL sur le serveur. | L'administrateur système devra peut-être mettre à jour le certificat SSL. Pour en savoir plus, consultez Restreindre l'accès aux ressources à des domaines spécifiques. |
Code d'erreur 53 | Le nom d'hôte ne correspond pas aux domaines autorisés par l'administrateur IAP. | L'administrateur doit mettre à jour la liste des domaines autorisés afin d'y inclure votre nom d'hôte. Pour en savoir plus, consultez Restreindre l'accès aux ressources à des domaines spécifiques. |
Code d'erreur 429 | Votre projet dépasse le seuil de requêtes par minute. | Les projets IAP sont limités à 360 000 requêtes par minute. Si vous rencontrez cette erreur, réduisez le volume des requêtes de votre projet. Vous pouvez contacter l'Assistance Google Cloud si vous avez d'autres questions. |
Code d'erreur 700, 701 | Le pool d'employés que vous avez configuré ne comporte aucun fournisseur (700) ou plusieurs fournisseurs (701). | IAP nécessite exactement un fournisseur dans un pool d'employés pour utiliser la fédération des identités des employés. Consultez la section Limites lors de l'utilisation de pools d'employés. |
Code d'erreur 705 | Votre ID client OAuth pour utiliser IAP avec la fédération des identités des employés est vide. | Vérifiez que vous avez bien suivi les étapes Créer un code secret et un ID client OAuth et Mettre à jour les paramètres IAP. |
Code d'erreur 4003 | Cela peut signifier que l'instance n'écoute pas le port auquel vous essayez de vous connecter ou que le pare-feu est fermé. Ces deux problèmes pourraient également entraîner l'échec du test de connectivité de démarrage à l'instance de VM. | Assurez-vous que le processus d'écoute de la VM est en cours d'exécution et qu'il écoute le port approprié. Vérifiez également que votre pare-feu Google Cloud est correctement configuré et ouvrez-le sur le port auquel vous vous connectez. |
Code d'erreur 4010 | Une connexion a été établie, mais fermée par l'instance de destination. Cela indique généralement un problème sur l'instance ou le programme écoutant sur le port de destination. | Réinitialisez l'instance. Si vous utilisez SSH pour vous connecter, recherchez d'éventuelles erreurs inattendues dans le journal auth.log . L'emplacement par défaut du fichier journal est /var/log/ . Si vous ne parvenez pas à accéder aux journaux via SSH, essayez d'utiliser la console série ou dissociez et réassociez le disque à une nouvelle VM pour afficher les journaux. Joignez les journaux lorsque vous contactez le service client. |
Code d'erreur 4033 | Soit vous ne disposez pas des autorisations nécessaires pour accéder à l'instance, soit l'instance n'existe pas, soit elle est arrêtée. | Assurez-vous que le rôle IAM "Utilisateur de tunnels sécurisés par IAP" est appliqué sur la ressource à laquelle vous vous connectez en consultant la page Identity-Aware Proxy. |
Code d'erreur 4047 | L'instance n'existe pas ou est arrêtée. | Assurez-vous que la VM est sous tension et qu'elle a terminé son démarrage. |
Si vous ne parvenez pas à résoudre votre problème, veuillez contacter le service client. Décrivez-lui l'erreur rencontrée et la réponse obtenue lors d'un appel GET
. Vous pouvez supprimer votre code secret client de la réponse.