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:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
, wenn der zertifikatbasierte Zugriff aktiviert ist.
Wenn Sie eine Verbindung über einen Proxyserver oder eine Firewall herstellen, achten Sie darauf, dass diese Traffic an diese Domains senden und dass diese die Nutzung von WebSocket-Verbindungen nicht blockieren.
Wenn Sie den Traffic zu diesen Domains blockieren, können Sie IAP für TCP. 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, blockiert Ihre Firewall möglicherweise die IP-Adressen 130.211.0.0/22
und 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.
Wenn die Load-Balancer-IP-Adressen 130.211.0.0/22
und 35.191.0.0/16
Ihr Backend nicht erreichen können, sind Ihre Anwendungen möglicherweise nicht zugänglich. 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
Back-End-Fehler. Eine niedrige Rate dieser Backend-Fehler weist häufig auf einen vorübergehenden
Problem. 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 Kontingente auf die Gesamtzahl der Anfragen angewendet, die von allen IAP-geschützten zu entwickeln.
Wenn Sie Fehlermeldungen zu überschrittenem Kontingent von IAP erhalten, können Sie mit den folgenden Methoden versuchen, das Problem zu beheben. * Belastungstests 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 einen hohen Dienst-zu-Dienst-Traffic empfängt, empfehlen wir Folgendes: Sie implementieren einen exponentiellen Backoff auf Clientseite, 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. mit einer Anfrage zur Erhöhung des Kontingentlimits.
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 Pfadumschreibungsregeln) | Eine OAuth-Weiterleitung wurde nicht abgeschlossen. | Die Pfadumschreibungsregeln für den Google Cloud-Load-Balancer beeinträchtigen die Fähigkeit von IAP, einen OAuth-Ablauf 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 die In-App-Nutzung verwenden. Sie können eine OAuth-Client-ID für einen Back-End-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, aktueller Browser kann Fehler beim Verbindungs-Pooling verarbeiten. Sorgen Sie dafür, dass Endnutzer einen aktuellen und 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 Domains überein, die vom IAP-Administrator zugelassen wurden. | 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 überschreitet den Grenzwert pro Minute für Anfragen. | 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 IAP ist genau ein Anbieter in einem Personalpool erforderlich, um die Mitarbeiteridentitätsföderation verwenden zu können. 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 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 den Zielport überwacht. | 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 mit SSH nicht auf die Logs zugreifen können, verwenden Sie die serielle Konsole oder Trennen Sie das Laufwerk und hängen Sie es an eine neue VM an, um die Logs anzusehen. Hängen Sie die Protokolle an, wenn Sie den Kundensupport kontaktieren. |
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 die Instanz wurde beendet. | Prüfen Sie, ob die VM eingeschaltet und gestartet wurde. |
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 ein
und der Antwort, die Sie von einem GET
-Aufruf an die API erhalten. Den Clientschlüssel müssen Sie aus der Antwort entfernen.