IAP für Compute Engine einrichten

In dieser Anleitung wird beschrieben, wie Sie eine Compute Engine-Instanz mit Identity-Aware Proxy (IAP) einrichten. Wenn Sie Ihre Compute Engine-Instanz bereits eingerichtet haben und IAP nur aktivieren müssen, finden Sie entsprechende Informationen unter IAP für Compute Engine aktivieren.

Ziele

In dieser Anleitung erfahren Sie mehr über die folgenden Themen:

  • Compute Engine-Instanzvorlage und verwaltete Instanzgruppe erstellen
  • Domainname und Zertifikat abrufen
  • HTTPS-Load-Balancer mit einem Zertifikat erstellen.
  • IAP aktivieren
  • IAP auf Funktionsfähigkeit testen

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloudverwendet, darunter:

  • Compute Engine
    • 4 virtuelle Maschinen (VMs)
  • Netzwerk
    • Global Weiterleitungsregel für Load Balancer
    • Eingehender Traffic

Eine Kostenschätzung basierend auf der voraussichtlichen Nutzung finden Sie in diesem Preisrechner.

Neuen Cloud Platform-Nutzern steht gegebenenfalls eine kostenlose Testversion zur Verfügung.

Hinweis

Bevor Sie mit dieser Anleitung beginnen, benötigen Sie Folgendes:

  1. Wählen Sie ein Google Cloud -Projekt aus oder erstellen Sie eines.
    ZUR SEITE „PROJEKTE“

  2. Aktivieren Sie die Abrechnung für Ihr Projekt. Erfahren Sie mehr darüber, wie Sie die Abrechnungseinstellungen eines Projekts ändern können.

Schritt 1: Compute Engine-Vorlage erstellen

Rufen Sie in der Google Cloud Console die Seite Compute Engine > Instanzvorlage erstellen auf und wählen Sie das Projekt aus, in dem Sie eine Vorlage erstellen möchten.

ZUR SEITE "INSTANZVORLAGE ERSTELLEN"

Übernehmen Sie die Standardwerte mit Ausnahme der folgenden:

  • Maschinentyp:
    • micro (f1-micro)
  • Zugriffsbereiche:
    • Zugriff für jede API festlegen
    • Compute Engine: Schreibgeschützt
  • Firewall:
    • HTTP-Traffic zulassen
  • Kopieren Sie im Abschnitt Verwaltung unter Automatisierung > Startskript das folgende Skript und fügen Sie es ein:
    # Copyright 2021 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    apt-get -y update
    apt-get -y install git
    apt-get -y install virtualenv
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples
    cd python-docs-samples/iap
    virtualenv venv -p python3
    source venv/bin/activate
    pip install -r requirements.txt
    cat example_gce_backend.py |
      sed -e "s/YOUR_BACKEND_SERVICE_ID/$(gcloud compute backend-services describe my-backend-service --global --format="value(id)")/g" |
      sed -e "s/YOUR_PROJECT_ID/$(gcloud config get-value account | tr -cd "[0-9]")/g" > real_backend.py
    gunicorn real_backend:app -b 0.0.0.0:80
    

Wenn Sie alle Werte aktualisiert haben, klicken Sie auf Erstellen, um die Vorlage zu erstellen.

Schritt 2: Verwaltete Instanzgruppe erstellen

Rufen Sie in der Google Cloud Console die Seite Compute Engine > Neue Instanzgruppe erstellen auf und wählen Sie das Projekt aus, in dem Sie eine verwaltete Instanzgruppe erstellen möchten.

ZUR SEITE "INSTANZGRUPPE ERSTELLEN"

Übernehmen Sie die Standardwerte mit Ausnahme der folgenden:

  • Name: my-managed-instance-group
  • Ort: Multi-Zone
  • Instanzvorlage: Wählen Sie die Instanzvorlage aus, die Sie in Schritt 1 erstellt haben.
  • Anzahl der Instanzen: Damit Sie die Anzahl der Instanzen ändern können, müssen Sie zuerst das Autoscaling deaktivieren.
  • Autoscaling-Modus: Kein Autoscaling
  • Systemdiagnose: Wählen Sie Systemdiagnose erstellen aus und geben Sie folgende Werte ein:

    • Name: my-health-check
    • Protokoll: HTTP

    Verwenden Sie die neue Systemdiagnose und klicken Sie dafür auf Speichern und fortfahren.

