Flexible App Engine-Umgebung in einem freigegebenen VPC-Netzwerk verwenden

In der flexiblen App Engine-Umgebung können Sie ein Netzwerk angeben, in dem Sie die Instanzen eines Dienstes bereitstellen möchten. Auf dieser Seite wird beschrieben, wie Sie ein Projekt für die Verwendung der flexiblen App Engine-Umgebung in einem freigegebenen VPC-Netzwerk konfigurieren.

Weitere Informationen zum Einrichten eines freigegebenen VPC-Netzwerks finden Sie unter Freigegebene VPC bereitstellen.

Flexible App Engine-Umgebung mit freigegebenem VPC einrichten

Die Bereitstellung von Instanzen der flexiblen App Engine-Umgebung in einem freigegebenen VPC-Netzwerk umfasst drei Schritte:

  1. Erstellen Sie eine Firewallregel, um den Traffic der flexiblen App Engine-Umgebung im freigegebenen VPC-Netzwerk zuzulassen.

  2. Erteilen Sie den Dienstkonten im freigegebenen VPC-Dienstprojekt die entsprechenden Berechtigungen.

  3. Konfigurieren Sie Ihre App Engine-Dienste für die Verwendung des freigegebenen VPC-Netzwerks.

Wenn Sie die Google Cloud CLI verwenden, aktualisieren Sie auf die neueste Version, bevor Sie dieser Anleitung folgen. Führen Sie dazu folgenden Befehl aus:

gcloud components update

Traffic zum freigegebenen VPC-Netzwerk zulassen

Ein Administrator für freigegebene VPCs muss im freigegebenen VPC-Hostprojekt eine Firewallregel erstellen, um Traffic für die flexible App Engine-Umgebung im freigegebenen VPC-Netzwerk zuzulassen. Die Firewallregel ermöglicht, dass Traffic an Instanzen in der flexiblen Umgebung weitergeleitet wird und Systemdiagnosen für diesen Traffic ausgeführt werden.

Die Firewallregel muss die folgenden Attribute haben:

  • Netzwerk: Der Name des freigegebenen VPC-Netzwerks
  • Trafficrichtung: Eingehend
  • Aktion bei Übereinstimmung: Zulassen
  • Ziele: Angegebene Zieltags
  • Zieltags: aef-instance
  • Quellfilter: IP-Bereiche
  • Quell-IP-Bereiche: 35.191.0.0/16, 130.211.0.0/22
  • Protokolle und Ports: Angegebene Protokolle und Ports
    • TCP: 8443, 10402

Der Administrator einer freigegebenen VPC kann die Firewallregel mit der Google Cloud Console oder der Google Cloud CLI erstellen:

Console

So erstellen Sie die Firewallregel mit der Google Cloud Console:

  1. Rufen Sie die Seite zum Erstellen von Firewallregeln auf.

    Firewallregel erstellen

  2. Geben Sie in den Feldern Name und Beschreibung einen Namen und eine Beschreibung für die Firewallregel ein.

  3. Geben Sie die erforderlichen Attribute wie oben angegeben ein.

  4. Klicken Sie auf Erstellen.

gcloud

Führen Sie den folgenden Befehl aus, um die Firewallregel mit der Google Cloud CLI zu erstellen:

gcloud compute firewall-rules create NETWORK_NAME-flex-firewall \
--project HOST_PROJECT_ID \
--network NETWORK_NAME \
--allow tcp:10402,tcp:8443 \
--target-tags aef-instance \
--source-ranges 35.191.0.0/16,130.211.0.0/22 \
--description 'Allows traffic to App Engine flexible environment'

wobei

  • NETWORK_NAME ist der Name des freigegebenen VPC-Netzwerks.
  • HOST_PROJECT_ID ist die Cloud-Projekt-ID des freigegebenen VPC-Hostprojekts.

Berechtigungen einrichten

