Sitzungsspezifische externe IP-Adressen deaktivieren

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:

  • SSH: Der Befehl gcloud app instances ssh unterstützt keine Instanzen, bei denen der IP-Modus auf internal gesetzt ist.
  • 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 Console.

    Zur Seite „VM-Instanzen“

    Scrollen Sie nach unten zur Tabelle Instanzen (unter dem Diagramm Zusammenfassung). Bestätigen Sie in der Spalte VM-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.