Nur private interne Dienste konfigurieren

Auf dieser Seite wird die erforderliche Konfiguration zum Freigeben eines Dienstes der flexiblen App Engine-Umgebung nur über seine interne IP-Adresse gezeigt.

Standardmäßig erhalten Dienste in der flexiblen Umgebung sowohl eine interne als auch eine sitzungsspezifische externe IP-Adresse, wenn sie zum ersten Mal bereitgestellt werden. Die sitzungsspezifische externe IP-Adresse ermöglicht Ihrem Dienst, Anfragen mit benutzerdefinierten Domains und Ressourcen im Internet an App Engine-Dienste zu senden. Für sitzungsspezifische externe IP-Adressen fallen Kosten an.

Wenn Ihr Dienst keine externe IP-Adresse erfordert, können Sie verhindern, dass der Dienst Anfragen an Ressourcen im Internet sendet. Außerdem können Sie die Kosten senken, indem Sie den Dienst auf die Nutzung seiner internen IP-Adresse beschränken. Dies verhindert nicht, dass Ihr Dienst Anfragen aus dem Internet oder von App Engine-Diensten mit benutzerdefinierten Domains empfängt, da der voll qualifizierte Domainname Ihres Dienstes noch immer extern sichtbar ist.

Beschränkungen

Das Deaktivieren von sitzungsspezifischen externen IP-Adressen unterliegt den folgenden Einschränkungen:

  • Dienste mit benutzerdefinierten Domains: Um Anfragen an App Engine-Dienste mit benutzerdefinierten Domains senden zu können, müssen Sie Cloud NAT konfigurieren.
  • Externe Ressourcen: Um Anfragen an externe Ressourcen senden zu können, müssen Sie Cloud NAT konfigurieren.
  • Abhängigkeit von privatem Google-Zugriff: Instanzen mit IP-Modus gesetzt auf internal erfordern privaten Google-Zugriff auf das Ziel-Subnetzwerk.
  • Legacy-Netzwerke: Legacy-Netzwerke können den privaten Google-Zugriff nicht verwenden und daher sitzungsspezifische externe IP-Adressen nicht deaktivieren.

Vorbereitung

Damit Anwendungen der flexiblen Umgebung ohne externe IP-Adressen bereitgestellt werden können, müssen Sie den privaten Google-Zugriff für das Zielsubnetzwerk aktivieren.

Freigegebenes VPC-Netzwerk vorbereiten

Wenn Sie eine freigegebene VPC verwenden, gehen Sie so vor, um Ihr freigegebenes VPC-Netzwerk für die weitere Konfiguration vorzubereiten:

  1. Prüfen Sie, ob Sie eine Route haben, die mit dem privaten Google-Zugriff kompatibel ist. In der Regel ist die Standardroute eines Netzwerks mit dem privaten Google-Zugriff kompatibel. Prüfen Sie bei anderen Routen, ob die Route so konfiguriert ist.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Instance tags: INSTANCE_TAGS
    Next hop: DEFAULT_INTERNET_GATEWAY
    

    Dabei gilt:

    • SHARED_VPC_NETWORK_NAME: Der Name des freigegebenen VPC-Netzwerks.
    • INSTANCE_TAGS: Wenn Sie keine Instanz-Tags verwenden, geben Sie in diesem Feld nichts an. Wenn Sie Instanz-Tags verwenden, fügen Sie aef-instances in die Liste der Instanz-Tags ein.
    • DEFAULT_INTERNET_GATEWAY: Das Standard-Internet-Gateway

    Weitere Informationen zu kompatiblen Routen für den privaten Google-Zugriff finden Sie in der Dokumentation zu privatem Google-Zugriff unter Routingoptionen.

  2. Prüfen Sie, ob Sie eine Firewallregel haben, die mit dem privaten Google-Zugriff kompatibel ist. Die Firewallregel muss so konfiguriert werden.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Destination filter: IP ranges
    Direction of traffic: Egress
    Attach on match: Allow
    Instance tags: INSTANCE_TAGS
    

    Dabei gilt:

    • SHARED_VPC_NETWORK_NAME: Der Name des freigegebenen VPC-Netzwerks.
    • INSTANCE_TAGS: Wenn Sie keine Instanz-Tags verwenden, geben Sie in diesem Feld nichts an. Wenn Sie Instanz-Tags verwenden, fügen Sie aef-instances in die Liste der Instanz-Tags ein.

    Weitere Informationen zu kompatiblen Firewallregeln für den privaten Google-Zugriff finden Sie in der Dokumentation zum privaten Google-Zugriff unter Firewallkonfiguration.

Dienst so konfigurieren, dass nur seine interne IP-Adresse verwendet wird

  1. Google Cloud-CLI aktualisieren Dadurch wird eine Version der gcloud-CLI verwendet, die private IP-Adressen für Anwendungen in der flexiblen Umgebung unterstützt.

    gcloud components update
  2. Fügen Sie in der Datei app.yaml das Feld instance_ip_mode dem Abschnitt network hinzu und setzen Sie es auf internal.

    • Wenn die Datei app.yaml bereits einen Abschnitt network enthält, fügen Sie die folgende Zeile im Abschnitt network hinzu:

      instance_ip_mode: internal

    • Wenn die Datei app.yaml keinen Abschnitt network enthält, erstellen Sie den Abschnitt und geben Sie den Instanz-IP-Modus an. Fügen Sie dazu die folgenden Zeilen hinzu:

      network:
       instance_ip_mode: internal

    Speichern Sie diese Änderungen.

  3. Stellen Sie den Dienst bereit.

    gcloud beta app deploy
  4. Überprüfen Sie die Konfiguration auf der Seite „Instanzen“ der Google Cloud -Konsole.

    Zur Seite „VM-Instanzen“

    Scrollen Sie nach unten zur Tabelle Instanzen (unter dem Diagramm Zusammenfassung). Bestätigen Sie in der Spalte Externe IP, dass keine IP-Adresse aufgeführt ist. Wenn keine IP-Adresse in dieser Spalte vorhanden ist, hat Ihre Instanz keine externe IP-Adresse. Auch wenn dieses Feld leer ist, hat Ihre Instanz weiterhin eine interne IP-Adresse.

Externe Anfragen ohne externe IP-Adresse senden

Wenn Ihr Dienst Anfragen an das Internet sendet, Sie dies jedoch auf die interne IP-Adresse beschränken möchten, können Sie mit Cloud NAT ein Gateway erstellen. Ihr Dienst kann externe Anfragen über das Cloud NAT-Gateway senden, ohne die standardmäßigen sitzungsspezifischen externen IP-Adressen zu verwenden.

  1. Folgen Sie der Anleitung im Abschnitt Dienst so konfigurieren, dass nur seine interne IP-Adresse verwendet wird.

  2. Führen Sie die Schritte unter Cloud NAT konfigurieren aus.

Weitere Informationen zu diesem Ansatz finden Sie in der Cloud Architecture Center-Dokumentation unter Cloud NAT zum Abrufen bereitstellen.