Ein Administrator für freigegebene VPCs muss den folgenden beiden Nutzern des Dienstes die Rolle Compute-Netzwerknutzer zuweisen, damit ein Dienstprojekt Instanzen in der flexiblen App Engine-Umgebung im Netzwerk bereitstellen kann:

  • Google APIs-Dienst-Agent (PROJECT_NUM@cloudservices.gserviceaccount.com)
  • Dienst-Agent für flexible App Engine-Umgebung (service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com)

Console

So richten Sie in der Google Cloud Console Berechtigungen ein:

  1. Rufen Sie die IAM-Seite „Einstellungen“ für das Dienstprojekt auf und notieren Sie sich die Projektnummer:

    Zur IAM-Seite „Einstellungen“

  2. Rufen Sie die IAM-Seite für das Hostprojekt auf:

    Seite „IAM“

  3. Klicken Sie auf Hinzufügen.

  4. Geben Sie im Feld Neue Mitglieder die folgenden E-Mail-Adressen getrennt durch ein Komma ein. Ersetzen Sie dabei PROJECT_NUM durch die in Schritt 1 ermittelte Projektnummer.

    • PROJECT_NUM@cloudservices.gserviceaccount.com
    • service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
  5. Wählen Sie im Drop-down Rolle auswählen die Option Compute Engine > Compute-Netzwerknutzer aus.

  6. Klicken Sie auf Speichern.

gcloud

  1. Rufen Sie die Projektnummer des Dienstprojekts ab, in dem die App Engine-Anwendung bereitgestellt wird. Führen Sie den folgenden Befehl aus und ersetzen Sie dabei SERVICE_PROJECT_ID durch die Projekt-ID des Dienstprojekts:

    export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
    
  2. Weisen Sie dem Google APIs-Dienst-Agent des Dienstprojekts im Hostprojekt die Rolle compute.networkUser zu:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \
    --role=roles/compute.networkUser
    

    Dabei ist HOST_PROJECT_ID die Cloud-Projekt-ID des freigegebenen VPC-Hostprojekts.

  3. Weisen Sie dem Dienst-Agent für die flexible App Engine-Umgebung des Dienstprojekts im Hostprojekt die Rolle compute.networkUser zu:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:service-$SERVICE_PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com \
    --role=roles/compute.networkUser
    

Dienst konfigurieren und bereitstellen

Nachdem die Firewallregel und die entsprechenden Berechtigungen eingerichtet wurden, können Sie entweder einen neuen Dienst oder einen vorhandenen Dienst in der flexiblen App Engine-Umgebung für das freigegebene VPC-Netzwerk bereitstellen.

  1. Geben Sie in der Datei app.yaml im Feld name der Netzwerkeinstellungen den vollständig qualifizierten Namen des freigegebenen VPC-Netzwerks an:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    

    Dabei gilt:

    • HOST_PROJECT_ID ist die Cloud-Projekt-ID des freigegebenen VPC-Hostprojekts.
    • NETWORK_NAME ist der Name des freigegebenen VPC-Netzwerks.

    Legen Sie auch das Feld subnetwork_name fest, damit der Dienst Bestandteil des Subnetzwerks SUBNETWORK_NAME ist:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
      subnetwork_name: SUBNETWORK_NAME
    
  2. Stellen Sie den Dienst bereit:

    gcloud app deploy
    

Konfiguration überprüfen

Sie können überprüfen, ob Ihr Dienst in der flexiblen App Engine-Umgebung im freigegebenen VPC-Netzwerk ausgeführt wird. Rufen Sie dazu in der Google Cloud Console auf der App Engine-Seite „Versionen“ die Versionskonfiguration auf:

  1. Rufen Sie die App Engine-Seite „Versionen“ auf.

    Zur App Engine-Seite „Versionen“

  2. Klicken Sie bei der gewünschten Version in der rechten Spalte Konfiguration auf Ansehen.

  3. Prüfen Sie, ob der Netzwerkname in der Konfiguration der Name des freigegebenen VPC-Netzwerks ist.