Wenn Sie alle Werte aktualisiert haben, klicken Sie auf Erstellen, um die verwaltete Instanzgruppe zu erstellen.

Schritt 3: Domainname und Zertifikat abrufen

Wenn Sie den Load Balancer mit HTTPS-Traffic verwenden möchten, benötigen Sie einen Domainnamen und ein signiertes Zertifikat. Sie können eine Domain bei Cloud Domains registrieren oder den Domain-Registrator Ihrer Wahl verwenden. Registrieren Sie Ihre Domain, bevor Sie fortfahren.

Zertifikat einrichten

Erstellen Sie ein Zertifikat, mit dem Ihre Website für Ihre Nutzer identifiziert wird. Informationen zum Erstellen eines Zertifikats finden Sie unter Von Google verwaltete SSL-Zertifikate verwenden.

Die Zertifizierungsstelle muss bestätigen, dass Sie Inhaber des von Ihnen registrierten Domainnamens sind. In den folgenden Schritten erstellen Sie eine VM, um Ihre Domain bei der Zertifizierungsstelle zu authentifizieren.

VM zum Authentifizieren der Domaininhaberschaft erstellen

Rufen Sie in der Google Cloud Console die Seite Compute Engine > Instanz erstellen auf.

ZUR SEITE "INSTANZ ERSTELLEN"

Übernehmen Sie die Standardwerte mit Ausnahme der folgenden:

  • Name: certbot-vm
  • Maschinentyp: micro (f1-micro)
  • Zugriffsbereiche:
    • Zugriff für jede API festlegen
    • Compute Engine: Lesen/Schreiben
  • Bootlaufwerk-Image:
    • Debian GNU/Linux 9 (Stretch)
  • Firewall:
    • HTTP-Traffic zulassen
    • HTTPS-Traffic zulassen

Wenn Sie mit dem Aktualisieren der Werte fertig sind, klicken Sie auf Erstellen, um die VM-Instanz zu erstellen. Notieren Sie die externe IP-Adresse der VM, die Sie gerade erstellt haben. Sie benötigen sie im nächsten Schritt.

Domain so einrichten, dass sie auf die VM verweist

Mit den folgenden Schritten konfigurieren Sie die A-Einträge und richten Ihre Domain so ein, dass sie auf die VM verweist:

  1. Melden Sie sich in Ihrem Domainkonto bei Ihrem Domainhost an.
  2. Suchen Sie die Seite, um die DNS-Einträge der Domain zu aktualisieren. Diese Seite kann verschiedene Bezeichnungen haben, z. B. „DNS-Verwaltung“, „Nameserver-Verwaltung“ oder „Erweiterte Einstellungen“.
  3. Ändern Sie die Werte der A-Einträge folgendermaßen:
    • Name/Host/Alias: @
    • Wert: Die externe IP-Adresse der VM, die Sie oben zur Authentifizierung Ihrer Domaininhaberschaft erstellt haben.
    • TTL: Der Standardwert für Ihren Registrator oder 86400 (ein Tag).
  4. Warten Sie, bis der DNS-Eintrag aktualisiert wurde. Es kann bis zu einem Tag dauern, bis der Eintrag, den Sie hinzugefügt haben, weitergegeben wird.

Weitere Informationen finden Sie unter A-Einträge.

Server testen

