IAP für lokale Anwendungen aktivieren

In diesem Leitfaden wird erläutert, wie Sie eine HTTP-basierte lokale Anwendung außerhalb von Google Cloud mit Identity-Aware Proxy (IAP) sichern und dafür einen IAP-Connector bereitstellen.

Weitere Informationen zur Sicherung lokaler Anwendungen und Ressourcen durch IAP finden Sie unter Übersicht über Cloud IAP für lokale Anwendungen.

Vorbereitung

Für den Start ist Folgendes erforderlich:

  • Das Google Cloud SDK muss installiert sein.
  • Eine HTTP-basierte lokale Anwendung, auf die über einen DNS-Hostnamen zugegriffen werden kann und die HTTPS-Traffic akzeptiert. Die Anwendung muss außerdem eine eigene IAP-Instanz haben.
  • Wenn Ihre Anwendung nicht öffentlich zugänglich ist, stellen Sie über Cloud Interconnect eine Verbindung zwischen Google Cloud und Ihrer lokalen Anwendung her.
  • Ein Cloud Identity-Mitglied hat Ihrem Google Cloud-Projekt die Rolle Inhaber gewährt.
  • Google Cloud-Projekt mit aktivierter Abrechnungsfunktion.
  • Der DNS-Hostname, der als Eingangspunkt für den Traffic zu Google Cloud verwendet wird, z. B. www.hr-domain.com.
  • Der DNS-Hostname Ihrer lokalen Anwendung, z. B. hr-internal.domain.com.
  • Ein SSL- oder TLS-Zertifikat für den DNS-Hostnamen, der als Eingangspunkt für den Traffic zu Google Cloud verwendet wird. Es kann auch ein vorhandenes selbstverwaltetes oder von Google verwaltetes Zertifikat verwendet werden. Wenn Sie kein Zertifikat haben, erstellen Sie ein Zertifikat mit Let's Encrypt.

Erforderliche APIs aktivieren

Zum Konfigurieren eines IAP-Connectors müssen Sie die folgenden APIs aktivieren:

  1. Aktivieren Sie die Compute Engine API.

    Compute Engine API aktivieren

  2. Aktivieren Sie die Google Kubernetes Engine API.

    Google Kubernetes Engine API aktivieren

  3. Aktivieren Sie die Cloud Deployment Manager API V2.

    Cloud Deployment Manager API V2 aktivieren

IAP-Connector-Bereitstellung erstellen

Ein IAP-Connector besteht aus einer Deployment Manager-Vorlage. Bei der Bereitstellung generiert die Vorlage Ressourcen und Weiterleitungsregeln, die für die Weiterleitung von Anfragen mit IAP-Authentifizierung und Autorisierung an Ihre lokale Anwendung erforderlich sind. In den folgenden Abschnitten werden die Konfiguration und Bereitstellung eines IAP-Connectors erläutert.

Berechtigungen festlegen

Zum Bereitstellen eines IAP-Connectors benötigt das Google APIs-Dienst-Agent-Konto Ihres Google Cloud-Projekts die Rolle Kubernetes Engine-Administrator. Mit diesem Dienstkonto kann Deployment Manager einen Google Kubernetes Engine-Cluster (GKE) und alle darin ausgeführten Ressourcen erstellen.

So gewähren Sie die Rolle Kubernetes Engine-Administrator für das Google APIs-Dienst-Agent-Konto:

  1. Rufen Sie die IAM-Seite auf.
    Zur Seite "IAM"
  2. Bearbeiten Sie die Berechtigungen des Mitglieds PROJECT_NUMBER@cloudservices.gserviceaccount.com durch Klicken auf Mitglied bearbeiten .
  3. Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie aus der Drop-down-Liste Rolle den Eintrag Kubernetes > Kubernetes Engine-Administrator aus.
  4. Klicken Sie auf Speichern.

Das Google APIs-Dienst-Agent-Konto verfügt in Ihrem Projekt jetzt über die Rollen Bearbeiter und Kubernetes Engine-Administrator.

SSL-Zertifikatsressource erstellen

Zum Konfigurieren des HTTP(S)-Load-Balancer-Proxys des Cloud IAP-Connectors benötigen Sie eine neue SSL-Zertifikatsressource.

So erstellen Sie über das gcloud-Befehlszeilentool eine SSL-Zertifikatsressource mit Ihrem SSL- oder TLS-Zertifikat und Ihrem privaten Schlüssel:

  1. Erstellen Sie mit compute ssl-certificates create eine SSL-Zertifikatsressource.

    gcloud compute ssl-certificates create CERTIFICATE_NAME --private-key=PRIVATE_KEY_FILE.pem
    --certificate=CERTIFICATE_FILE.pem
    
  2. Bestätigen Sie optional, dass Ihre neue SSL-Zertifikatsressource verfügbar ist.

    1. Rufen Sie die Seite Load-Balancing auf.
      Zur Seite "Load-Balancing"
    2. Klicken Sie unterhalb der Liste mit den Load-Balancer auf Erweitert.
    3. Klicken Sie auf Zertifikate.

IAP-Connector herunterladen und konfigurieren

