Häufig gestellte Fragen und Fehlerbehebung

Dieser Artikel enthält häufig gestellte Fragen zum Identity-Aware Proxy (IAP).

Welche Anwendungen kann ich mit IAP schützen?

IAP kann verwendet werden mit:

  • Anwendungen für die App Engine-Standardumgebung und die flexible App Engine-Umgebung
  • Compute Engine-Instanzen mit HTTP(S)-Back-End-Lastenausgleichsdiensten
  • Google Kubernetes Engine-Container
  • Cloud Run-Anwendungen mit HTTP(S)-Load-Balancing-Back-End-Diensten

Derzeit kann IAP nicht mit Cloud CDN verwendet werden.

Warum steht ein # am Ende meiner URL, nachdem ich mich bei meiner Anwendung angemeldet habe?

In einigen Browsern und unter bestimmten Bedingungen wird nach der Authentifizierung ein # an die URL angehängt. Das hat keine spezielle Bedeutung und verursacht beim Anmelden keine Probleme.

Warum schlagen meine Anfragen fehl und geben den Statuscode "405 Method Not Allowed" (Methode nicht zulässig) zurück?

Dies kann daran liegen, dass Ihren Anfragen keine Cookies angehängt werden. Bei JavaScript-Methoden werden Anfragen standardmäßig keine Cookies angehängt.

Die Vorgehensweise zum Hinzufügen von Cookies hängt von der Anfragemethode ab. Bei Anfragen, die mit einem XMLHttpRequest-Objekt gesendet werden, muss z. B. für das Attribut withCredentials der Wert true festgelegt sein und bei Anfragen, die mit der Fetch API gesendet werden, muss für die Option credentials der Wert include oder same-origin ausgewählt sein.

Informationen zur Behebung von Fehlern, die erst nach einer gewissen Zeit auftreten, finden Sie unter Cloud IAP-Sitzungen verwalten.

Warum erhalte ich anstelle des Statuscodes "HTTP 302 Redirect" (Weiterleitung) den Statuscode "HTTP 401 Unauthorized" (Nicht autorisiert)?

IAP antwortet mit dem Statuscode 302 Redirect, wenn ein Client für die Verarbeitung von Weiterleitungen konfiguriert ist. Damit Ihr Client Weiterleitungen verarbeiten kann, muss im Header der Anfrage unbedingt HTTP Accept="text/html,*/*" angegeben sein.

Warum lösen POST-Anfragen keine Weiterleitungen aus?

Stellen Sie für das Weiterleiten von Anfragen sicher, dass Aufrufe an IAP keine POST-Anfragen sind. Browser führen keine Weiterleitungen als Antwort auf POST-Anfragen aus. Daher antwortet IAP mit dem Statuscode 401 Unauthorized anstelle von 302 Redirect.

Damit IAP POST-Anfragen verarbeitet, müssen im Header der Anfrage entweder das ID-Token oder gültige Cookies übergeben werden.

Fügen Sie das ID-Token in einen Authorization: Bearer-Header ein, um eine authentifizierte Anfrage an die mit IAP gesicherte Ressource zu senden. Rufen Sie gültige Cookies durch Aktualisieren der Sitzung ab.

Kann ich IAP verwenden, wenn ich die API deaktiviert habe?

Ja, der Zugriff auf mit IAP gesicherte Ressourcen funktioniert bei deaktivierter API. Sie können jedoch keine Änderungen an IAM-Berechtigungen vornehmen.

Wie kann ich verhindern, dass Nutzer mit der Rolle "Inhaber" IAP für TCP verwenden?

Vermeiden Sie das Zuweisen der Rolle "Inhaber" (roles/owner) so weit wie möglich. Die Rolle "Inhaber" gewährt umfassende Berechtigungen in Google Cloud. Durch Zuweisen detaillierter Rollen und Berechtigungen können Sie die Sicherheit Ihres Projekts erhöhen. Weitere Informationen finden sich in den Best Practices für IAM.

