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.

Freigegebene VPC-Netzwerk vorbereiten

Wenn Sie eine freigegebene VPC verwenden, gehen Sie so vor, um Ihr freigegebene 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 freigegebene 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 freigegebene 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 Externe IP-Adresse, 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 ausgehende Anfragen über das Cloud NAT-Gateway senden und dabei reservierte statische externe IP-Adressen anstelle der standardmäßigen sitzungsspezifischen externen IP-Adressen verwenden.

Konfigurieren Sie Ihren Dienst so, dass instance_ip_mode: internal mit Cloud NAT und dedizierten statischen externen IP-Adressen in den folgenden Situationen verwendet wird:

  • Sie stellen eine Verbindung zu einer externen Datenbank oder API her, für die eine Zulassungsliste für IP-Adressen oder eine Firewallregel erforderlich ist.
  • Sie stellen eine Verbindung zu reputationssensitiven externen Endpunkten her, z. B. Zahlungs-Gateways, gehosteten Datenbanken oder Partner-APIs, die durch Web Application Firewalls (WAFs) von Drittanbietern geschützt sind. Vorheriger oder übermäßiger Traffic in freigegebenen Pools mit sitzungsspezifischen IP-Adressen kann die IP-Reputation beeinträchtigen und dazu führen, dass externe WAFs Ihre Anfragen mit HTTP 403-Fehlern oder Verbindungszeitüberschreitungen blockieren oder drosseln.
  • Sie führen autorisierte Netzwerkscans, Portaufzählungen, Host-Fingerprinting, Sicherheitslückenprüfungen, Web-Scraping oder Lasttests aus.

So leiten Sie ausgehende Internetanfragen über Cloud NAT weiter:

  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 und weisen Sie dem Gateway reservierte statische externe IP-Adressen zu.

Wenn Ihr Dienst auf viele Instanzen skaliert wird oder viele gleichzeitige Verbindungen öffnet, z. B. während eines autorisierten Netzwerkscans, weisen Sie Cloud NAT mehrere statische IP-Adressen zu. Sie können auch die Mindestanzahl von Ports pro Instanz erhöhen oder die dynamische Portzuweisung aktivieren, um eine Port-Erschöpfung zu verhindern. Weitere Informationen zur Verwendung von IP-Adressen und Ports durch Cloud NAT-Gateways

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