Damit Ihre Bereitstellungsanforderungen erfüllt werden, muss die konfigurierbare Deployment Manager-Vorlage des Cloud IAP-Connectors aktualisiert werden. So laden Sie die Vorlage herunter und konfigurieren sie:

  1. Laden Sie die Deployment Manager-Vorlage für den IAP-Connector herunter und klonen Sie dafür das IAP-Connector-GitHub-Repository.

  2. Öffnen Sie den Ordner des geklonten Repositorys und aktualisieren Sie die Pflichtfelder in der Datei iap-connector.yaml. Informationen zu Routingregeln finden Sie unter Übersicht über Cloud IAP für lokale Anwendungen.

         resources:
         - name: iap-connector
           type: iap-connector.py
           properties:
             zone: ZONE
             serviceAccountName: PROJECT_NUMBER@cloudservices.gserviceaccount.com
             routing:
             - name: BACKEND_SERVICE_NAME
               mapping:
               - name: host
                 source: SOURCE
                 destination: DESTINATION_URL
             tls:
             - CERTIFICATE_NAME
    
    Pflichtfelder:

    • Zone: Die Zone, in der der IAP-Connector bereitgestellt wird, z. B. us-central1-a.
    • serviceAccountName: Der Name des Google APIs-Dienst-Agent-Kontos, dem die Rolle Kubernetes Engine-Administrator zugewiesen wurde.
    • routing.mapping.source: Die URL der Anfragen, die an Google Cloud gesendet werden. Über diese URL wird der Traffic in die Umgebung geleitet.
    • routing.mapping.destination: Die URL für die lokale Anwendung, an die IAP den Traffic weiterleitet, nachdem ein Nutzer autorisiert und authentifiziert wurde. IAP leitet Traffic mithilfe von TLS an diese URL weiter. Die dort gehostete Anwendung ist für die Bereitstellung eines HTTPS-Endpunkts verpflichtet.
    • tls: Der Name der SSL-Zertifikatsressource.
    • routing.name: Der Name des neuen Back-End-Dienstes hinter dem HTTP(S)-Load-Balancer.

    Optionale Felder:

    • initialNodeCount: Anfängliche Anzahl der im Cluster gewünschten Knoten. Standardmäßig ist die anfängliche Knotenanzahl 3.
    • imageVersion: Die Imageversion von Ambassador, die ausgeführt werden soll. Standardmäßig wird die Imageversion 0.39.0 verwendet.
    • replicas: Die ursprüngliche Anzahl der Replikate für die Ambassador-Bereitstellung. Die Anzahl der Replikate beträgt standardmäßig 3.

    Die IAP-Connector-Spezifikation finden Sie in der Datei iap-connector.py.schema.

  3. Speichern Sie die aktualisierte Datei iap-connector.yaml.

IAP-Connector bereitstellen

  1. Stellen Sie den IAP-Connector und seinen Google Kubernetes Engine-Cluster durch Ausführen des folgenden gcloud-Befehls bereit:

    gcloud deployment-manager deployments create NAME_OF_DEPLOYMENT --config=iap-connector.yaml
    
  2. Optional können Sie die Bereitstellung über die Google Cloud Console prüfen:

    1. Rufen Sie die Deployment Manager-Seite auf.
      Zur Deployment Manager-Seite
    2. Rufen Sie den Status der Bereitstellung auf. Wählen Sie dafür den Namen der Bereitstellung aus. Wenn Sie Ihren IAP-Connector erst kürzlich bereitgestellt haben, kann es einige Minuten dauern, bis die Bereitstellung abgeschlossen ist und der Status angezeigt wird.
  3. Optional können Sie den Status Ihres Google Kubernetes Engine-Clusters auf der Kubernetes-Cluster-Seite einsehen.
    Zur Seite "Kubernetes-Cluster"

  4. Mit der Bereitstellung wird ein HTTP(S)-Load-Balancer von Cloud Load Balancing erstellt. Verknüpfen Sie Ihre Quelldomain mit der öffentlichen IPv4-Adresse des Load-Balancers. Aktualisieren Sie dazu die DNS-Ressourceneinträge in Ihrer Domainverwaltung.

    So erhalten Sie die öffentliche IPv4-Adresse:

    1. Rufen Sie die Seite Load-Balancing auf.
      Zur Seite "Load-Balancing"
    2. Klicken Sie unter Name auf die erstellte Load-Balancer-Ressource.

      Die IPv4-Adresse befindet sich unter Front-End und ist mit dem Zertifikatsnamen verknüpft.

Der Webanfragetraffic an Ihre Anwendung wird jetzt vom IAP-Connector an Ihre lokale Anwendung weitergeleitet.

OAuth-Zustimmungsbildschirm konfigurieren

Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Projekts nicht konfiguriert haben, müssen Sie dies nachholen. Für den OAuth-Zustimmungsbildschirm sind eine E-Mail-Adresse und ein Produktname erforderlich.

  1. Rufen Sie den OAuth-Zustimmungsbildschirm auf.
    Zustimmungsbildschirm konfigurieren
  2. Wählen Sie unter Support-E-Mail-Adresse die E-Mail-Adresse aus, die als öffentlicher Kontakt angezeigt werden soll. Dies muss Ihre E-Mail-Adresse oder die einer Google-Gruppe sein, deren Inhaber Sie sind.
  3. Geben Sie unter Name der Anwendung den Namen der Anwendung ein, der angezeigt werden soll.
  4. Fügen Sie nach Belieben weitere Details hinzu.
  5. Klicken Sie auf Speichern.