Wenn sich die Nutzung der Rolle "Inhaber" nicht einschränken lässt, können Sie IAP für TCP mithilfe von Firewallregeln blockieren.

Welche Domain verwendet IAP für TCP?

Für IAP werden die folgenden Domains verwendet, die zu Google gehören:

Wenn Sie eine Verbindung über einen Proxyserver oder eine Firewall herstellen, muss der Traffic zu diesen Domains zugelassen und die Verwendung von WebSocket-Verbindungen nicht blockiert werden.

Wenn Sie den Traffic zu diesen Domains blockieren, können Sie IAP für TCP nicht verwenden. Möglicherweise erhalten Sie eine von mehreren Fehlermeldungen.

Wenn Sie gcloud verwenden, kann die Fehlermeldung folgendermaßen lauten

Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

Wenn Sie SSH über den Browser verwenden, wird die Fehlermeldung folgendermaßen lauten

Cloud Identity-Aware Proxy Failed

Es ist kein Fehlercode vorhanden.

Warum erhalte ich die Fehlermeldung Server Error?

Wenn Sie die folgende Fehlermeldung erhalten, werden die IP-Adressen 130.211.0.0/22 und 35.191.0.0/16 möglicherweise von Ihrer Firewall blockiert:

Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.

Wenn die Load-Balancer-IPs 130.211.0.0/22 und 35.191.0.0/16 Ihr Backend nicht erreichen können, ist möglicherweise kein Zugriff auf Ihre Anwendungen möglich. Weitere Informationen finden Sie unter Externen HTTPS-Load-Balancer einrichten.

Wenn Sie IAP für TCP verwenden, um eine Verbindung zu einer bestimmten VM herzustellen, muss die VM Verbindungen von Adressen im Bereich 35.235.240.0/20 akzeptieren.

Warum erhalte ich immer wieder interne Serverfehler?

Eine Fehlermeldung im folgenden Format weist auf einen internen Fehler hin:

An internal server error occurred while authorizing your request. Error code X

Interne Fehler mit den Fehlercodes 1, 30, 62, 63, 64 oder 703 weisen auf Backend-Fehler hin. Eine niedrige Rate dieser Backend-Fehler weist häufig auf ein vorübergehendes Problem hin. Clients sollten die Anfrage mit exponentiellem Backoff wiederholen.

Wie kann ich Fehler beheben, wenn das Kontingent überschritten wurde (Fehlercode 429)?

Der Fehlercode 429 gibt an, dass der Traffic für die Anwendung von IAP gedrosselt wird. Bei IAP gilt ein Limit von 360.000 Anfragen pro Minute und Projekt. Wenn in einem einzelnen Projekt mehrere Anwendungen gehostet werden, werden die Kontingente auf die Gesamtzahl der Anfragen angewendet, die von allen IAP-geschützten Anwendungen im Projekt empfangen werden.

Wenn Sie Fehlermeldungen zu überschrittenem Kontingent von IAP erhalten, können Sie mit den folgenden Methoden versuchen, das Problem zu beheben. * Lasttests in Produktionsinstanzen werden nicht empfohlen. Wenn die erhöhte Auslastung auf Load-Tests zurückzuführen ist, empfehlen wir Ihnen, alternative Netzwerkpfade zu Ihrer Anwendung zu finden, die IAP nicht aufrufen.

  • Wenn Ihre Anwendung viel Dienst-zu-Dienst-Traffic erhält, empfehlen wir, auf der Clientseite ein exponentielles Back-off zu implementieren, um 429-Fehler ordnungsgemäß zu behandeln.

  • Wenn es mehrere Anwendungen mit hohem Traffic im selben Projekt gibt, sollten Sie einige der Anwendungen in ein anderes Projekt verschieben.

  • Wenn die Anwendung als API statt als Webanwendung erstellt wird, sollten Sie API-Gateway-Lösungen wie Apigee verwenden.

  • Wenn der Grund für den hohen Traffic organisches Wachstum ist, wenden Sie sich an den Google Cloud-Support, um eine Erhöhung des Kontingentlimits zu beantragen.

