Auf dieser Seite werden die grundlegenden Konzepte von Identity-Aware Proxy (IAP) beschrieben, einem globalen Google Cloud-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 Hauptkonten (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. Wenn ein Nutzer versucht, auf eine mit IAP gesicherte Ressource zuzugreifen, führt IAP Authentifizierungs- und Autorisierungsprüfungen durch.





Authentifizierung
Anfragen an Ihre Google Cloud-Ressourcen erfolgen über App Engine, Cloud Load Balancing (externes und internes HTTP(S)-Load-Balancing). Der Code der Bereitstellungsinfrastruktur für diese Produkte prüft, ob IAP für die App oder den Back-End-Dienst aktiviert ist. Wenn IAP aktiviert ist, werden bestimmte Informationen über die geschützte Ressource an den IAP-Authentifizierungsserver gesendet. Dazu gehören u. a. die Google Cloud-Projektnummer, die Anfrage-URL sowie alle IAP-Anmeldedaten im Header oder in den Cookies der Anfrage.
Als Nächstes prüft IAP die Browseranmeldedaten des Nutzers. Wenn keine Anmeldedaten vorhanden sind, wird der Nutzer zum Anmeldevorgang für ein Google-Konto unter OAuth 2.0 weitergeleitet. Damit wird für künftige Anmeldungen ein Token in einem Browsercookie gespeichert. Wenn Sie Google-Konten für Ihre vorhandenen Nutzer erstellen müssen, können Sie Google Cloud Directory Sync für die Synchronisierung mit Ihrem Active-Directory- oder LDAP-Server verwenden.
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 nur vor einer ordnungsgemäßen Konfiguration vor einer anderen VM geschützt werden. Informieren Sie sich über Ihre Aufgaben zur Gewährleistung der Sicherheit.
Wenn Sie Cloud Run verwenden, können Nutzer, die auf die automatisch zugewiesene URL zugreifen können, die IAP-Authentifizierung umgehen. Steuerelemente für eingehenden Traffic können den Zugriff auf das Load-Balancing einschränken, allerdings nur, wenn der Konfigurationsvorgang korrekt ist. Weitere Informationen zu Ihren Pflichten, um die Sicherheit zu gewährleisten.
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 Console-Projekt, in dem sich die Ressource befindet, die Rolle Nutzer von IAP-gesicherten Web-Apps hat, ist er berechtigt, auf die Anwendung zuzugreifen. Verwenden Sie zum Verwalten der Rollenliste Nutzer von IAP-gesicherten Web-Apps den Bereich "IAP" in der Google Cloud Console.
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 OAuth 2.0-Anmeldedaten in den APIs und Diensten der Google Cloud Console ansehen und verwalten.
Ihre Verantwortung
IAP sichert die Authentifizierung und Autorisierung aller Anfragen an App Engine, Cloud Load Balancing (HTTPS) oder das interne HTTP-Load-Balancing. IAP ist nicht vor Aktivitäten in einem Projekt, z. B. einer anderen VM innerhalb des Projekts, geschützt.
Interne HTTP-Load-Balancer benötigen ein BeyondCorp Enterprise-Abo.
Zur Gewährleistung der Sicherheit müssen Sie folgende Vorsichtsmaßnahmen treffen:
- Konfigurieren Sie Ihre Firewall und den Load-Balancer zum Schutz vor Traffic, der nicht über die Bereitstellungsinfrastruktur eingeht.
- Wenn Sie Cloud Run verwenden, können Sie den Zugriff alternativ über die Einstellungen für eingehenden Traffic einschränken.
- Verwenden Sie signierte Header oder die Users API der App Engine-Standardumgebung.
Nächste Schritte
- Führen Sie eine der folgenden Aufgaben aus, um mit IAP zu beginnen:
- Führen Sie die App Engine-Kurzanleitung unter Zugriff mit Google Konten verwalten aus.
- Aktivieren Sie IAP für Compute Engine.
- Aktivieren Sie IAP für GKE.
- Aktivieren Sie IAP für lokale Anwendungen.
- Weitere Informationen:
- Authentifizierung bei Compute Engine
- Optionen für die Authentifizierung von App Engine-Nutzern
- OAuth 2.0 für den Zugriff auf Google APIs verwenden
- Authentifizierungsleitfaden für Google Cloud
- Load-Balancer einrichten
- Load-Balancer mit Cloud Run einrichten (vollständig verwaltet)
- Ingress für Cloud Run einschränken