Identity-Aware Proxy – Übersicht

Auf dieser Seite werden die grundlegenden Konzepte von Identity-Aware Proxy (IAP) beschrieben, einem globalen Dienst von Google Cloud .

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 Zugriffssteuerungsrichtlinien für Anwendungen und Ressourcen erzwingen möchten. IAP arbeitet mit signierten Headern oder der Users API der App Engine-Standardumgebung, um Ihre Anwendung zu schützen. Mit IAP können Sie einen gruppenbasierten Anwendungszugriff einrichten: Eine Ressource kann für Mitarbeiter zugänglich und für Auftragnehmer unzugänglich sein oder nur für eine bestimmte Abteilung zugänglich sein.

Funktionsweise von IAP

Wenn eine Anwendung oder Ressource durch IAP geschützt ist, kann nur über den Proxy von Hauptkonten (auch als Nutzer bezeichnet) darauf zugegriffen werden, die die richtige 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, führt IAP Authentifizierungs- und Autorisierungsprüfungen aus.

App Engine
Anfragepfad zu App Engine bei Verwendung von Cloud IAP
Cloud Run
Anfragepfad zu Cloud Run bei Verwendung von Cloud IAP
Compute Engine
Anfragepfad zu Compute Engine und Kubernetes Engine bei Verwendung von Cloud IAP
GKE
Anfragepfad zu Compute Engine und Kubernetes Engine bei Verwendung von Cloud IAP
Lokal
Anfragepfad zu einer lokalen Anwendung bei Verwendung von Cloud IAP

Authentifizierung

Anfragen an Ihre Google Cloud -Ressourcen werden über Cloud Run, App Engine und Cloud Load Balancing (externes und internes HTTP(S)-Load-Balancing) weitergeleitet. Mit dem Code der Bereitstellungsinfrastruktur für diese Produkte wird geprüft, ob IAP für den Anwendungs- oder Backend-Dienst aktiviert ist. Wenn IAP aktiviert ist, werden Informationen zur geschützten Ressource an den IAP-Authentifizierungsserver gesendet. Dazu gehören Informationen wie die Google Cloud Projektnummer, die Anfrage-URL und alle IAP-Anmeldedaten in den Anfrageheadern oder Cookies.

IAP prüft dann, ob der Nutzer angemeldet ist. Wenn der Nutzer nicht angemeldet ist, wird sein Browser an eine der folgenden von IAP unterstützten Anmeldemethoden weitergeleitet:

  • Google-Konto: Ihre Google Cloud Nutzer mit Google-Konten werden über den Anmeldevorgang für Google-Konten weitergeleitet, um auf Google Cloudzuzugreifen.
  • Workforce Identity-Föderation: Ihre Google Cloud -Nutzer bei einem externen Identitätsanbieter werden über die Anmeldung bei ihrem IdP weitergeleitet, um auf Google Cloudzuzugreifen.
  • Identity Platform: Ihre Kunden, die E-Mail-Adressen und Passwörter 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 Browser-Cookie 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. Compute Engine- und GKE-Firewallregeln können nicht vor dem Zugriff durch Code schützen, der auf derselben VM wie die IAP-gesicherte Anwendung ausgeführt wird. Firewallregeln können vor dem Zugriff von einer anderen VM schützen, aber nur, wenn sie richtig konfiguriert sind. Informieren Sie sich über Ihre Verantwortlichkeiten für die Sicherheit.

Wenn Sie Cloud Run verwenden, können Sie IAP so aktivieren:

  • Direkt in Ihren Cloud Run-Diensten. Dadurch kann IAP alle Pfade für eingehenden Traffic 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 mit einem einzigen globalen Load Balancer haben. In dieser Konfiguration ist die automatisch zugewiesene URL nicht durch IAP geschützt und kann möglicherweise direkt aufgerufen werden. Weitere Informationen zu Ihren Verantwortlichkeiten für die Sicherheit

Wenn ein Cloud Run-Dienst mit einem Load Balancer ausgeführt wird, aktivieren Sie IAP nicht sowohl für den Load Balancer als auch für den Cloud Run-Dienst.

Weitere Informationen zur Mitarbeiteridentitätsföderation IAP mit Mitarbeiteridentitätsföderation konfigurieren Wenn Sie Ihre externen Identitäten mit ihren eigenen Google-Konten synchronisieren möchten, können Sie alternativ Google Cloud Directory Sync verwenden, 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 die Rolle Nutzer von IAP-gesicherten Web-Apps für das Console-Projekt vonGoogle Cloud hat, in dem sich die Ressource befindet, ist er berechtigt, auf die Anwendung zuzugreifen. Verwenden Sie zum Verwalten der Rollenliste Nutzer von IAP-gesicherten Web-Apps den IAP-Bereich in der Google Cloud Console.

Wenn Sie IAP für eine Ressource aktivieren, werden automatisch eine OAuth 2.0-Client-ID und ein Secret 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 der Google Cloud Console unter „APIs und Dienste“ aufrufen und verwalten.

Kontextsensitiver Zugriff

Im Rahmen des Autorisierungsschritts können Sie den kontextsensitiven Zugriff verwenden, um sicheren Zugriff auf die folgenden Ressourcentypen zu gewähren:

Google Cloud -Konsole und APIs
  • Erste Schutzebene für den Infrastrukturzugriff 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.

  • Sie können robuste kontextsensitive Kontrollen implementieren, um den Zugriff auf bestimmte Administratoren zu beschränken.

Webanwendungen
  • Bietet Autorisierung und Authentifizierung für Webanwendungen, die inGoogle Cloud und anderen Clouds gehostet werden.

  • Bietet kontinuierliche Autorisierung, um unbefugten Zugriff und Datenverlust zu verhindern.

Ihre Verantwortlichkeit

IAP sichert die Authentifizierung und Autorisierung aller Anfragen an Cloud Run, App Engine, Cloud Load Balancing (HTTPS) und internes HTTP-Load-Balancing.

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 direkt auf die Backend-Ressourcen zugegriffen werden kann.

    • Wenn die Backend-Ressource eine VM ist, konfigurieren Sie Ihre Firewallregeln so, dass sie vor Traffic schützen, der nicht über den Load Balancer eingeht. IAP schützt nicht vor Aktivitäten innerhalb eines Projekts, z. B. einer anderen VM innerhalb des Projekts.

    • Wenn die Backend-Ressource ein Cloud Run-Dienst ist, können Sie die run.app-URL deaktivieren, damit der gesamte eingehende Traffic über den Load Balancer geleitet wird. Wenn Sie die run.app-URL aktiviert lassen, sollten Sie Steuerelemente für eingehenden Traffic verwenden, um Traffic von außerhalb Ihres Netzwerks zu blockieren.

  • Aktualisieren Sie Ihre Anwendung, um signierte Header oder die Users API der App Engine-Standardumgebung zu verwenden.

Nächste Schritte