Fehlercodes

In der folgenden Tabelle sind häufig auftretende Fehlercodes und Nachrichten aufgeführt, die beim Konfigurieren und Anwenden von IAP zurückgegeben werden.

Fehlercode oder Fehlermeldung Beschreibung Fehlerbehebung
Fehlercode 7 Ihre OAuth-Client-ID oder Secret-Werte sind leer. Prüfen Sie, ob Ihre Client-ID und Ihr Secret für Ihre Anwendung korrekt konfiguriert sind. Rufen Sie dazu die Seite "Anmeldedaten" auf. Wenn Ihre Client-ID und Ihr Secret offenbar korrekt konfiguriert sind, rufen Sie mit der Methode GET den aktuellen Status ab und setzen mit der Methode PATCH die Client-ID und das Secret zurück:
Compute Engine API: GET, PATCH
App Engine API: GET, PATCH
Fehlercode 9 Eine OAuth-Weiterleitung wurde nicht abgeschlossen. Dies ist ein interner Fehler, der zur Überprüfung in einem Log erfasst wurde.
Fehlercode 9 (mit Pfadüberschreibungsregeln) Eine OAuth-Weiterleitung wurde nicht abgeschlossen. Die Google Cloud Load Balancer-Pfadüberschreibungsregeln beeinträchtigen die Fähigkeit von IAP, einen OAuth-Vorgang erfolgreich abzuschließen. Wenn Sie mehrere Back-Ends hinter dem Google Cloud Load Balancer hosten und Pfadüberschreibungsregeln verwenden, müssen beide Back-Ends dieselben OAuth-Client-IDs für IAP-Nutzung verwenden. Sie können eine OAuth-Client-ID für einen Backend-Dienst mit dem Befehl gcloud compute backend-services update ändern.
Fehlercode 11 Ihre OAuth-Client-ID ist falsch konfiguriert. Prüfen Sie, ob Ihre Client-ID und Ihr Secret für Ihre Anwendung korrekt konfiguriert sind. Rufen Sie dazu die Seite "Anmeldedaten" auf. Wenn Ihre Client-ID und Ihr Secret offenbar korrekt konfiguriert sind, rufen Sie mit der Methode GET den aktuellen Status ab und setzen mit der Methode PATCH die Client-ID und das Secret zurück:
Compute Engine API: GET, PATCH
App Engine API: GET, PATCH
Fehlercode 13 Ihr OIDC-Token (OpenID Connect) ist ungültig. Prüfen Sie, ob die für IAP konfigurierte Client-ID gelöscht wurde. Rufen Sie dazu die Seite "Anmeldedaten" auf.
Fehlercode 51 Ihr Browser unterstützt kein Verbindungs-Pooling. Ein aktueller Browser kann Verbindungspoolfehler verarbeiten. Achten Sie darauf, dass die Endnutzer einen aktuellen Browser verwenden. Weitere Informationen finden Sie unter Ressourcenzugriff auf bestimmte Domains beschränken.
Fehlercode 52 Der angegebene Hostname stimmt nicht mit dem SSL-Zertifikat auf dem Server überein. Der Systemadministrator muss möglicherweise das SSL-Zertifikat aktualisieren. Weitere Informationen finden Sie unter Ressourcenzugriff auf bestimmte Domains beschränken.
Fehlercode 53 Der Hostname stimmt nicht mit den vom IAP-Administrator zulässigen Domains überein. Der Administrator muss die Liste der zulässigen Domains aktualisieren und Ihren Hostnamen hinzufügen. Weitere Informationen finden Sie unter Ressourcenzugriff auf bestimmte Domains beschränken.
Fehlercode 429 Ihr Projekt hat den Minutengrenzwert für Anfragen überschritten. IAP-Projekte sind auf maximal 360.000 Anfragen pro Minute beschränkt. Wenn dieser Fehler auftritt, reduzieren Sie die Anzahl der Anfragen für Ihr Projekt. Sie können sich an den Google Cloud-Support wenden, wenn Sie weitere Fragen haben.
Fehlercode 700, 701 Für Ihren konfigurierten Personalpool ist kein Anbieter (700) oder mehr als ein Anbieter (701) angegeben. Für die Verwendung der Mitarbeiteridentitätsföderation ist in IAP genau ein Anbieter in einem Mitarbeiterpool erforderlich. Weitere Informationen finden Sie unter Einschränkungen bei der Arbeit mit Workforce-Ressourcenpools.
Fehlercode 705 Ihre OAuth-Client-ID für die Verwendung von IAP mit der Mitarbeiteridentitätsföderation ist leer. Prüfen Sie, ob die Schritte OAuth-Client-ID und Secret erstellen und IAP-Einstellungen aktualisieren ausgeführt wurden.
Fehlercode 708 Ihr Personalpool existiert entweder nicht oder der Name hat nicht das richtige Format. Der Mitarbeiteridentitätspool muss vorhanden sein und der Name muss folgendermaßen formatiert sein: locations/global/workforcePools/WORKFORCE_POOL_ID.
Fehlercode 4003 Dies kann bedeuten, dass die Instanz nicht den Port überwacht, zu dem Sie eine Verbindung herstellen möchten, oder dass die Firewall geschlossen ist. Eines dieser Probleme könnte auch dazu führen, dass der anfängliche Konnektivitätstest zur VM-Instanz fehlschlägt. Prüfen Sie, ob der Überwachungsvorgang auf der VM ausgeführt wird und ob der richtige Port überwacht wird. Prüfen Sie außerdem, ob Ihre Google Cloud-Firewall ordnungsgemäß konfiguriert ist, und öffnen Sie die Firewall auf dem Port, zu dem Sie eine Verbindung herstellen.
Fehlercode 4010 Eine Verbindung wurde hergestellt, aber von der Zielinstanz geschlossen. Dies weist in der Regel auf ein Problem mit der Instanz oder dem Programm hin, das auf dem Zielport wartet. Setzen Sie die Instanz zurück. Wenn Sie SSH für die Verbindung verwenden, prüfen Sie das auth.log-Protokoll auf unerwartete Fehler. Der Standardspeicherort für die Protokolldatei ist /var/log/. Wenn Sie nicht über SSH auf die Protokolle zugreifen können, verwenden Sie die serielle Konsole oder trennen Sie das Laufwerk und hängen Sie es wieder an eine neue VM an, um die Protokolle aufzurufen. Hängen Sie die Protokolle an, wenn Sie sich an den Kundensupport wenden.
Fehlercode 4033 Entweder haben Sie keine Zugriffsberechtigung für die Instanz oder die Instanz ist nicht vorhanden oder wurde beendet. Prüfen Sie, ob die IAM-Rolle "Nutzer IAP-gesicherter Tunnel" auf die Ressource angewendet wurde, zu der Sie eine Verbindung herstellen. Rufen Sie dazu die Seite "Identity-Aware Proxy" auf.
Fehlercode 4047 Entweder ist die Instanz nicht vorhanden oder wurde beendet. Die VM muss eingeschaltet und der Startvorgang abgeschlossen sein.

Wenn Sie das Problem nicht beheben können oder der Fehler auf dieser Seite nicht aufgeführt ist, wenden Sie sich an den Cloud Customer Care. Geben Sie eine Beschreibung des Fehlers und die Antwort an, die Sie von einem GET-Aufruf an die API erhalten. Den Clientschlüssel müssen Sie aus der Antwort entfernen.