Auf dieser Seite werden die grundlegenden Konzepte von Identity-Aware Proxy (IAP) erläutert, einem Google Cloud globalen Dienst.
Mit IAP können Sie eine zentrale Autorisierungsschicht für Anwendungen einrichten, auf die über HTTPS zugegriffen wird. Damit erhalten Sie ein Zugriffssteuerungsmodell auf Anwendungsebene und müssen keine Firewalls auf Netzwerkebene einsetzen.
Die IAP-Richtlinien gelten für die gesamte Organisation. Sie können Zugriffsrichtlinien zentral definieren und sie auf sämtliche Anwendungen sowie Ressourcen anwenden. Wenn Sie ein festes Team mit der Aufgabe betrauen, Richtlinien zu erstellen und durchzusetzen, schützen Sie Ihr Projekt vor falschen Definitionen oder fehlerhaften Umsetzungen von Richtlinien in Ihren Anwendungen.
Verwendung von IAP
Verwenden Sie IAP, wenn Sie für Anwendungen und Ressourcen verbindliche Richtlinien der Zugriffssteuerung festlegen möchten. IAP schützt Ihre Anwendung mit signierten Headern oder mit der Users API der App Engine-Standardumgebung. IAP bietet auch die Möglichkeit, einen gruppenbasierten Zugriff auf die Anwendung einzurichten. Eine Ressource kann dann z. B. für angestellte Mitarbeiter zugänglich und für Auftragnehmer unzugänglich oder nur für eine bestimmte Abteilung verfügbar sein.
Funktionsweise von IAP
Wenn eine Anwendung oder Ressource durch IAP geschützt wird, kann auf sie nur über den Proxy von Prinzipalen (auch Nutzer genannt) zugegriffen werden, die die entsprechende IAM-Rolle (Identity and Access Management) haben. Wenn Sie einem Nutzer über IAP Zugriff auf eine Anwendung oder Ressource gewähren, unterliegt dieser Nutzer den detaillierten Zugriffssteuerungen, die durch das verwendete Produkt implementiert werden. Dazu ist kein VPN erforderlich. Versucht ein Nutzer, auf eine mit IAP gesicherte Ressource zuzugreifen, werden von IAP Authentifizierungs- und Autorisierungsprüfungen ausgeführt.
Authentifizierung
Anfragen an Ihre Google Cloud Ressourcen erfolgen über Cloud Run, App Engine und Cloud Load Balancing (externes und internes HTTP(S) Load-Balancing). Mit dem Code der Bereitstellungsinfrastruktur für diese Produkte wird geprüft, ob IAP für die App oder den Backend-Dienst aktiviert ist. Wenn IAP aktiviert ist, werden bestimmte Informationen über die geschützte Ressource an den IAP-Authentifizierungsserver gesendet. Dazu gehören Informationen wie die Google Cloud Projektnummer, die Anfrage-URL sowie alle IAP-Anmeldedaten im Header oder in den Cookies der Anfrage.
IAP prüft dann, ob der Nutzer angemeldet ist. Wenn der Nutzer nicht angemeldet ist, wird sein Browser zu einer der folgenden Anmeldemethoden weitergeleitet, die von IAP unterstützt werden:
Google-Konto: Ihre Google Cloud Nutzer mit Google-Konten werden über den Google-Konto-Anmeldevorgang weitergeleitet, um Zugriff zu erhalten Google Cloud.
Workforce Identity-Föderation: Ihre Google Cloud Nutzer bei einem externen Identitäts anbieter werden über die Anmeldung bei ihrem IdP weitergeleitet, um Zugriff zu erhalten Google Cloud.
Identity Platform:Ihre Kunden, die E-Mail-Adresse und Passwort oder soziale Anmeldungen wie Facebook, Apple und Google (Gmail) verwenden, um auf Ihre Anwendung zuzugreifen.
Nach der Authentifizierung speichert der Browser des Nutzers ein Token in einem Browsercookie für zukünftige Anmeldungen.
Wenn die Anmeldedaten der Anfrage gültig sind, ruft der Authentifizierungsserver mithilfe dieser Anmeldedaten die Identität des Nutzers (E-Mail-Adresse und Nutzer-ID) ab. Anschließend prüft der Authentifizierungsserver mithilfe der Identität die IAM-Rolle des Nutzers und prüft, ob der Nutzer berechtigt ist, auf die Ressource zuzugreifen.
Wenn Sie Compute Engine oder Google Kubernetes Engine verwenden, können Nutzer, die Zugriff auf den Port für die Anwendungsbereitstellung der virtuellen Maschine (VM) haben, die IAP-Authentifizierung umgehen. Die Compute Engine- und GKE-Firewallregeln schützen nicht vor Zugriffen durch Code, der auf derselben VM wie die mit IAP gesicherte Anwendung ausgeführt wird. Firewallregeln können vor Zugriffen schützen, die von einer anderen VM ausgehen, jedoch nur, wenn sie ordnungsgemäß konfiguriert sind. Informieren Sie sich über Ihre Aufgaben zur Gewährleistung der Sicherheit.
Wenn Sie Cloud Run verwenden, können Sie IAP auf folgende Arten aktivieren:
- Direkt für Ihre Cloud Run-Dienste. Dadurch kann IAP alle eingehenden Pfade zu Cloud Run schützen, einschließlich der automatisch zugewiesenen URL und aller konfigurierten Load-Balancer-URLs. Diese Konfiguration ist nützlich, wenn Sie IAP für einen einzelnen Cloud Run-Dienst aktivieren möchten.
- Über einen Load-Balancer mit einem Cloud Run-Backend. Diese Konfiguration ist nützlich, wenn Sie mehrere Cloud Run-Dienste in verschiedenen Regionen hinter einem einzelnen globalen Load-Balancer haben. In dieser Konfiguration ist die automatisch zugewiesene URL nicht durch IAP geschützt und kann direkt zugänglich sein. Informieren Sie sich über Ihre Aufgaben zur Gewährleistung der Sicherheit.
Wenn sich ein Cloud Run-Dienst hinter einem Load-Balancer befindet, aktivieren Sie IAP nicht sowohl für den Load-Balancer als auch für den Cloud Run-Dienst.
Weitere Informationen zur Workforce Identity-Föderation. Informationen zum Konfigurieren von IAP mit der Workforce Identity-Föderation. Alternativ können Sie Ihre externen Identitäten mit ihren eigenen Google Konten synchronisieren. Verwenden Sie dazu Google Cloud Directory Sync , um die Synchronisierung mit Ihrem IdP durchzuführen.
Autorisierung
Nach der Authentifizierung ermittelt IAP anhand der entsprechenden IAM-Richtlinie, ob der Nutzer die Berechtigung hat, auf die angeforderte Ressource zuzugreifen. Wenn der Nutzer im Google Cloud Konsolenprojekt, in dem sich die Ressource befindet, die Rolle Nutzer von IAP-gesicherten Web-Apps hat, ist er berechtigt, auf die Anwendung zuzugreifen. Die Rollenliste Nutzer von IAP-gesicherten Web-Apps kann über das IAP-Fenster in der Google Cloud Konsole verwaltet werden.
Wenn Sie IAP für eine Ressource aktivieren, werden automatisch eine Client-ID und ein Clientschlüssel für OAuth 2.0 erstellt. Diese automatisch generierten Anmeldedaten für OAuth 2.0 dürfen Sie nicht löschen, da sonst IAP nicht ordnungsgemäß funktioniert. Sie können die OAuth 2.0-Anmeldedaten in der Google Cloud Konsole auf der Seite „APIs & Dienste“ aufrufen und verwalten.
Kontextsensitiver Zugriff
Im Rahmen des Autorisierungsschritts können Sie den kontextsensitiven Zugriff verwenden, um sicheren Zugriff auf die folgenden Arten von Ressourcen zu gewähren:
Google Cloud Konsole und APIs
- Erste Verteidigungsebene zum Schutz des Infrastrukturzugriffs auf Google Cloud.
- Erweiterter kontextsensitiver Google Cloud Zugriff für Nutzer.
Virtuelle Maschinen (VMs)
- Ermöglicht administrativen SSH-/RDP-Zugriff auf VMs in Google Cloud und in anderen Clouds.
- Ermöglicht die Implementierung robuster kontextsensitiver Steuerelemente, um den Zugriff auf bestimmte Administratoren zu beschränken.
Webanwendungen
- Bietet Autorisierung und Authentifizierung für Webanwendungen, die in Google Cloud und anderen Clouds gehostet werden.
- Bietet kontinuierliche Autorisierung, um unbefugten Zugriff und Datenverlust zu verhindern.
Ihre Verantwortlichkeit
Durch IAP werden alle Anfragen an Cloud Run, App Engine, Cloud Load Balancing (HTTPS) und internes HTTP-Load-Balancing authentifiziert und autorisiert.
Um die Sicherheit zu gewährleisten, müssen Sie folgende Vorsichtsmaßnahmen treffen:
- Wenn Sie IAP für einen Load-Balancer aktivieren, prüfen Sie, ob auf die Back-End-Ressourcen direkt zugegriffen werden kann.
- Wenn die Back-End-Ressource eine VM ist, konfigurieren Sie Ihre Firewallregeln, um sich vor Traffic zu schützen, der nicht über den Load-Balancer eingeht. IAP schützt nicht vor Aktivitäten innerhalb eines Projekts, z. B. einer anderen VM im Projekt.
- Wenn die Back-End-Ressource ein Cloud Run-Dienst ist, können Sie die run.app-URL deaktivieren, um sicherzustellen, dass der gesamte eingehende Traffic über den Load-Balancer erfolgt. Wenn Sie die run.app-URL aktiviert lassen, sollten Sie die Steuerung des eingehenden Traffics verwenden, um Traffic von außerhalb Ihres Netzwerks zu blockieren.
- Aktualisieren Sie Ihre App, um signierte Header zu verwenden, oder verwenden Sie die Users API der App Engine-Standardumgebung.
Nächste Schritte
- Führen Sie eine der folgenden Aufgaben aus, um mit IAP zu beginnen:
- Aktivieren Sie IAP direkt für Ihre Cloud Run Dienste oder für einen Load-Balancer mit einem Cloud Run-Backend.
- Führen Sie die App Engine-Kurzanleitung zum Verwalten des Zugriffs mit Google Konten aus.
- Aktivieren Sie IAP für Compute Engine.
- Aktivieren Sie IAP für GKE.
- Aktivieren Sie IAP für lokale Anwendungen.
- Weitere Informationen:
- Bei Compute Engine authentifizieren
- Optionen der Nutzerauthentifizierung in App Engine
- Mit OAuth 2.0 auf Google APIs zugreifen
- Google Cloud Anleitung zur Authentifizierung
- Load-Balancer einrichten
- Load-Balancer mit Cloud Run (vollständig verwaltet) einrichten
- Eingehenden Traffic für Cloud Run einschränken