So testen Sie, ob Ihr Server ordnungsgemäß funktioniert:

  1. Rufen Sie in der Google Cloud Console die Seite Compute Engine > VM-Instanzen auf.
    ZUR SEITE „VM-INSTANZEN“

  2. Klicken Sie unter Verbinden für certbot-vm auf SSH.

  3. Führen Sie die folgenden Befehle aus, um einen kleinen Webserver auf Ihrer VM auszuführen:

      mkdir web
      cd web
      echo "Hello" > index.html
      sudo busybox httpd -v -f
    
  4. Geben Sie in einem Webbrowser den Domainnamen ein, den Sie zuvor registriert haben. Im Webbrowser sollte Hello angezeigt werden und Ihre SSH-Sitzung sollte eine Nachricht darstellen, die ... response:200 enthält. Ist dies nicht der Fall, warten Sie einige Minuten und wiederholen Sie diesen Schritt.

  5. Nach erfolgreichem Test drücken Sie Strg+C, um den Webserver zu beenden.

Zertifikat erstellen

Registrieren Sie sich bei Let's Encrypt und führen Sie dazu die folgenden Befehle auf der VM aus. Dabei ist YOUR_DOMAIN Ihr Domainname ohne Protokoll:

sudo pkill busybox
sudo apt-get install -y certbot
sudo certbot certonly --standalone -d YOUR-DOMAIN

Während dieses Vorgangs kann Let's Encrypt eine E-Mail-Adresse anfordern, um eine Erinnerung zu senden, wenn Ihr Zertifikat abläuft (standardmäßig 3 Monate nach der Ausstellung). Sie müssen außerdem den Nutzungsbedingungen von Let's Encrypt zustimmen.

Nach erfolgreicher Registrierung wird die Meldung Congratulations! Your certificate and chain have been saved at... angezeigt.

Zertifikat zu Projekt hinzufügen

Zum Hinzufügen des Zertifikats zu Ihrem Projekt führen Sie die folgenden Befehle auf der VM aus:

sudo su
cd /etc/letsencrypt/live/YOUR_DOMAIN
gcloud compute ssl-certificates create my-cert --certificate=fullchain.pem --private-key=privkey.pem

Wenn Ihr Zertifikat erstellt wurde, wird eine Meldung angezeigt, die der folgenden ähnelt: Created [https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]

Schließen Sie die SSH-Sitzung, bevor Sie fortfahren.

Schritt 4: Load-Balancer erstellen

Bevor Sie diesen Schritt ausführen, müssen Sie die im vorherigen Schritt gestartete SSH-Sitzung beenden. Wenn Sie bereit sind, erstellen Sie mit den folgenden Schritten einen Load-Balancer:

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerkdienste > Load-Balancer erstellen auf und wählen Sie das Projekt aus, in dem Sie einen Load-Balancer erstellen möchten.
    ZUR SEITE „LOAD-BALANCER ERSTELLEN“

  2. Klicken Sie unter HTTP(S)-Load-Balancingauf Konfiguration starten.

  3. Wählen Sie Vom Internet zu meinen VMs.

  4. Geben Sie auf der Seite Neuer externer Application Load Balancer, die angezeigt wird, einen Namen für Ihren Load Balancer ein.

  5. Klicken Sie auf Backend-Konfiguration.

  6. Wählen Sie unter Backend-Dienste und Backend-Buckets die Option Backend-Dienst erstellen aus.

  7. Fügen Sie einen Namen für Ihren Backend-Dienst hinzu, z. B. my-backend-service.

  8. Rufen Sie den Bereich Sicherheit auf, und wählen Sie IAP aktivieren, um den Zugriff auf Ihre Anwendungen zu schützen aus.

    Cloud CDN und IAP sind nicht kompatibel. Wenn Sie Cloud CDN aktiviert haben und IAP aktivieren, wird Cloud CDN automatisch deaktiviert.

  9. Klicken Sie auf Erstellen. Die Seite Load Balancing wird geladen und der neue Load Balancer wird in der Load Balancer-Liste angezeigt.

  10. Klicken Sie nach der Erstellung des neuen Load Balancers in der Google Cloud -Console auf seinen Namen und notieren Sie sich die externe IP-Adresse unter Details > Frontend. Sie verwenden sie im nächsten Schritt.

Domain so einrichten, dass sie auf den Load-Balancer verweist