Zum Ändern von Informationen im OAuth-Zustimmungsbildschirm wie Produktname oder E-Mail-Adresse müssen Sie die vorherigen Schritte zur Konfiguration des Zustimmungsbildschirms wiederholen.

IAP-Zugriff einrichten

  1. Rufen Sie die Seite Identity-Aware Proxy auf.
    Zur Seite "Identity-Aware Proxy"
  2. Wählen Sie das Projekt aus, das Sie mit IAP sichern möchten.
  3. Aktivieren Sie das Kästchen neben der Ressource, die neue Mitglieder erhalten soll.
  4. Klicken Sie auf der rechten Seite auf Mitglied hinzufügen.
  5. Fügen Sie im daraufhin angezeigten Dialogfeld Mitglieder hinzufügen die E-Mail-Adressen von Nutzergruppen oder einzelnen Nutzern hinzu, denen Sie für das Projekt die Rolle Nutzer von IAP-gesicherten Web-Apps zuweisen möchten.

    Folgende Kontoarten sind als Mitglieder zulässig:

    • Google-Konto: nutzer@gmail.com
    • Google Group: admins@googlegroups.com
    • Dienstkonto: server@example.gserviceaccount.com
    • Google Workspace-Domain: example.com

    Fügen Sie unbedingt ein Google-Konto hinzu, auf das Sie zugreifen können.

  6. Wählen Sie in der Drop-down-Liste Rollen den Eintrag Cloud IAP > Nutzer von IAP-gesicherten Web-Apps aus.
  7. Klicken Sie auf Speichern.

IAP aktivieren

  1. Suchen Sie auf der Seite Identity-Aware Proxy unter HTTPS-Ressourcen nach dem Namen der Bereitstellung des IAP-Connectors.
  2. Klicken Sie im angezeigten Fenster IAP aktivieren auf Aktivieren, um zu bestätigen, dass die lokale Anwendung durch IAP gesichert werden soll. Nachdem Sie IAP aktiviert haben, sind für alle Verbindungen zu Ihrem Load-Balancer Anmeldedaten erforderlich. Zugriff erhalten nur Konten mit der Rolle Nutzer von IAP-gesicherten Web-Apps für dieses Projekt.
  3. Prüfen Sie, ob IAP aktiviert ist. Rufen Sie dazu die interne URL Ihrer lokalen Anwendung auf. IAP ist aktiviert, wenn eine Authentifizierungaufforderung angezeigt wird.

IAP authentifiziert und autorisiert nun den gesamten eingehenden Traffic Ihrer lokalen Anwendung.

Ausgehenden Traffic sichern

Ein IAP-Connector leitet nach der Bereitstellung Anfragen an das lokale Back-End weiter. Da die IAM-Zugriffsrichtlinie am IAP-Connector erzwungen werden, müssen Sie darauf achten, dass alle Anfragen an Ihr Back-End von IAP authentifiziert und autorisiert wurden.

Um festzustellen, ob der ausgehende Traffic über den IAP-Connector geleitet wurde, prüfen Sie die Anfragen für einen IAP-signierten Header. Von IAP authentifizierte und autorisierte Anfragen haben einen IAP-signierten angehängten JWT-Header.

IAP-Connector-Bereitstellung aktualisieren

Die Routingregeln des IAP-Connectors können mithilfe der im Folgenden aufgeführten Schritte aktualisiert und in den bereitgestellten GKE-Cluster übertragen werden. Weitere Informationen finden Sie unter Bereitstellung aktualisieren.

  1. Aktualisieren Sie Ihre Datei iap-connector.yaml mit neuen Routingparametern.
  2. Führen Sie den folgenden gcloud-Befehl aus:

    gcloud deployment-manager deployments update NAME_OF_DEPLOYMENT
    

Bereitstellung eines IAP-Connectors löschen

Wenn Sie die Bereitstellung Ihres IAP-Connectors löschen, wird IAP deaktiviert und die Anwendung hat kein Zugriffserkennungssystem mehr. Alle von der Bereitstellung erstellten Ressourcen werden entfernt, einschließlich der Routingregeln.

So löschen Sie die Bereitstellung Ihres IAP-Connectors:

  1. Rufen Sie die Deployment Manager-Seite auf.
    Zur Deployment Manager-Seite
  2. Klicken Sie in der Liste der Bereitstellungen auf das Kästchen neben Ihrer IAP-Bereitstellung.
  3. Klicken Sie oben auf der Seite auf Löschen.

Wenn Sie die gelöschte Bereitstellung Ihres IAP-Connectors neu erstellen müssen, können Sie Ihre ursprüngliche Konfigurationsdatei verwenden. Eine wiederhergestellte Bereitstellung gilt als neue Bereitstellung mit neuen Ressourcen.