Mit den folgenden Schritten konfigurieren Sie die A-Einträge und richten Ihre Domain so ein, dass sie auf den Load Balancer verweist:

  1. Melden Sie sich in Ihrem Domainkonto bei Ihrem Domainhost an.
  2. Suchen Sie die Seite, um die DNS-Einträge der Domain zu aktualisieren. Diese Seite kann verschiedene Bezeichnungen haben, z. B. „DNS-Verwaltung“, „Nameserver-Verwaltung“ oder „Erweiterte Einstellungen“.
  3. Ändern Sie die Werte der A-Einträge folgendermaßen:
    • Name/Host/Alias: @
    • Wert: die externe IP-Adresse des zuvor erstellten Load Balancers. Fügen Sie den Port :443 nicht in den DNS-Eintrag ein.
    • TTL: Der Standardwert für Ihren Registrator oder 86400 (ein Tag).
  4. Warten Sie, bis der DNS-Eintrag aktualisiert wurde. Es kann bis zu einem Tag dauern, bis der Eintrag, den Sie gerade hinzugefügt haben, weitergegeben wird.
  5. Zum Testen des Load-Balancers rufen Sie mit einem Webbrowser Ihre Domain mit einem https://-Protokoll auf.
    • Wenn der Load Balancer noch nicht eingerichtet ist, werden „HTTP 502“-Fehler angezeigt.
    • Wenn der Load Balancer bereit ist, wird „Nicht autorisierte Anfrage“ angezeigt.

Weitere Informationen finden Sie unter A-Einträge.

VMs neu starten

Zum ordnungsgemäßen Authentifizieren von IAP-Anfragen müssen Sie die VMs in der verwalteten Instanzgruppe neu starten.

  1. Rufen Sie in der Google Cloud Console die Seite Compute Engine > Instanzgruppen auf.
    ZUR SEITE „INSTANZGRUPPEN“
  2. Klicken Sie auf my-managed-instance-group.
  3. Klicken Sie oben in den angezeigten Instanzgruppendetails auf Schrittweises Neustarten/Ersetzen.
  4. Legen Sie auf der Seite Instanzen von my-managed-instance-group neu starten oder ersetzen die folgenden Werte fest:
    • Vorgang: Neustart
    • Maximal nicht verfügbar: 3 Instanzen von 3 Instanzen
    • Mindestwartezeit: 0 s
  5. Wenn Sie mit dem Aktualisieren der Werte fertig sind, klicken Sie auf Neu starten.

Schritt 5: IAP einrichten

Firewall konfigurieren

Als Nächstes konfigurieren Sie Ihre Firewall so, dass der Zugriff auf die zugrunde liegenden VMs blockiert und nur der Zugriff über IAP zugelassen wird:

  1. Rufen Sie in der Google Cloud Console VPC-Netzwerk > Firewallregeln auf.
    ZUR SEITE „FIREWALLREGELN“

  2. Klicken Sie auf das Kästchen neben den folgenden Regeln:

    • default-allow-http

    • default-allow-https

    • default-allow-internal

  3. Klicken Sie auf Löschen.

  4. Klicken Sie auf Firewallregel erstellen und legen Sie die folgenden Werte fest:

    • Name: allow-iap-traffic

    • Ziele: Alle Instanzen im Netzwerk

    • Quell-IP-Bereiche (drücken Sie die Eingabetaste, nachdem Sie den Wert in das Feld eingefügt haben): Sie müssen Traffic aus diesen IP-Adressbereichen zulassen, damit der Load Balancer mit Ihren Back-Ends kommunizieren kann.

      • 130.211.0.0/22

      • 35.191.0.0/16

    • Protokolle und Ports:

      • Angegebene Protokolle und Ports

      • tcp:80

  5. Wenn Sie mit dem Aktualisieren der Werte fertig sind, klicken Sie auf Erstellen.

IAP einrichten

So richten Sie IAP für Ihr Projekt ein:

1. Rufen Sie in der Google Cloud Console die Seite Sicherheit > Identity-Aware Proxy auf und wählen Sie das Projekt aus, für das Sie IAP aktivieren möchten.
ZUR SEITE „IDENTITY-AWARE PROXY“ 1. Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Projekts nicht konfiguriert haben, werden Sie dazu aufgefordert:
  1. Öffnen Sie den OAuth-Zustimmungsbildschirm.
    Zustimmungsbildschirm konfigurieren
  2. Wählen Sie unter Support-E-Mail-Adresse die E-Mail-Adresse aus, die als öffentlicher Kontakt angezeigt werden soll. Die E-Mail-Adresse muss dem Konto des aktuell angemeldeten Nutzers oder einer Google-Gruppe gehören, deren Administrator oder Inhaber der aktuell angemeldete Nutzer ist.
  3. Geben Sie 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.

1. Aktivieren oder deaktivieren Sie neben my-backend-service 1. Klicken Sie im eingeblendeten Fenster IAP aktivieren auf das Kästchen neben „Ich habe die Konfigurationsanforderungen gelesen und meine Compute Engine-Ressource entsprechend der Dokumentation konfiguriert“. 1. Klicken Sie auf Aktivieren.

Hauptkonten zur Zugriffsliste hinzufügen

Als Nächstes fügen Sie Hauptkonten zur IAP-Zugriffsliste für Ihr Projekt hinzu.

  1. Klicken Sie auf der Seite Sicherheit > Identity-Aware Proxy im rechten Bereich Zugriff auf Hinzufügen.
  2. Geben Sie die Prinzipale ein, denen Sie Zugriff gewähren möchten, einschließlich sich selbst, und weisen Sie den Prinzipalen die Rolle Nutzer von IAP-gesicherten Web-Apps zu. Hauptkonten können Folgendes sein:
    • Google-Konten: user@gmail.com
    • Google Groups: admins@googlegroups.com
    • Dienstkonten: server@example.gserviceaccount.com
    • Google Workspace-Domains: beispiel.de

Schritt 6: IAP testen

So testen Sie, ob IAP ordnungsgemäß funktioniert:

1. Rufen Sie in einem Webbrowser Ihre Domain auf. Wenn Sie „Nicht autorisierte Anfrage“ sehen, versuchen Sie es in ein paar Minuten noch einmal. 1. Wenn Sie eine Google-Anmeldeseite sehen, melden Sie sich mit dem Google-Konto an, dem Sie im vorherigen Schritt Zugriff gewährt haben. 1. Es wird eine Nachricht wie „Hallo, user@example.com. Ich bin my-managed-instance-group-29z6.“ angezeigt. 1. Aktualisieren Sie die Seite. Der Browser sollte die Namen der 3 Maschinen in Ihrer verwalteten Instanzgruppe anzeigen. Dies ist der Load Balancer, der den Traffic auf die VMs in der Gruppe verteilt.

Glückwunsch! Sie haben einen Dienst mit Load-Balancing mithilfe von IAP aktiviert.

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Nachdem Sie IAP für Compute Engine eingerichtet haben, können Sie die in Google Cloud erstellten Ressourcen bereinigen, damit sie Ihnen nicht weiter in Rechnung gestellt werden. In den folgenden Abschnitten wird beschrieben, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.

So löschen Sie das Projekt:

  1. Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Instanzen löschen

So löschen Sie eine Compute Engine-Instanz:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf das Kästchen neben der Instanz, die gelöscht werden soll.
  3. Klicken Sie zum Löschen der Instanz auf Weitere Aktionen, dann auf Löschen, und folgen Sie dann der Anleitung.

Firewallregeln für das Standardnetzwerk löschen

So löschen Sie eine Firewallregel:

  1. Rufen Sie in der Google Cloud Console die Seite Firewall auf.

    Zur Firewall

  2. Klicken Sie auf das Kästchen neben der Firewallregel, die Sie löschen möchten.
  3. Klicken Sie zum Löschen der Firewallregel auf Löschen.

Nächste Schritte

  • Die in dieser Anleitung verwendete Beispielanwendung ändern, um andere Daten bereitzustellen
  • Lesen Sie unter Best Practices, wie Sie eigene Anwendungen schreiben und mit IAP schützen können.